일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JAVA8
- B+TREE
- Metaspace
- 부하테스트
- GithubActions
- lazyloading
- Jenkins
- CaffeineCache
- 재고 시스템
- 제네릭
- 공변
- JPA
- 지연로딩
- method area
- 트랜잭션
- backend
- Spring Data Redis
- 카카오 화재
- Redis
- 상태패턴
- 주문
- ci/cd
- springboot
- java
- nonclustered index
- Ehcache
- 웹캐시
- JDK14
- 리팩터링
- 동시성
- Today
- Total
목록분류 전체보기 (31)
NDM
배달 서비스를 구현하는 slowDelivery 프로젝트 진행중입니다. 주문 로직에 대해 제가 고려한 것을 포스팅 하려고 합니다. 도메인은 장바구니 / 상품/ 재고 / 가게 / 주문이 있으며, 결제API는 클라이언트쪽에서 연동하기 때문에 결제데이터를 save하는 정도로만 구현했습니다. 장바구니와 재고는 Redis로 되어있으며, 나머지는 RDB를 사용했습니다. 제 프로젝트의 주문 제한사항은 다음과 같습니다. 장바구니를 거쳐서만 주문할 수 있으며, 장바구니에 다른 가게의 상품을 담을 수 없습니다. 주문 로직의 순서 주문은 다음과 같은 순서로 이루어집니다 장바구니와 가게 데이터를 조회해 주문 객체를 만듭니다. 가져온 데이터로 검증을 시작합니다. ( 가게가 오픈했는가 / 주문 금액이 가게의 최소주문금액을 넘어섰는..
배달 어플을 구현하는 SlowDelivery 프로젝트에서 재고를 처리하는데 동시성 이슈가 있었습니다 더보기 하지만 사실 재고 도메인은 필요가 없었는지도 모릅니다. 일반적인 쇼핑몰과 다르게 배달 어플은 판매중인 상품의 재고를 숫자로 나타내지 않고 각 가게마다 유연하게 판매 가능 / 판매 불가능 상태값을 바꿔주는 로직만 작성해주면 굳이 재고의 증가/감소를 구현할 필요는 없었을 수도 있습니다. 하지만 이 프로젝트는 순수하게 학습용이고, 취업 시 [이런것도 구현하고 고민해 보았다] 를 어필하고 싶었고, 무엇보다 이커머스 분야에서 일하고 싶다면 한번쯤은 경험해보는게 낫겠다 싶어 억지로(?) 끼워넣은 도메인입니다 때문에 프로젝트 주제나 도메인에 있어 어색함이 있을 수 있습니다 현재 제 프로젝트의 주문 로직은 주문접..
@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Shop extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "shop_id") private Long id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "seller_id") private Seller seller; @OneToMany(mappedBy = "shop") private List products = new ArrayList(); private String phone; private Str..
https://ndm-tech.tistory.com/22 [Java] Java8 MetaSpace https://ndm-tech.tistory.com/3 [Java] 자바 동작 원리와 JVM 2편 : Runtime Data Area 목차 Runtime Data Area Prior Java 8 After Java 8 Runtime Data Area 프로그램 수행을 위해 할당받은 공간. 자바 메모리.. ndm-tech.tistory.com https://ndm-tech.tistory.com/3 [Java] 자바 동작 원리와 JVM 2편 : Runtime Data Area 목차 Runtime Data Area Prior Java 8 After Java 8 Runtime Data Area 프로그램 수행을 위해 ..