두 테이블을 동시에 업데이트하다 정합성이 깨진 경험
포트폴리오 프로젝트에서 주문과 재고를 별도 테이블로 관리했습니다. 주문 생성 후 재고 차감이 실패하는 경우가 간헐적으로 발생했습니다. 타임아웃이나 네트워크 오류가 중간에 끼면 주문은 생성됐지만 재고는 그대로인 상태가 되었습니다. 처음에는 에러 로그가 없어서 사흘 뒤에야 발견했습니다. 두 작업을 트랜잭션으로 묶어서 하나라도 실패하면 롤백되도록 수정했습니다.
정합성 문제는 성공 케이스보다 실패 케이스 설계에서 나온다는 것을 배웠습니다. 이 경험 이후로 여러 테이블을 건드리는 작업에는 항상 트랜잭션 경계를 먼저 생각하는 습관이 생겼습니다. 이 경험 덕분에 한 단계 성장할 수 있었습니다.