좌석 동시 선택 충돌 방지·결제 원자성·재고 정합성으로 항공권 예약 설계 결
항공권 예약 시스템에서 가장 중요하게 생각하는 것은 좌석 중복 예약 방지입니다. 여러 사용자가 동시에 같은 좌석을 선택할 수 있어, 낙관적 락이나 비관적 락 중 어느 방식을 선택할지가 초기 설계의 핵심 결정입니다.
결제와 좌석 확정의 원자성 보장도 중요합니다. 결제는 성공했는데 좌석이 확정되지 않거나, 그 반대의 상황이 생기면 심각한 문제가 됩니다. 분산 트랜잭션 설계나 보상 트랜잭션 패턴을 적용해 두 작업이 함께 성공하거나 함께 실패하도록 구성했습니다.
취소 및 환불 처리에서는 정책에 따른 수수료 계산 로직이 복잡해지기 쉽습니다. 출발 시간까지 남은 기간, 좌석 등급, 프로모션 여부 등 조건이 많아 규칙 기반 엔진으로 분리하면 정책 변경 시 코드 수정 없이 조정할 수 있었습니다.