프로젝트 개요→기술 핵심→어려움→교훈 결
금융·결제 관련 서비스 개발 경험은 개인 프로젝트에서 PG사 API를 연동해 구독 결제 기능을 구현한 것입니다. 일반 API 연동과 달리 결제 흐름에서 데이터 정합성과 예외 처리가 훨씬 중요하다는 것을 처음 경험했습니다. PG 연동 흐름에서 결제 요청, 웹훅 수신, 결제 검증, DB 상태 업데이트의 순서가 원자적으로 처리돼야 한다는 점을 직접 트랜잭션 설계로 구현했습니다.
멱등성 처리는 웹훅이 중복 발송될 경우 동일 결제를 두 번 처리하지 않도록 결제 ID 기준 중복 체크를 추가하는 방식으로 적용했습니다. 결제 취소와 환불 로직은 성공 경로보다 훨씬 복잡한 예외 케이스가 많아, 모든 상태 전이를 먼저 도식화하고 코드로 옮기는 방식이 버그를 줄이는 데 효과적이었습니다.
금융 서비스는 로그가 증거가 된다는 것을 이해하고, 모든 결제 이벤트를 원본 그대로 보관하는 이벤트 로그를 별도로 만들었습니다. 정합성 설계와 예외 흐름 완결이 결제 서비스 개발의 핵심이라는 결론을 갖고 있습니다.