Stripe·토스페이먼츠 결제 받기 — 비전공자 첫 1만 원 매출 코드 가이드 (2026)

이 글로 얻는 것
비전공자가 본인 사이트에 결제 기능을 붙이고 첫 1만 원 매출을 받는 흐름을 정리했습니다. Stripe 연동(글로벌)·토스페이먼츠(한국)·PayPal·Lemon Squeezy 4가지 결제 도구 비교, 사용자 클릭부터 DB 저장·메일 발송까지 결제 흐름 4단계, 첫 결제 받기 5단계 + 본문 100~200줄 코드 예시까지. 1~2시간이면 테스트 결제까지 동작하고, 사업자 등록 후 실제 매출이 들어오기 시작합니다.
📑 목차

 

🎯 결제 통합이 비전공자에게 어려워 보이는 이유

“내 사이트에서 돈을 받는다”는 말이 비전공자분에게는 가장 큰 벽 중 하나처럼 느껴져요. 보안·법적 책임·코드 복잡성 같은 단어가 한꺼번에 떠오르거든요. 다만 2026년 결제 통합은 생각보다 단순합니다. 결제사가 99% 처리하고, 본인은 100~200줄 코드 + 사업자 등록만 챙기시면 돼요.

경험상 비전공자분이 첫 결제 받기까지 걸리는 시간은 평균 3~5일이에요. 그중 코드 작성이 1~2시간, 나머지는 사업자 등록 심사 대기 시간입니다. 5월 시리즈에서 다룬 바이브코딩 앱 수익화 5가지의 실전 코드 가이드라고 보시면 됩니다.

한 가지 미리 짚어드릴게요. 결제 도구 선택은 본인 사용자 시장으로 결정해야 합니다. 한국 사용자만이면 토스페이먼츠, 글로벌 SaaS면 Stripe, 빠르게 가입만 하고 싶으면 PayPal이에요. 첫 시도엔 한국 비전공자분에게 토스페이먼츠가 가입·심사가 가장 단순합니다.

 

💳 결제 도구 4가지 — 본인 시장으로 결정

비전공자분이 첫 시도에 고려할 수 있는 4가지 결제 도구를 정리했어요. 시장·수수료·가입 난이도 기준입니다.

비전공자 결제 도구 4가지 비교 — Stripe(글로벌 표준 2.9%+$0.30), 토스페이먼츠(한국 표준 3.3%), PayPal(간편 가입 3.49%+$0.49), Lemon Squeezy(MoR 모델 5%+$0.50) — 강점·약점·추천 대상 정리
한국 사용자만 → 토스페이먼츠 / 글로벌 → Stripe / 빠른 시작 → PayPal

 

도구별 한 줄 결정 기준

  • 토스페이먼츠 — 한국 사용자가 80% 이상이면 1순위. 카드·계좌이체·간편결제(카카오·네이버페이 등)를 한 번에 지원하고 한국어 사용자 익숙도가 가장 높아요.
  • Stripe — 글로벌 SaaS 또는 해외 사용자가 절반 이상이면 1순위. 자동 갱신 구독·세금 계산·송장 발행이 강하고 개발자 문서가 가장 잘 정리돼 있어요.
  • PayPal — 사업자 등록 없이 빠르게 시작하고 싶으면 1순위. 개인 계좌로 가입 후 결제 받기 가능. 다만 한국 사용자에게는 익숙도가 낮아요.
  • Lemon Squeezy — 디지털 다운로드(템플릿·전자책·코드)를 글로벌로 팔 거면 1순위. MoR(Merchant of Record) 모델이라 세금·VAT를 자동 처리해줘요.
💡 첫 시도엔 토스페이먼츠 추천
한국 비전공자분 첫 시도엔 토스페이먼츠가 가장 단순합니다. 가입·심사가 빠르고, 한국 카드·간편결제 모두 한 번에 처리되고, 한국어 공식 문서가 매우 잘 정리돼 있어요. 글로벌 진출이 명확한 SaaS 아이템이 아니라면 우선 토스로 시작하시고 필요할 때 Stripe를 추가하시는 게 효율적입니다.

 

🔄 결제 흐름 4단계 — 본인이 만들 부분

결제 시스템은 복잡해 보이지만 4단계로 분해하면 본인이 만들 부분과 결제사가 처리할 부분이 명확하게 나뉘어요.

결제 흐름 4단계 — 1단계 사용자 결제 버튼 클릭, 2단계 Stripe·토스 호스팅 결제 페이지 자동 처리, 3단계 Webhook으로 결제 완료 알림 받아 DB 저장, 4단계 사용자에게 성공 페이지와 영수증 메일 알림
본인이 만드는 부분: 1·3·4단계 (2번은 결제사 자동) — 전체 약 100~200줄

 

각 단계 한 줄 설명

단계 본인 작업 결제사 작업
1. 사용자 클릭 결제 버튼 + API 호출 함수
2. 결제 페이지 없음 카드 입력·인증·간편결제 모두 자동
3. Webhook 처리 알림 받아 DB에 결제 기록 저장 서명 포함 알림 발송
4. 사용자 알림 성공 페이지 + 영수증 메일

1·3·4단계는 본인 코드, 2단계는 결제사 호스팅 페이지로 위임됩니다. 카드 정보는 본인 서버를 거치지 않아서 PCI-DSS 같은 무서운 보안 규정 부담이 없어요. 이게 2026년 결제 통합이 단순해진 가장 큰 이유입니다.

 

🛠 첫 결제 받기 5단계 (토스페이먼츠 기준)

토스페이먼츠를 예시로 5단계를 풀어드릴게요. Stripe도 흐름은 거의 동일하니 차이만 별도 섹션에서 다뤄요.

토스페이먼츠 첫 결제 받기 5단계 — 1단계 결제사 가입 + 테스트 키 발급, 2단계 .env에 키 저장 + 컴포넌트, 3단계 결제 요청 + Webhook 엔드포인트, 4단계 테스트 카드로 결제, 5단계 사업자 등록 후 라이브 키 전환
테스트 결제는 1시간, 실제 결제는 사업자 등록 후 1~3일.

 

1단계 — 토스페이먼츠 가입 + 테스트 키 발급 (10분)

tosspayments.com에서 가입 후 개발자 센터 → 테스트 환경 → API 키 메뉴에 들어갑니다. 두 개의 키가 보여요: 클라이언트 키(브라우저용)와 시크릿 키(서버용). 두 키를 메모해두세요.

 

2단계 — .env에 키 저장 (10분)

본인 프로젝트 루트의 .env.local 파일에 두 키를 저장합니다. 클라이언트 키는 NEXT_PUBLIC_ 접두사를 붙여야 브라우저에서 접근 가능해요.

# .env.local
NEXT_PUBLIC_TOSS_CLIENT_KEY=test_ck_...
TOSS_SECRET_KEY=test_sk_...

키 관리 자세한 흐름은 .env API 키 관리 가이드를 참고하세요.

 

3단계 — 결제 요청 + Webhook 엔드포인트 추가 (30분)

두 개의 API 라우트가 필요합니다. 하나는 결제 요청용, 하나는 결제 완료 알림 수신용이에요. 다음 섹션에서 실제 코드를 다뤄요.

 

4단계 — 테스트 카드로 결제 (10분)

실제 카드를 안 써도 결제 흐름을 시험할 수 있어요. 토스페이먼츠 공식 테스트 카드 번호는 4242-4242-4242-4242입니다. 만료일은 미래 아무 날짜, CVC는 임의 3자리. 결제 완료 후 본인 DB에 결제 기록이 저장됐는지 확인하세요.

 

5단계 — 사업자 등록 + 라이브 키 전환 (1~3일)

실제 결제를 받으려면 사업자 등록이 필요합니다. 홈택스에서 개인사업자 등록(무료, 5분)을 한 후 토스페이먼츠 대시보드에서 라이브 모드 신청. 심사 1~3일 후 라이브 API 키가 발급되면 .env.local의 키를 라이브 키로 교체하시면 첫 진짜 결제가 가능해집니다.

 

💻 실제 코드 — 결제 요청부터 Webhook까지

Next.js 15 App Router 기준으로 핵심 코드만 정리했습니다. 본인이 그대로 복사해 시작 골조로 쓰셔도 돼요.

 

1. 결제 버튼 컴포넌트 (클라이언트)

// app/components/CheckoutButton.tsx
'use client'

export function CheckoutButton({ amount, orderId }: { amount: number; orderId: string }) {
  const handleClick = async () => {
    const res = await fetch('/api/checkout', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ amount, orderId })
    })
    const { paymentUrl } = await res.json()
    window.location.href = paymentUrl  // 토스 결제 페이지로 이동
  }

  return (
    <button onClick={handleClick}>
      ₩{amount.toLocaleString()}으로 결제
    </button>
  )
}

 

2. 결제 요청 API (서버)

// app/api/checkout/route.ts
import { NextResponse } from 'next/server'

export async function POST(req: Request) {
  const { amount, orderId } = await req.json()

  // 토스 결제 페이지 URL 생성 (간소화 버전)
  const paymentUrl = `https://api.tosspayments.com/v1/payments?` +
    `clientKey=${process.env.NEXT_PUBLIC_TOSS_CLIENT_KEY}&` +
    `amount=${amount}&orderId=${orderId}&` +
    `successUrl=${encodeURIComponent('https://my-site.com/success')}&` +
    `failUrl=${encodeURIComponent('https://my-site.com/fail')}`

  return NextResponse.json({ paymentUrl })
}

실전엔 토스 SDK(@tosspayments/payment-sdk)를 쓰시는 게 권장입니다. 위 코드는 흐름 이해용으로 단순화한 형태예요.

 

3. Webhook 수신 API (서버)

// app/api/webhook/route.ts
import { NextResponse } from 'next/server'
import { db } from '@/lib/db'

export async function POST(req: Request) {
  const event = await req.json()

  // 1) 서명 검증 (보안 필수)
  const signature = req.headers.get('toss-signature')
  // ... 서명 검증 로직 (공식 문서 참고)

  // 2) 결제 완료 이벤트 처리
  if (event.eventType === 'PAYMENT_STATUS_CHANGED' && event.data.status === 'DONE') {
    await db.payment.create({
      data: {
        orderId: event.data.orderId,
        amount: event.data.totalAmount,
        userId: event.data.metadata?.userId,
        paidAt: new Date(event.data.approvedAt)
      }
    })
    // 사용자 권한 활성화·메일 발송 등 후속 작업
  }

  return NextResponse.json({ received: true })
}
⚠️ Webhook 서명 검증 필수
Webhook은 인터넷 누구나 호출할 수 있는 공개 엔드포인트라 반드시 결제사가 보낸 진짜 요청인지 검증해야 합니다. 검증 안 하면 가짜 결제 알림으로 사용자에게 무료 권한이 풀릴 수 있어요. 토스페이먼츠는 toss-signature 헤더, Stripe는 stripe-signature 헤더로 검증합니다. 공식 문서의 검증 코드를 그대로 복사해 쓰세요.

 

🌍 글로벌 SaaS는 Stripe 흐름

Stripe는 흐름이 거의 동일하지만 두 가지 큰 차이가 있어요.

 

차이 1 — Stripe Checkout 한 줄로 결제 페이지 생성

// app/api/checkout/route.ts (Stripe 버전)
import Stripe from 'stripe'
import { NextResponse } from 'next/server'

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!)

export async function POST(req: Request) {
  const session = await stripe.checkout.sessions.create({
    mode: 'subscription',  // 또는 'payment' (1회 결제)
    line_items: [{
      price: process.env.STRIPE_PRICE_ID,
      quantity: 1
    }],
    success_url: 'https://my-site.com/success?session_id={CHECKOUT_SESSION_ID}',
    cancel_url: 'https://my-site.com/cancel'
  })

  return NextResponse.json({ url: session.url })
}

Stripe Checkout이 결제 페이지·카드 입력·3D Secure 인증을 모두 호스팅해줘서 본인이 결제 페이지를 만들 필요가 없어요. 토스보다 훨씬 단순합니다.

 

차이 2 — Stripe CLI로 Webhook 로컬 테스트

# Stripe CLI 설치 후
stripe listen --forward-to localhost:3000/api/webhook

# 다른 터미널에서 테스트 이벤트 발송
stripe trigger checkout.session.completed

로컬 개발 중에 Webhook 동작을 확인할 수 있는 강력한 도구예요. 토스페이먼츠는 동등한 CLI가 없어서 ngrok 같은 터널 도구로 로컬을 외부 노출시켜 테스트해야 합니다.

 

📋 사업자 등록 — 한국 기준 1~3일

한국에서 결제를 받으려면 사업자 등록이 필수예요. 다행히 개인사업자 등록은 무료고 5분이면 끝납니다.

 

개인사업자 등록 흐름

  1. 홈택스 접속 — hometax.go.kr 로그인 (간편인증 가능)
  2. 사업자등록 신청 — 신청·제출 → 사업자등록 신청(개인) 메뉴
  3. 업종 선택 — 정보통신업 → 응용 소프트웨어 개발 (또는 비슷한 코드)
  4. 사업장 주소 — 본인 거주지 주소로 가능 (사업장이 따로 없어도 OK)
  5. 제출 + 즉시 발급 — 사업자등록증 PDF 다운로드

발급된 사업자등록번호로 토스페이먼츠 대시보드에서 라이브 모드를 신청합니다. 보통 1~3일 안에 심사가 끝나고 라이브 API 키가 발급돼요.

💡 간이과세자로 시작하면 부가세 부담 ↓
연 매출 8천만 원 이하면 간이과세자로 등록 가능합니다. 부가세율이 일반과세자(10%)보다 낮아서(업종별 1.5~4%) 첫해엔 간이과세자로 시작하시는 게 부담이 적어요. 매출이 커지면 자동으로 일반과세자로 전환됩니다.

 

🚫 절대 하지 말아야 할 3가지

결제 통합에서 빠지기 쉬운 3가지 함정이에요. 한 번 빠지면 사고가 즉시 따라옵니다.

 

1. Webhook 서명 검증 생략

“테스트 환경에선 일단 검증 빼고 동작만 확인하자”는 시도가 가장 흔해요. 그렇게 만든 코드를 production에 그대로 올리면 누구나 가짜 결제 알림으로 본인 DB에 결제 기록을 만들 수 있습니다. 처음부터 서명 검증 코드를 포함해서 작성하세요. 공식 문서의 예제 코드를 그대로 복사하시면 5분이면 끝납니다.

 

2. API 키 코드에 직접 적기

시크릿 키를 코드에 직접 적고 git에 push하면 즉시 노출돼요. 봇이 GitHub을 실시간 스캔해서 노출 후 평균 4분 안에 키가 악용된다는 보고도 있습니다. 반드시 .env.local에 저장하시고 .gitignore.env*를 추가하세요. 바이브코딩 보안 실전 가이드의 노출된 비밀 섹션이 같은 영역입니다.

 

3. 라이브 키로 무지성 테스트

실제 결제 가능한 라이브 키로 테스트 결제를 시도하면 본인 카드에서 진짜로 돈이 빠집니다. 환불은 가능하지만 거래 기록이 남고 부가세 신고에도 영향이 있어요. 항상 테스트 키로 충분히 시험한 후 라이브 키로 전환하세요. 두 키는 명확히 다른 prefix(test_ vs live_)가 붙어있어 구분됩니다.

결제까지 붙였다면 이제 실전 차례예요. 바이브코딩 프로젝트 아이디어 10가지에서 골라 시작해보세요.

 

🪧 면책 조항

이 글은 2026년 4월 26일 기준 토스페이먼츠·Stripe·PayPal·Lemon Squeezy의 공개 정보와 공식 SDK 동작을 토대로 작성되었습니다. 결제사의 수수료·정책·API 형식은 자주 업데이트되니 결정 전에는 각 결제사 공식 문서를 확인해주세요. 본 글의 코드 예시는 학습용 단순화 버전이며 production 배포 전에는 공식 SDK·서명 검증·에러 처리·로깅을 추가로 챙기셔야 안전합니다. 사업자 등록·세금 신고는 한국 기준이며, 실제 운영 시에는 세무사와 상담하시는 게 가장 안전합니다.

오늘 안에 토스페이먼츠 가입과 테스트 키 발급까지만 끝내보세요. 첫 단계가 가장 큰 벽이고, 한 번 시작하면 나머지는 자연스럽게 굴러갑니다.

 

❓ FAQ

질문을 누르면 답변이 펼쳐집니다.

 

📌 시작 전 궁금한 것들

Q. 사업자 등록 없이 결제 받을 수 있나요?
한국 결제사(토스페이먼츠·KG이니시스 등)는 사업자 등록이 필수입니다. 사업자 없이 결제를 받고 싶다면 PayPal이나 Stripe 같은 해외 서비스를 쓰시는 방법이 있는데, 이 경우에도 일정 금액 이상부터는 신고 의무가 있어요. 가장 안전한 길은 개인사업자 등록(무료·5분)을 한 후 정상 흐름으로 가는 거예요.
Q. 처음부터 구독제로 가도 되나요?
기술적으로는 가능하지만 첫 시도엔 1회 결제부터 시작하시는 게 단순합니다. 구독제는 자동 갱신·카드 만료 처리·환불·일시정지 등 추가 로직이 많아서 복잡해요. 1회 결제로 한 번 첫 매출을 받아보고, 익숙해진 후 구독제를 추가하시는 흐름이 무난합니다.
Q. 부가세는 어떻게 처리하나요?
부가세는 결제 금액의 10%(일반과세자) 또는 1.5~4%(간이과세자)예요. 분기별 또는 연 1회 부가세 신고 시 결제 매출 합계에서 자동 계산됩니다. 결제 금액에 부가세를 포함해서 받을지 별도로 받을지는 본인이 결정하세요. 디지털 상품은 보통 부가세 포함가로 표시하는 게 일반적입니다.

 

⚙️ 설치·설정

Q. 토스페이먼츠 심사가 너무 오래 걸려요
평균 1~3 영업일이 표준이지만 사업자 정보가 불완전하거나 사이트가 미완성이면 추가 자료 요청으로 5~7일 걸리기도 해요. 가장 흔한 보완 사항은 사이트의 환불 정책·이용약관·개인정보처리방침 페이지 누락입니다. 신청 전에 이 3개 페이지를 미리 만들어두시면 한 번에 통과되는 확률이 높아져요.
Q. Stripe로 한국 사업자 가입이 안 돼요
Stripe는 한국에서 정식 서비스가 아직 제한적이에요. 한국 법인은 가입이 어렵고, 미국·홍콩·싱가포르 법인이 있다면 그 법인으로 가입하는 우회 방법이 있습니다. 한국 사업자분이 글로벌 결제를 받고 싶다면 Lemon Squeezy(MoR 모델로 한국에서도 가입 가능)나 Paddle 같은 대안을 고려하세요.
Q. Webhook이 본인 서버까지 안 와요
두 가지 원인이 흔해요. 첫째, 로컬 개발 환경(localhost)은 외부에서 접근 불가 — Stripe CLI나 ngrok 같은 터널 도구로 외부 노출 필요. 둘째, Vercel 등 배포 환경에서 함수 타임아웃 초과 — Webhook 처리는 가벼운 로직만 하고 무거운 작업은 큐로 분리하세요. Vercel 배포 실패 가이드의 7번 항목이 같은 카테고리입니다.
Q. 환불 처리는 어떻게 하나요?
두 가지 방법이 있어요. 첫째, 결제사 대시보드에서 직접 환불 버튼 클릭 — 가장 단순하고 안전. 둘째, 본인 사이트에 환불 API 호출 코드 추가 — 자동 환불 흐름 제공 가능. 첫 한 달은 대시보드 직접 환불로 시작하시고, 환불 빈도가 늘면 자동화하세요. 환불 시점에 본인 DB의 권한도 함께 회수하는 로직을 잊지 마세요.

 

🚀 그 다음 단계

Q. 첫 매출 후 다음 단계는?
세 가지 영역이 자연스럽게 이어져요. 첫째, 영수증 메일 자동화(Resend·Postmark 같은 서비스). 둘째, 환불·고객 문의 처리 시스템(Crisp·Intercom 같은 챗 도구). 셋째, 매출 분석 대시보드(Vercel Analytics + 본인 DB 쿼리). 첫 매출 후 1~2개월 안에 이 세 영역을 차례로 챙기시면 본격 SaaS 운영 단계로 진입합니다.
Q. 결제 통합 후 자주 점검할 게 있나요?
매주 1회 점검 항목 3가지를 추천합니다. 첫째, 실패한 결제 건수(카드 한도·잔액 부족 등) 확인. 둘째, Webhook 실패 로그 점검. 셋째, 환불·취소 요청 처리 진행 상황. 결제사 대시보드에 보통 이 정보가 한눈에 보여서 매주 5분이면 끝나요.
Q. SaaS로 키우려면 어떤 인증이 필요하나요?
결제 통합 다음 단계는 보통 회원가입·로그인이에요. Supabase Auth, Clerk, Auth0 중 하나로 시작하시면 됩니다. 사용자가 가입 → 결제 → 권한 활성화의 흐름이 자리 잡으면 본격 SaaS 형태가 갖춰져요. 사이드프로젝트 12주 로드맵의 후반부 흐름이 같은 방향입니다.

🚀 결제 통합 전 환경 세팅이 안정적이어야
Git·Node.js·VS Code 설치부터 첫 배포까지 — 복사 붙여넣기만으로 끝.
VibeStart에서 무료로 환경 세팅하기 →

 

🔗 관련 글

 

📑 참고 자료

위로 스크롤