비밀번호 하나면 끝? QA 간편결제 시스템 테스트

이제는 신용카드 번호나 유효기간을 외우지 않아도 됩니다.

지문이나 비밀번호 하나만으로, 단 3초 만에 결제가 끝납니다.

카카오페이, 네이버페이와 같은 ‘간편결제’는 우리 삶을 매우 편리하게 만들었습니다.

하지만 이 편리함 뒤에는, 우리 서비스 앱, 간편결제 앱, 그리고 각 회사의 서버가 거미줄처럼 얽혀 통신하는 매우 복잡한 과정이 숨어있습니다.

이번 글에서는 QA가 이 복잡한 간편결제 연동 과정을 어떻게 테스트하는지, 실제 사용자 시나리오의 흐름에 따라 알아보겠습니다.

이 글에서 다루는 것


  • 간편결제의 핵심 동작 원리 (앱투앱, 콜백)
  • QA의 단계별 테스트 검증 포인트
  • 간편결제 테스트의 가장 흔한 실패 지점
  • 현직 QA의 간편결제 테스트 경험담

간편결제, 무엇이 다른가? (사용자 시나리오의 이해)

간편결제가 기존 카드 결제와 가장 다른 점은, 사용자가 결제를 위해 우리 앱을 잠시 떠났다가, 다시 돌아온다는 것입니다. QA는 이 전체 여정이 순탄한지 검증해야 합니다.

  • 사용자의 여정:
    1. 우리 서비스 앱에서 ‘카카오페이로 결제하기’ 버튼을 클릭합니다.
    2. 카카오톡 앱이 자동으로 실행됩니다. (앱투앱 전환)
    3. 사용자는 카카오톡 안에서 비밀번호 또는 생체 인증을 합니다.
    4. 인증이 완료되면, 다시 우리 서비스 앱으로 자동으로 돌아옵니다.
    5. 우리 서비스 앱에는 ‘결제 완료’ 화면이 표시됩니다.

QA의 가장 큰 도전 과제는, 이렇게 여러 앱과 서버를 넘나드는, 잠재적으로 불안정한 전체 흐름의 안정성을 보증하는 것입니다.

[핵심 1] ‘앱투앱(App-to-App)’ 전환 테스트

사용자가 다른 앱으로 안전하게 넘어갔다가, 다시 우리 앱으로 무사히 돌아오는지 검증하는 것이 첫 번째 관문입니다.

  • QA 검증 포인트:
    • 앱 설치 여부에 따른 분기 처리:
      • 카카오톡 앱이 설치된 사용자: 정상적으로 카카오톡 앱이 실행되고 결제 화면이 나타나는가?
      • 카카오톡 앱이 설치되지 않은 사용자: 앱 설치를 유도하는 페이지로 이동하거나, 웹 기반의 결제창을 대신 보여주는 등 예외 처리가 잘 이루어지는가?
    • 데이터 전달의 정확성:
      • 우리 앱에서 결제할 금액, 상품명 등의 정보가 카카오톡 앱의 결제창에 정확하게 전달되어 표시되는가?

[핵심 2] ‘결제 결과 통보(Callback/Webhook)’ 테스트

사용자가 카카오톡에서 인증을 성공적으로 완료하면, 카카오페이 서버는 우리 서비스의 서버에게 보이지 않는 곳에서 신호를 보냅니다.

“ID 123번 고객의 결제가 성공적으로 끝났습니다.”

이 보이지 않는 신호를 ‘콜백(Callback)’ 또는 **’웹훅(Webhook)’**이라고 합니다. 이 콜백 처리를 검증하는 것이 간편결제 테스트의 핵심입니다.

  • QA 검증 포인트:
    • 성공 시나리오:
      • ‘결제 성공’ 콜백을 받은 즉시, 우리 데이터베이스의 주문 상태가 ‘결제 완료’로 정확하게 변경되는가?
    • 실패 및 취소 시나리오:
      • 사용자가 카카오톡에서 결제를 ‘취소’했거나, 비밀번호 오류로 ‘실패’했을 때, 그 결과가 콜백으로 정상적으로 전달되는가?
      • 그리고 우리 데이터베이스의 주문 상태가 ‘결제 실패’로 올바르게 변경되는가?
    • 네트워크 지연 및 유실 시나리오:
      • 만약 콜백 신호가 네트워크 문제로 중간에 유실되거나, 몇 분 뒤에 지연되어 도착했을 때, 우리 시스템이 중복 결제를 만들지 않고 안전하게 대응하는가? (매우 중요한 예외 처리 테스트)

현직 QA의 실제 실패 경험담

과거 한 쇼핑몰의 간편결제 테스트에서 겪은 문제입니다.

사용자가 결제를 마치고 우리 앱으로 돌아왔는데, 화면에는 계속 ‘결제 진행 중…’이라는 메시지만 보였습니다.

근본 원인 분석 결과, 카카오페이 서버로부터 ‘결제 성공’ 콜백은 우리 서버에 정상적으로 도착했지만, 우리 서버가 그 신호를 처리하는 백그라운드 작업이 1분 주기로 돌고 있었던 것입니다.

결과적으로, 사용자는 최대 1분간 아무것도 하지 못하고 답답하게 기다려야 했던, 최악의 사용자 경험이었습니다.

이 경험을 통해, 간편결제 테스트는 실시간으로 처리되어야 하는 부분과 비동기적으로 처리되는 부분을 명확히 구분하여, 최종 사용자 관점의 ‘체감 속도’까지 검증해야 한다는 것을 배웠습니다.

결론: 편리함 뒤의 복잡성을 보증하는 역할

간편결제는 사용자에게는 더할 나위 없이 편리한 경험을 제공합니다.

하지만 그 이면에는 여러 시스템이 API와 콜백을 통해 복잡하게 통신하는, 수많은 실패 가능성이 숨어있습니다.

QA는 이 복잡한 통신 과정의 모든 길목을 지키고, 어떤 예외 상황에서도 고객의 결제가 안전하고 정확하게 처리됨을 보증하는, 핀테크 서비스의 핵심적인 신뢰 보호자입니다.

부록: 간편결제 테스트 미니 체크리스트 ✅


  • 결제 수단 앱(카카오톡 등)이 설치되지 않았을 때, 대체 결제 흐름이 정상적으로 동작하는가?
  • 결제 진행 중, 사용자가 뒤로가기 버튼을 누르거나 앱을 강제 종료했을 때, 주문 상태가 어떻게 처리되는가?
  • 결제 성공 후, 사용자에게 발송되는 알림(푸시, 알림톡)과 실제 결제 내역이 일치하는가?
  • 결제 취소(환불) 시, 간편결제 사업자(카카오페이 등)와 우리 시스템 양쪽에 모두 취소 처리가 정확하게 반영되는가?
  • 콜백(Webhook) 통신이 실패했을 때, 일정 시간 후 재시도하는 로직이 구현되어 있는가?

참고 자료 (References)


  • 토스페이먼츠 – 결제 연동 개발 가이드 (국내 대표 PG사의 간편결제 연동 공식 문서)
  • PayPal Developer – Redirect payment flows (글로벌 결제 솔루션의 리다이렉트 방식 결제 흐름 설명)

댓글 남기기