개발 slecs

신규 결제 수단 추가로 충전 유입 다양화

목차

지갑 결제 시스템에 두 가지 새로운 결제 수단을 추가했다: 특정 카드 결제 PG와 가상계좌 통합인증.

결제 수단 다양화가 중요한 이유

결제 서비스에서 지원하는 수단이 많을수록 사용자의 선택 폭이 넓어지고, 그만큼 충전 완료율이 올라간다. 예를 들어 신용카드가 없는 사용자도 가상계좌로 충전할 수 있고, 카드를 선호하는 사용자는 빠른 결제 경험을 얻는다. 특히 결제 시스템을 처음 구축할 땐 한두 가지 수단만 지원하기 쉽지만, 실제 운영에 들어가면 "이 결제 방법도 지원해달라"는 요청이 자주 들어온다. 미리 다양성을 고려해 설계하면 나중에 수정 비용을 크게 줄 수 있다.

작업 구성: 백엔드 골격과 프론트엔드 통합

이번 작업은 두 부분으로 나뉜다.

백엔드 (Java): 결제 PG 연동을 위한 기본 클래스 골격을 egovframework/com/slecs/co/wallet/web/ 경로에 추가했다. "골격"이라고 한 건, 실제 PG사와의 API 통신 로직은 다음 단계에서 구현하고, 여기선 결제 요청/응답 처리의 기본 구조만 세운다는 뜻이다. 팀이 작을 땐 골격-구현 단계를 나눔으로써 인수인계와 검토가 더 명확해진다.

프론트엔드 (JSP): charge.jsp 에서 충전 페이지 UI를 수정해 새로운 결제 수단을 선택할 수 있도록 했고, 가상계좌 결제 시 통합 인증 절차를 거친다. 결제 수단별로 필요한 파라미터와 검증 로직이 다르기 때문에, 프론트에서도 분기 로직이 늘어난다.

결제 수단 특징 검증 포인트
카드 결제 빠른 결제, 즉시 완료 유효성 검사, 한도 확인, 보안
가상계좌 사후 인증 가능, 선택폭 넓음 계좌 확인, 입금 추적, 중복 검사

결제 수단 추가 시 자주 만나는 패턴들

여러 번 결제 시스템을 확장하면서 배운 것들:

  • 인증 흐름의 표준화: 가상계좌든 카드든 기본 골격은 "사용자 인증 → 결제 요청 → 결과 콜백" 이다. 각 수단마다 상세 구현은 다르지만, 큰 흐름을 일관되게 유지하면 유지보수가 훨씬 쉽다.
  • PG 테스트 환경 관리: 실제 거래를 처리하는 코드이므로, 개발/테스트 단계에서 테스트 계정을 따로 관리해야 한다. 실 결제로 실수하면 환불 처리가 복잡해진다.
  • 에러 핸들링의 층화: PG사마다 에러 코드와 메시지가 다르다. 우리 시스템에서는 PG 에러를 표준화된 형식으로 변환해서 사용자에게 보여준다.
  • 결제 기록 감시(audit trail): 결제가 실제로 일어난 상품·금액과 기록된 데이터가 일치하는지 로그로 추적할 수 있어야 한다.

팀 관점에서의 교훈

이번 작업에서 주의한 점은 "병렬 작업 설계"다. 백엔드 팀이 골격을 만드는 동안 프론트엔드 팀은 UI와 클라이언트 로직을 진행할 수 있도록, 양쪽 인터페이스(request/response 형식, 파라미터명 등)를 먼저 정의했다. 그래야 한쪽 완성을 기다릴 시간을 줄인다.

PG 연동은 외부 의존성이 크므로 충분한 테스트 기간을 확보하는 게 중요하다. 개발 초반엔 테스트 환경(샌드박스)에서만 검증하고, 실 운영 환경에 반영하기 전에 카드사/은행과 공동으로 모의 거래를 진행한다. 이 단계에서 발견되는 문제들이 실 거래 장애를 막을 수 있기 때문이다.

마지막으로, 새 결제 수단이 추가될 때마다 보안 점검이 필수다. 결제 정보(카드번호, 계좌번호)는 절대 우리 서버에 저장하면 안 되고, PG사의 보안 프로토콜을 그대로 따라야 한다. 코드 리뷰 때 "이 부분에서 민감한 정보가 로그에 남지는 않나?", "토큰은 안전한 채널로만 전송되나?" 같은 질문이 필수인 이유다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.