일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Redis
- 리팩터링
- B+TREE
- 지연로딩
- 제네릭
- CaffeineCache
- GithubActions
- 트랜잭션
- 주문
- Jenkins
- 동시성
- backend
- JDK14
- ci/cd
- Metaspace
- Spring Data Redis
- Ehcache
- method area
- nonclustered index
- JAVA8
- JPA
- 카카오 화재
- 상태패턴
- lazyloading
- java
- 공변
- 부하테스트
- springboot
- 웹캐시
- 재고 시스템
- Today
- Total
목록트랜잭션 (3)
NDM
배달 서비스를 구현하는 slowDelivery 프로젝트 진행중입니다. 주문 로직에 대해 제가 고려한 것을 포스팅 하려고 합니다. 도메인은 장바구니 / 상품/ 재고 / 가게 / 주문이 있으며, 결제API는 클라이언트쪽에서 연동하기 때문에 결제데이터를 save하는 정도로만 구현했습니다. 장바구니와 재고는 Redis로 되어있으며, 나머지는 RDB를 사용했습니다. 재고에 Redis를 사용한 이유는 https://ndm-tech.tistory.com/34 에 기록해 두었습니다. 이번 포스팅에서는 아래의 내용을 다룹니다. 주문 로직의 순서를 결정하게 된 고민 과정 프로젝트를 진행하며 처음에 고생했던 부분은 주문이 성공하고 나서야 재고를 감소시켰었다는 점 입니다. 이것은 실제 상황과 비교해 볼 때, 가장 유사한 순서..
배달 서비스를 구현하는 slowDelivery 프로젝트 진행중입니다. 주문 로직에 대해 제가 고려한 것을 포스팅 하려고 합니다. 도메인은 장바구니 / 상품/ 재고 / 가게 / 주문이 있으며, 결제API는 클라이언트쪽에서 연동하기 때문에 결제데이터를 save하는 정도로만 구현했습니다. 장바구니와 재고는 Redis로 되어있으며, 나머지는 RDB를 사용했습니다. 제 프로젝트의 주문 제한사항은 다음과 같습니다. 장바구니를 거쳐서만 주문할 수 있으며, 장바구니에 다른 가게의 상품을 담을 수 없습니다. 주문 로직의 순서 주문은 다음과 같은 순서로 이루어집니다 장바구니와 가게 데이터를 조회해 주문 객체를 만듭니다. 가져온 데이터로 검증을 시작합니다. ( 가게가 오픈했는가 / 주문 금액이 가게의 최소주문금액을 넘어섰는..
Java의 Checked Exception과 UnCheckedException을 검색하다 보면 이런 표를 쉽게 찾을 수 있습니다. 이 표의 일부 내용은 맞으면서도 틀렸습니다. 어떤게 틀렸을까요?? CheckedException / UnCheckedException Java의 Exception은 Throwable 하위의 객체들입니다. 그중에서도 Error는 메모리부족이나 시스템 오류같이 개발자가 접근해서는 안되는 오류들이고, Exception 객체가 개발자가 신경써야 할 영역이라고 보시면 됩니다. 때문에 그냥 제일 위에있는 객체로 예외처리를 하기 위해 throw Throwable을 한다던가 하시면 안됩니다. CheckedException 반드시 예외처리를 해야합니다. 안그러면 컴파일 오류에서 잡힙니다 잡아..