데이터 무결성 문제를 처음 경험하고 해결한 경험
포트폴리오 프로젝트에서 주문과 재고를 동시에 업데이트하는 기능을 만들었습니다. 주문은 성공했지만 재고 차감이 실패하는 버그가 가끔 발생했습니다. 처음에는 에러 로그가 없어서 원인을 찾는 데 3일이 걸렸습니다. 문제는 두 작업이 별개 쿼리였고 중간에 타임아웃이 발생하면 하나만 성공하는 것이었습니다.
트랜잭션으로 묶어서 둘 다 성공하거나 둘 다 실패하도록 수정했습니다. 이 경험을 통해 데이터 무결성은 성공 케이스가 아니라 실패 케이스 설계라는 것을 배웠습니다. 빠른 기능 개발 중에도 트랜잭션이 필요한 부분을 먼저 찾는 습관이 생겼습니다. 이 경험 덕분에 한 단계 성장할 수 있었습니다. 그 과정이 값진 배움이었습니다.