Stripe가 도달할 수 없는 국가에서 Stripe 없이 판매하기: 컴플라이언스가 기술적 문제가 될 때

발행: (2026년 5월 22일 AM 05:59 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

우리가 실제로 해결하고 있던 문제

우리는 베네수엘라에서 제품을 출시했으며, 전통적인 결제 수단을 받는 것이 곧 문제될 것이라는 것을 빠르게 깨달았습니다. 초기 해결책은 PayPal의 대량 지급 기능에 의존했지만, 이는 오래가지 못했습니다. 약간의 컴플라이언스 문제 때문에 계정이 정지되었고, 사용자 자금에 접근할 수 없게 되었습니다. 이로 인해 악성 PR과 불만 고객이 동시에 발생하는 최악의 상황이 벌어졌습니다. 그때 우리는 베네수엘라 경제의 복잡성을 감당할 수 있는 대체 결제 인프라를 찾아야 한다는 것을 알게 되었습니다.

초기 결제 어려움

PayPal을 대체하려는 첫 시도는 Stripe를 통합하는 것이었습니다. 그러나 추가 조사를 해보니, Stripe의 컴플라이언스 요구사항 때문에 다양한 제재와 금수 조치로 인해 베네수엘라에서 운영할 수 없다는 사실을 알게 되었습니다.

시도한 대안들

그 후 PayU나 Mercado Pago와 같은 대체 결제 게이트웨이를 검토했지만, 여전히 요구사항이 너무 제한적이었고 수수료가 감당하기 힘들 정도로 비쌌습니다. 전통적인 결제 프로세서에 맞추려 할수록 우리와 같은 틈새 시장에 대한 그들의 무관심을 더 크게 느끼게 되었습니다.

Petro와 블록체인 솔루션

수개월간의 연구와 실험 끝에 결국 대안을 찾았습니다: 크로스‑체인 애플리케이션을 구축하기 위한 블록체인 프레임워크인 Cosmos SDK를 활용한 암호화폐 결제 인프라였습니다. 우리는 베네수엘라 정부가 지원하는 주권 디지털 화폐 Petro를 통합하기로 결정했습니다. 블록체인 개발을 전문으로 하는 개발자의 도움을 받아, 제품을 직접 Petro 네트워크에 연결하는 맞춤형 결제 흐름을 만들었습니다. 이를 위해 Petro 지갑 API와 상호 작용하고, 키 관리를 처리하며, 민감한 사용자 데이터를 암호화하는 맞춤 소프트웨어를 작성해야 했습니다.

결과

  • 고객 이탈률이 30 % 감소했습니다. 고객은 이제 결제 문제에 신경 쓰지 않고 제품을 구매할 수 있게 되었습니다.
  • 평균 주문 금액(AOV)이 20 % 증가했습니다. 이는 거래 수수료가 감소했기 때문입니다.
  • 전체 고객 만족도 점수가 크게 향상되었습니다.
  • Petro 화폐를 이용한 국제 거래가 50 % 증가했습니다.

회고

돌이켜 보면, 개발 초기 단계에서 블록체인 솔루션을 더 일찍 탐색했어야 했습니다. 초기 투자는 가치 있었지만, 비즈니스의 다른 핵심 영역에서 자원을 빼앗기는 결과를 낳았습니다. 또한, 우리 목표 시장에 더 나은 지원을 제공하는 보다 투명하고 컴플라이언스에 부합하는 블록체인 프레임워크를 선택했어야 했습니다. 만약 아키텍처 결정을 다시 한다면, SolanaAlgorand와 같이 더 견고하고 커뮤니티 중심의 블록체인 솔루션을 선택했을 것입니다. 이는 더 나은 확장성과 보다 확립된 채택률을 제공합니다.

0 조회
Back to Blog

관련 글

더 보기 »

베네수엘라의 디지털 크리에이터는 당신의 BS 솔루션을 필요로 하지 않는다.

우리가 실제로 해결하려던 문제 초기 시도 내 플랫폼의 결제 시스템은 PayPal, Stripe, Gumroad와 같은 제3자 서비스를 이용합니다. 이 서비스들은 결제 흐름을 처리하고, 결제 성공 여부를 내 시스템에 알리는 웹훅을 보냅니다. 그러나 이 웹훅이 전송되지 않거나, 결제 상태가 정확히 반영되지 않는 경우가 발생했습니다. ### 문제 정의 1. **결제 상태 동기화 실패** - 사용자가 결제를 완료했음에도 불구하고, 내 데이터베이스에 결제 완료가 기록되지 않음. - 반대로, 결제 실패가 있었음에도 “결제 완료”로 표시되는 경우가 있음. 2. **웹훅 신뢰성 부족** - PayPal, Stripe, Gumroad 모두 재시도 메커니즘을 제공하지만, 내 서버가 일시적인 오류(예: 500 오류, 타임아웃)로 인해 웹훅을 놓치는 경우가 있음. - 웹훅이 중복 전송될 때 중복 처리를 방지하는 로직이 부재함. 3. **다중 결제 제공자 관리 복잡성** - 각 제공자는 서로 다른 API 스키마와 이벤트 타입을 사용함. - 결제 확인 로직이 제공자마다 다르게 구현돼 있어 유지보수가 어려움. ### 초기 접근 방식 1. **단일 제공자에 의존** - 처음에는 Stripe만 사용하고, Stripe의 `checkout.session.completed` 이벤트만 처리하도록 설계했습니다. - 이 접근 방식은 구현이 간단했지만, PayPal과 Gumroad 사용자를 배제하게 되었습니다. 2. **동기식 확인** - 결제 완료 직후 클라이언트에서 서버로 즉시 API 호출을 보내 결제 상태를 확인하도록 했습니다. - 그러나 네트워크 지연이나 사용자가 결제 페이지를 닫는 경우, 이 호출이 누락될 수 있었습니다. 3. **단순 재시도 로직** - 웹훅 처리 중 오류가 발생하면 5분 후에 동일한 엔드포인트로 재시도하도록 설정했습니다. - 이 방식은 재시도 간격이 고정돼 있어, 일시적인 장애가 길어질 경우 여전히 데이터가 누락될 위험이 있었습니다. ### 초기 접근 방식의 문제점 - **제공자 제한**: Stripe만 지원하면 PayPal 사용자와 Gumroad 사용자를 잃게 됩니다. - **실시간성 부족**: 클라이언트‑서버 동기 호출은 사용자의 행동에 크게 의존하므로, 결제 완료를 놓칠 가능성이 높습니다. - **재시도 한계**: 고정된 재시도 간격과 횟수는 다양한 장애 상황을 충분히 커버하지 못합니다. ### 결론 우리는 결제 상태를 **신뢰성 있게** 동기화하고, **다중 제공자**를 원활히 지원하며, **웹훅 실패**에 대한 강력한 복구 메커니즘을 갖춘 시스템이 필요합니다. 이를 위해 다음과 같은 설계 원칙을 채택했습니다.