Stripe
개요
Stripe는 결제 처리업체(PSP)입니다. 앱이 신용카드, 지갑, 은행 결제를 받을 수 있게 해주는 API와 대시보드의 집합이며, 이후 구독, 인보이스, 정산까지 관리해줍니다. API가 깔끔하고 문서가 훌륭하며, 거의 모든 튜토리얼과 라이브러리가 Stripe를 전제로 하기 때문에 개발자들의 기본 선택지입니다. 연동해두면 고객이 결제하고, 돈이 여러분의 은행 계좌로 들어옵니다.
강점
- 업계 최고 수준의 개발자 경험 — 명확한 API, 테스트 모드, 훌륭한 문서.
- 거대한 생태계: SDK, 사전 구축된 체크아웃, 결제 청구, 서드파티 연동.
- 일회성 결제, 구독, 마켓플레이스, 사용량 기반 청구까지 모두 다룰 만큼 유연함.
- 강력한 사기 방지 도구(Radar)와 신뢰할 수 있고 잘 문서화된 webhook.
- 다양한 국가와 통화를 지원.
트레이드오프
- 결제 처리업체일 뿐 MoR(merchant of record)가 아니므로, 여러분이 판매 주체가 됩니다. 따라서 판매세와 VAT의 징수 및 납부는 여러분의 책임입니다(Stripe Tax가 계산을 돕지만, 신고는 여전히 여러분 몫입니다).
- 호스팅형 스토어보다 설정할 것이 많고, 흐름의 더 많은 부분을 직접 구축해야 합니다.
- 규모가 커질수록 컴플라이언스, 차지백, 세무 등록이 여러분에게 떨어집니다.
언제 사용하나
결제 흐름을 최대한 제어하고 싶고 세무 컴플라이언스를 직접 감당할 수 있을 때, 또는 호스팅형 스토어로는 표현할 수 없는 것(마켓플레이스, 사용량 측정 기반 청구, 복잡한 구독, 깊이 맞춤화된 체크아웃)을 만들 때 Stripe를 선택하세요.
바이브 코딩 적합성
Stripe는 AI 친화도가 가장 높은 결제 옵션입니다. 에이전트가 수천 개의 Stripe 예제를 접해봤기 때문에 체크아웃, webhook, 고객 포털을 빠르게 골격화할 수 있습니다. 다만 함정이 있습니다. 에이전트는 기꺼이 결제를 연동해주지만, 이제 여러분이 수십 개 관할 지역에서 세금을 내야 한다는 사실은 잊어버립니다. 명확히 지시하세요. MoR 구성을 원하는지 알려주고, 항상 webhook 서명을 검증하며 이벤트를 멱등(idempotent)하게 처리하세요. 라이브로 전환하기 전에 Stripe의 테스트 카드로 테스트하세요.
// 체크아웃 세션 생성 (서버 측)
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
const session = await stripe.checkout.sessions.create({
mode: "payment",
line_items: [{ price: "price_123", quantity: 1 }],
success_url: "https://example.com/thanks",
cancel_url: "https://example.com/cancel",
});
// 고객을 session.url 로 리다이렉트