내가 셀프 호스팅 PayPal 및 Stripe 체크아웃을 만든 방법 (그리고 중개자를 피한 이유)
Source: Dev.to
결제 받는 일은 쉬워야 합니다.
하지만 새로운 사이드 프로젝트나 SaaS를 시작할 때마다 나는 다음 중 하나를 고르는 데 막혔습니다:
- 오래된 문서에서 복사‑붙여넣기한 PayPal 버튼
- 완전히 제어할 수 없는 Stripe Checkout 흐름과 씨름
- 수수료, 락인, 혹은 필요 없는 추상화를 추가하는 호스팅 도구 사용
나는 더 간단한 것이 필요했습니다:
👉 작은 자체‑호스팅 레이어 하나로 스니펫을 실제 PayPal 또는 Stripe 결제 버튼으로 변환
중개인 없음. 플랫폼 락인 없음. 내 키, 내 서버, 내 자금.
그래서 직접 만들었습니다.
“just use Stripe / PayPal”의 문제
Don’t get me wrong — Stripe와 PayPal은 훌륭한 결제 프로세서입니다.
The problem isn’t them. It’s everything around them.
Common issues I kept hitting:
- 간단한 결제에 비해 과도한 보일러플레이트
- PayPal과 Stripe 각각 다른 흐름
Hosted tools that:
- 수수료를 차감한다
- 거래 데이터를 저장한다
- 가격이 바뀔 때 깨진다
UI와 동작에 대한 제어가 거의 없다.
많은 프로젝트에서 저는 단지 다음만 원했습니다:
- 버튼 하나
- 가격
- 콜백
- 끝
내가 원했던 것
내 요구 사항은 간단했습니다:
- ✅ 자체 호스팅
- ✅ 내 PayPal 및 Stripe API 키와 함께 작동
- ✅ 거래 수수료 없음
- ✅ 간단한 임베드 스니펫
- ✅ 호스팅을 원하지 않는 사용자를 위한 선택적 클라우드 버전
그것이 결국 FreshLimePay가 되게 만든 아이디어였습니다.
작동 방식 (고수준)
- PayPal 또는 Stripe 키를 연결합니다.
- 제품 또는 금액을 정의합니다.
- 시스템이 작은 스니펫을 생성합니다.
- 해당 스니펫이 실제 결제 버튼을 렌더링합니다.
결제는 직접 귀하의 계정으로 들어갑니다 — 돈을 중계하지 않고, 자금을 보유하지 않으며, “플랫폼 지갑”도 없습니다.
예시: 스니펫에서 버튼으로
목표는 다음과 같은 형태였습니다:
PayPal
Stripe
그리고 즉시 작동하는 결제 버튼을 얻을 수 있습니다. 끝입니다.
자체 호스팅 vs 클라우드 (왜 두 가지를 모두 지원하는가)
이 작업을 하면서 중요한 사실을 깨달았습니다: 모든 사람이 자체 호스팅을 원하는 것은 아니라는 점입니다. 그래서 FreshLimePay는 두 가지 모드를 제공하게 되었습니다:
🔒 자체 호스팅
- 자체 서버에 설치
- 완전한 제어권
- 일회성 또는 연간 라이선스
- 개발자, 에이전시, SaaS 창업자에게 최적
☁️ 클라우드
- 설치 불필요
- 즉시 설정 가능
- 구독 모델
- 비기술 사용자 또는 빠른 출시를 원하는 경우에 최적
자체 호스팅이 여전히 중요한 이유 (우리 중 일부에게는)
- 소유권
- 예측 가능한 비용
- 의존성 감소
- 다른 곳에서 가격 페이지가 바뀔 때 더 편안히 잠을 잘 수 있음 😅
개발자라면, 그 느낌을 잘 알 겁니다.
직접 만들고 싶지 않다면
이것을 FreshLimePay에 패키징해서 다른 사람들이 같은 것을 반복해서 다시 만들 필요가 없게 했습니다.
- Website:
- Cloud app:
직접 만들고 싶다면 — 좋습니다. 만들고 싶지 않다면, 이것이 시간을 절약해 줄 수 있습니다.
최종 생각
이것은 Stripe나 PayPal을 대체하기 위한 것이 아닙니다. 특히 소규모 제품, MVP, 인디 프로젝트에서 더 쉽게 사용할 수 있도록 하는 것이 목적입니다.
관심이 있으시면, 질문에 답변하거나 댓글에 구현 세부 사항을 공유해 드리겠습니다.
읽어 주셔서 감사합니다 👋

