[기여도]
- 백엔드 개발자(본인)
[문제]
월말 정산 시 메뉴 가격 변경으로 인해 정산 금액 불일치 문제가 발생
- 주문 당시의 상품 가격이 아닌, 현재 메뉴의 변경된 가격으로 정산 금액이 계산됨
- 결과적으로 실제 금액보다 더 크게 표기되는 오류가 발생
[어려웠던 점과 극복 방법]
- 어려웠던 점
- 기존 데이터 모델이 실시간 메뉴 가격만 참조하도록 설계되어 있어 주문 당시의 가격을 참조할 방법이 없었음
- 과거 주문 기록 데이터가 누락되지 않도록 설계를 변경하고 이를 안정적으로 반영해야 했음
- 데이터 마이그레이션 과정에서 과거 주문 기록과 현재 데이터를 정확히 매핑하는 데 시간이 소요됨
[극복 방법]
- 문제 원인 분석: 메뉴 가격 변경 이력이 정산 금액 계산에 반영되는 구조를 파악
- 솔루션 설계: 주문 당시의 상품 가격을 별도로 기록하는 주문 기록 테이블 설계를 진행
- 데이터 마이그레이션: 기존 주문 데이터를 추출하고 새로운 테이블에 삽입하며, 데이터 무결성을 유지
[해결방안]
- 주문 기록 테이블 생성
- 주문 당시의 상품 정보(상품 ID, 주문 가격, 수량 등)를 별도로 저장하도록 설계
- 이 테이블을 정산 금액 계산의 참조 테이블로 변경.
- 데이터 마이그레이션 수행
- 기존 주문 데이터를 기준으로 주문 기록 테이블에 필요한 데이터를 삽입
- 데이터 검증 로직을 작성하여 누락된 주문이나 잘못된 데이터가 없는지 확인
- 쿼리 변경
- 기존 정산 쿼리를 수정하여 실시간 메뉴 가격이 아닌, 새로 생성된 주문 기록 테이블에서 데이터를 참조하도록 변경
[결과]
- 정산 금액 불일치 문제 해결: 주문 당시의 가격 정보를 기반으로 정확한 정산 금액을 계산하게 됨
- 데이터 무결성 확보: 과거 주문 데이터를 누락 없이 마이그레이션하고 검증 절차를 완료
- 시스템 신뢰도 향상: 정산 금액 관련 VOC가 크게 감소하며, 데이터 처리의 안정성을 확보
- 확장성 강화: 주문 기록 테이블을 통해 향후 분석 및 정산 로직 개선이 용이해짐