ServiceFlow - API 문제 진단 실습
주문 처리를 바탕으로 SQL 문제를 진단하고 결제 오류 처리와 API 회귀 테스트를 연습하는 FastAPI 애플리케이션입니다.
- 문제
- 주문 보고서에서 쿼리가 반복되고, 결제가 실패해도 주문이 결제 완료로 표시될 수 있으며, 잘못된 주문 항목으로 합계 금액이 틀어질 수 있습니다.
- 접근 방식
- 요청 로그, 서비스 코드, SQL 실행 계획을 살펴 원인을 찾았습니다. 인덱스와 집계 쿼리를 적용하고 결제 및 데이터 검증 처리를 수정한 뒤 pytest로 확인했습니다.
- 결과
- 인덱스와 집계 쿼리를 적용해 로컬 서비스 계층 시간의 중앙값을 90.26 ms에서 2.11 ms로 줄였습니다(42.8배). 생성한 SQLite 데이터는 고객 500명, 주문 2,000건, 항목 5,966개입니다.
- Python
- FastAPI
- SQLAlchemy
- SQLite
- SQL diagnostics
- pytest
- GitHub Actions
로컬 생성 데이터 · 모의 결함 · 호스팅 데모 없음.