개발 slecs

KYC 본인인증 연동

목차

feat: PG 설정 추가 (KYC 미완성 시 Welcomepay 비활성화)

KYC(본인인증) 연동 작업에서 CI/DI 처리가 핵심이었음. 결제대행사 쪽에서 본인인증 완료 후 PostMessage로 CI, DI 값을 넘겨주는 구조임.

KYC 플로우 정리

1. 사용자  본인인증 페이지 오픈 (iframe/popup)
2. 결제대행사 SDK  인증 완료  PostMessage 전송
3. 부모   message 이벤트 수신
4. CI/DI  서버 저장 + 결제대행사 회원 등록

PostMessage 처리

인증 완료 시 type: 'KYC_COMPLETE' 이벤트로 ci, di 값을 수신해서 서버로 전송함. 부모창에서 window.addEventListener('message', handler)로 수신.

CI 필드 처리 이슈

문제 원인 해결
CI 조회 실패 컬럼명 오타 sqlmap 필드 매핑 수정
중복 등록 기본 조건 누락 WHERE status = 'ACTIVE' 추가
세션 유실 팝업 콜백 CORS WebMvcConfig 콜백 URL 예외 추가

특히 Apple OAuth가 form_post 방식이라 세션이 중간에 날아가는 문제가 있었음. 임시 state를 Redis에 저장하고 콜백에서 복원하는 방식으로 해결함.

다음: KYC 갱신 배치 주기 검토

개발 원칙 정리

이 작업을 진행하면서 재확인한 원칙들:

작은 커밋: 변경 단위를 작게 유지해서 코드 리뷰와 롤백이 쉽게.

테스트 먼저: 변경 전 현재 동작을 파악하고, 변경 후 동일하게 동작하는지 확인.

문서 동기화: 코드가 바뀌면 관련 주석과 문서도 같이 업데이트.

원칙 이유
단일 책임 하나의 함수/클래스는 하나의 역할만
명시적 코드 영리한 코드보다 읽기 쉬운 코드
실패 우선 처리 happy path보다 에러 케이스 먼저 설계

댓글 0

첫 댓글 달아줘.