일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹캐시
- 지연로딩
- lazyloading
- JAVA8
- GithubActions
- 제네릭
- Ehcache
- JDK14
- 트랜잭션
- 부하테스트
- 주문
- 동시성
- nonclustered index
- JPA
- CaffeineCache
- method area
- Metaspace
- backend
- Redis
- 상태패턴
- Jenkins
- springboot
- Spring Data Redis
- 카카오 화재
- ci/cd
- 공변
- 재고 시스템
- java
- 리팩터링
- B+TREE
- Today
- Total
목록JPA (2)
NDM
배달 서비스를 구현하는 slowDelivery 프로젝트 진행중입니다. 주문 로직에 대해 제가 고려한 것을 포스팅 하려고 합니다. 도메인은 장바구니 / 상품/ 재고 / 가게 / 주문이 있으며, 결제API는 클라이언트쪽에서 연동하기 때문에 결제데이터를 save하는 정도로만 구현했습니다. 장바구니와 재고는 Redis로 되어있으며, 나머지는 RDB를 사용했습니다. 제 프로젝트의 주문 제한사항은 다음과 같습니다. 장바구니를 거쳐서만 주문할 수 있으며, 장바구니에 다른 가게의 상품을 담을 수 없습니다. 주문 로직의 순서 주문은 다음과 같은 순서로 이루어집니다 장바구니와 가게 데이터를 조회해 주문 객체를 만듭니다. 가져온 데이터로 검증을 시작합니다. ( 가게가 오픈했는가 / 주문 금액이 가게의 최소주문금액을 넘어섰는..
@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..