주문·재고 원자성 + 동시 주문 락 경험 + 도메인 규칙 파악 + 트랜잭션 경계 설계 경험
인턴 때 온라인 쇼핑몰의 주문·재고 시스템 개선 작업을 지원했습니다. 주문 도메인에서 가장 먼저 배운 건 결제 완료→재고 차감→주문 확정 흐름이 원자적으로 처리되지 않으면 데이터 불일치가 생긴다는 것이었습니다. 재고 측면에서는 동시에 여러 사용자가 같은 상품을 주문할 때 재고가 마이너스가 되는 케이스를 처음 경험했는데, 비관적 락과 낙관적 락의 차이를 이해하는 계기가 됐습니다. 역할 측면에서는 기존 코드의 도메인 규칙을 파악하는 것이 신규 개발보다 오래 걸리는 경우가 많았습니다. 커머스 도메인에서는 프로모션·쿠폰·할인 정책이 서로 얽혀 있어서 예외 케이스가 많다는 걸 배웠습니다. 리테일 시스템은 사용자 요청 하나가 여러 도메인에 걸쳐 처리되는 경우가 많아서 트랜잭션 경계 설계가 중요하다는 걸 경험했습니다.
커머스 시스템은 도메인을 이해하지 않으면 코드가 왜 그렇게 되어 있는지 보이지 않는 자리라는 걸 그때 느꼈습니다.