KYC 본인인증 연동
목차
feat: 웰컴페이 회원 상태 조회/변경 기능 및 PostMessage 처리 개선
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
첫 댓글 달아줘.