재고 동시성 문제 직접 경험 + 트레이드오프 비교로 설명
학교 수업 이후 직접 작은 쇼핑몰 사이드 프로젝트를 만들며 이커머스 아키텍처를 처음 깊이 들여다봤습니다. 주문이 들어오면 재고를 먼저 예약하고 결제가 성공하면 확정, 실패하면 예약을 해제하는 흐름을 구현하면서 재고 동시성 문제가 처음 발목을 잡았습니다. 두 요청이 동시에 같은 재고를 확인하면 음수 재고가 생기는 케이스가 실제로 재현됐고, SELECT FOR UPDATE로 비관적 락을 적용해 막았습니다. 처리량이 줄어드는 트레이드오프를 확인했고, 그 다음엔 낙관적 락도 비교 실험해서 충돌 빈도가 낮은 상품 유형에는 낙관적 락이 더 효율적이라는 걸 수치로 확인했습니다. CRM과 물류 연동은 웹훅으로 구성해서 서비스 간 결합도를 낮추는 방향을 택했습니다.
이커머스 구조는 단순해 보이지만 각 경계마다 정합성 설계가 필요한 자리라는 걸 그때 배웠습니다.