[시스템 설계] 시나브로 Phase 01 - 재고 동시성 제어 시도 (1)
한정 수량 판매에서 낙관적 락을 적용하고 충돌로 인한 구매 실패를 살펴봅니다.
Sinabro동시성JPAMySQL
한정 수량 판매에서 낙관적 락을 적용하고 충돌로 인한 구매 실패를 살펴봅니다.
단일 애플리케이션과 DB 환경에서 구매 부하 테스트로 재고 동시성 문제를 확인합니다.
DB 변경과 이벤트 발행 사이에 실패가 발생하는 경우를 살펴보고, Transactional Outbox의 동작 과정과 주의할 점을 정리합니다.
Flyway validate의 검사 범위를 살펴보고, SQL 실행과 변경 영향까지 확인하려면 어떤 검증이 필요한지 정리합니다.
비관적 락을 획득해도 이전에 조회한 엔티티의 상태가 남을 수 있는 이유와 refresh() 사용 시 주의할 점을 정리합니다.
한정판 굿즈 판매 전체 시나리오
쿠버네티스의 선언형 관리와 조정 루프, 아키텍처를 정리합니다.
도커와 컨테이너, 가상 머신의 차이와 이미지 구성을 정리합니다.
같은 클래스 내부 호출에서 @Transactional이 적용되지 않는 이유와 외부 클래스 분리·AspectJ·이벤트 방식의 트레이드오프를 정리합니다.
개발 요청과 의사결정을 분리하고, 팀이 공통된 기준으로 판단할 수 있도록 업무 흐름을 개선한 경험을 돌아봅니다.