작업 목록
주요 작업소프트웨어마케팅사업커머스

쑥쑥

주문 · 결제 · 발주 · 부분환불까지, 10분마다 스스로 대조한다

인스타그램 · 유튜브 · 틱톡 같은 SNS의 팔로워 · 좋아요 · 조회수를 파는 셀프 주문 웹. 손님이 주문하고 카드로 결제하면 원청에 자동으로 발주하고, 덜 채워진 만큼은 자동으로 환불한다. 10월에 외부 호스팅에서 자체 서버로 옮겨, 지금은 초대해와 같은 서버에서 돈다.

SNS 마케팅 대행 플랫폼 · 쑥쑥.com

기간
운영 중
역할
기획 · 아키텍처 · 백엔드 · 프론트엔드 · 결제 · 서버 이전 · 운영
분류
소프트웨어, 마케팅, 사업, 커머스
등급
주요 작업 — 구조와 판단이 남아 있는 것
실제 화면 · 3장

돌아가고 있는 상태입니다.

만들었다는 말 대신 켜져 있는 화면을 둡니다. 데모용으로 꾸민 것이 아니라 직접 띄워 찍은 것이고, 비어 있는 값은 비어 있는 채로 두었습니다.

쑥쑥 화면
ssook-20261008-home.jpg원본 ↗
쑥쑥 화면
ssook-20261008-services.jpg원본 ↗
쑥쑥 화면
ssook-20261008-order.jpg원본 ↗
01

무슨 문제였나

SNS 성장 서비스는 원청마다 API 규격과 상품 코드가 제각각이다. 한 곳에 화면까지 묶어 두면 원청을 바꾸는 순간 사이트를 다시 만들어야 하고, 결제 · 발주 · 환불이 어긋나면 손님 돈이 샌다.

02

어떻게 풀었나

원청 API를 어댑터 계층 뒤로 넣어 상품 · 단가 · 주문 상태를 내부 표준으로 맞췄다 — 지금 원청은 한 곳이지만, 관리자 화면에서 원청을 바꿔도 손님 화면은 그대로다. 결제는 서버가 금액을 확정하고, 10분마다 결제 · 주문을 대조하는 배치가 돌며, 덜 처리된 몫은 카드 부분환불로 돌려준다.

구조

  1. 01손님 화면 — 플랫폼 탭 → 분류 → 주문 · 주문내역 · 알림
  2. 02관리자 — 특가 · 배너 · 원청 바꾸기 · 패키지
  3. 03주문 라우터 + 원청 어댑터
  4. 04결제 대조 배치 (10분마다) · 카드 부분환불
  5. 05자체 서버 — Docker · Caddy · 서버 안 PostgreSQL, 저장소에 올리면 2분 안에 자동 배포

어려웠던 것

  • 원청마다 다른 상품 코드 · 상태값을 내부 표준으로 맞추기
  • 외부 호스팅 · 외부 DB에서 자체 서버로 옮기면서 결제 · 환불의 치명 문제 7건을 찾아 고쳤다
  • 간편결제는 심사에서 반려돼 카드 결제만으로 열었다
03

무엇을 만들었나

  • 한국 쇼핑앱 «혜택» 화면처럼 — 검색 → 플랫폼 탭 → 큰 배너 → 오늘의 특가 남은 시간 → 인기 상품
  • 가입 · 로그인(네이버 · 이메일) · 주문 · 주문내역 · 이용방법 · FAQ · 공지 · 약관 · 환불정책 · 개인정보처리방침
  • 통신판매업 신고번호 등 법정 표시사항을 하단에 표기
  • 비밀번호를 받지 않는다 — 링크만으로 처리
  • 덜 처리된 몫은 자동 부분환불 — 안 된 건 안 됐다고 하고 돌려준다
  • 관리자 특가 · 배너 · 알림, 원청 바꾸기
  • 탈퇴하면 개인정보를 익명화

쓴 기술

Next.jsTypeScriptPrismaPostgreSQL포트원 V2 + KCP (카드)DockerCaddy원청 API 어댑터
04

무엇이 남았나

  • 웹 라이브 운영 중 — 자체 서버(Docker · 자체 PostgreSQL)로 이전 완료
  • 결제 · 발주 · 부분환불 · 10분 대조까지 자동
  • 원청 1곳 연결, 어댑터 구조라 원청을 바꿔도 화면은 그대로

알게 된 것

외부 공급자에 종속되지 않으려면 처음부터 어댑터 계층을 두어야 한다. 그리고 돈이 오가는 서비스는 기능보다 대조가 먼저다 — 결제와 주문을 주기적으로 맞춰 보는 배치가 있어야 새는 돈을 사람이 아니라 시스템이 찾는다.

다음 프로젝트SellForge — AI 셀러 자동화