🛒 바이트앤컴퍼니 · 클라우드 기반 실서비스 운영 · 9편

바이트앤컴퍼니에서 클라우드 기반 실서비스 운영을 경험하며 정리한 시리즈다. 주문·재고·결제처럼 여러 상태가 맞물리는 백엔드에서 불변식과 전이 규칙을 세우고, 실패·재시도·동시성·복구를 다루는 기준을 담았다. 실제 서비스의 구현을 재현하지 않고 공개 가능한 기술 판단을 서로 독립적인 가상 사례로 일반화했다.

처음 읽는다면 주문과 상태의 경계를 다루는 1편부터 시작하고, 재고 일관성·분산 환경·외부 연동을 거쳐 테스트와 사용자 관찰이 계약을 바꾸는 과정까지 순서대로 읽는 것을 권한다.

추천 읽기 순서

  1. 상태와 약속 분리하기 — 예상과 확정, 상태와 전이를 나눠 업무 규칙의 경계를 세운다.
  2. 일관성 방어선 만들기 — 예약·재고·동시 요청을 시간과 멱등성 관점에서 다룬다.
  3. 분산 환경의 실패 흡수하기 — 세션과 외부 알림이 인스턴스·네트워크 경계를 넘을 때 생기는 문제를 살핀다.
  4. 복구 가능성을 검증하기 — E2E 테스트와 보상 흐름, 사용자 관찰을 API 계약 개선으로 연결한다.

시리즈 글

  1. 1/9 · 가변 중량 상품에서 가승인과 최종 결제를 나눈 이유 — 결제 가능성 확인과 실제 청구 확정을 다른 상태와 책임으로 나눈다.
  2. 2/9 · 주문 상태 머신을 설계하며 발견한 전이의 함정 — 상태 이름보다 허용된 이동과 거절할 사건을 먼저 정의한다.
  3. 3/9 · 예약 주문을 당일 재고에 안전하게 매핑하기 — 미래 수요와 현재 재고를 분리하고 할당 창과 만료로 과판매를 막는다.
  4. 4/9 · 재고 차감에서 멱등성과 동시성을 함께 지키는 법 — 반복 요청의 수렴과 동시 요청의 원자성을 서로 다른 방어선으로 설계한다.
  5. 5/9 · 다중 인스턴스에서 메모리 세션이 깨지는 이유 — 프로세스 로컬 상태의 한계를 확인하고 공유 세션과 무상태 토큰을 비교한다.
  6. 6/9 · PG 웹훅의 중복 수신과 순서 역전에 대응하기 — 외부 알림을 검증·중복 제거·순서 판단 뒤에 상태로 반영한다.
  7. 7/9 · 주문 E2E 테스트를 상태 전이 시나리오로 설계하기 — 정상 경로뿐 아니라 중복·시간 초과·보상까지 실행 가능한 시나리오로 만든다.
  8. 8/9 · 객체 업로드가 실패했을 때 고아 파일을 남기지 않는 법 — 파일과 업무 기록의 성공 시점 차이를 준비·확정·보상·조정으로 다룬다.
  9. 9/9 · 사용자 테스트가 주문 UX와 API 계약을 바꾼 순간들 — 관찰된 망설임을 상태 의미와 재시도 안전성, 응답 계약의 개선으로 연결한다.

이 시리즈에서 남긴 기준