토스페이먼츠 결제 검증 로직까지 넣은 Next.js SaaS 스타터킷 만들어봤습니다
클라이언트 웹 제작 스튜디오를 운영하면서 결제 붙는 프로젝트를 할 때마다 매번 같은 부분에서 시간을 씁니다. 토스페이먼츠 결제창 연동 자체는 금방인데, "서버가 클라이언트 값을 믿으면 안 된다"는 걸 실제로 구현하는 부분(가격 재검증, Idempotency-Key로 중복 승인 방지)은 프로젝트마다 새로 짜고 있었습니다.
그래서 이번에 그 부분만 따로 떼어서 재사용 가능한 스타터킷으로 만들었습니다.
문제 상황
ShipFast, Makerkit 같은 해외 Next.js 스타터킷은 전부 Stripe 기준이라 한국 프로젝트에는 그대로 못 씁니다. 결제 부분만 매번 통째로 다시 짜야 했습니다.
한 것
- 결제 승인 요청이 오면 서버가 Firestore에서 그 플랜의 실제 가격을 다시 조회하고, 클라이언트가 보낸 금액과 다르면 거부하는 로직
- Idempotency-Key로 중복 승인 방지
- Firebase Auth(이메일/구글) + Firestore 보안 규칙 + 로그인 보호된 관리자 대시보드까지 묶어서 Next.js 16 보일러플레이트로 정리
지금 상태
방금 막 정리해서 올린 거라 실사용 후기나 지표는 아직 없습니다. 라이브 데모(FALLBACK 데이터로 렌더링, 실제 결제는 미연결)는 https://kr-saas-kit.vercel.app 에서 볼 수 있고, 코드는 Gumroad에 올려뒀습니다: https://jione3.gumroad.com/l/wnmnux
비슷한 문제로 결제 부분 매번 새로 짜고 계신 분 있으면 어떻게 처리하시는지 궁금합니다.