실화 사례: 배달 플랫폼이 신규 가입자에게 15,000원 쿠폰 지급 → 탈퇴 후 재가입 반복으로 최소주문 16,000원 매장에서 치킨 1,000원 사태. 해킹이 아니라 "재가입 시 신규 쿠폰 재지급 여부" 정책 공백이 원인
두 번 만들기: 한 줄 프롬프트("주문할 때 쿠폰 코드 입력하면 할인") vs 실서비스 수준 프롬프트 비교 시연
쿠폰의 기술 정의: 정액 할인(5,000원)과 정률 할인(10%) 두 종류, 정률에는 최대 할인 금액 안전장치 필수
서버 검증 원칙: 할인 금액은 화면(브라우저 조작 가능)이 아니라 반드시 서버에서 재계산 — 결제가 있는 모든 기능의 원칙
7가지 결정: 한 줄 프롬프트로도 동작은 하지만 돈이 새는 빈틈이 남음
03기술적 맥락
정률 할인의 함정: 100만 원 주문에 10% 쿠폰이면 10만 원 할인 → "최대 할인 금액" 한도 없이는 마진 붕괴
동시성(트랜잭션) 문제: 마지막 1장 수량한정 쿠폰을 두 사람이 동시 클릭 시 둘 다 "1장 남음" 확인 후 둘 다 발급 → 100장 한정인데 102장 발급 사고. 해결책은 DB가 수량을 잠그는 트랜잭션. 레일즈 등 프레임워크에 내장되어 있으나 "동시 요청에도 수량 정확히"를 프롬프트로 요구해야 챙겨짐
풀스택 프레임워크의 이점: 루비 온 레일즈는 서버 검증·트랜잭션이 기본 내장. SQLite 3로 외부 DB(슈퍼베이스 등)·과금 없이 코드 레벨 완결, 파일 복사만으로 백업. 프론트 기반 서비스는 서버 검증 로직을 빠뜨리기 쉬워 프롬프트 보강이 더 필요
04전략적 의미
정책 공백 = 운영 비용: 환불 시 쿠폰 처리 등을 코드로 안 정하면 CS가 수동 처리 → 결정을 미룬 비용이 운영에서 나감
기능은 서로 연결: 회원 탈퇴를 소프트 딜리트로 설계하고 재가입 정책을 정해두면 쿠폰의 부정사용(치킨 사태)을 막아줌. 각각 완성해도 접점의 빈틈으로 돈이 샘
AI를 기획 파트너로: "정하지 않은 정책은 먼저 질문해 줘" 한 줄이 잠재 손실을 하나씩 막아줌. 돈이 걸린 기능일수록 질문의 가치가 큼
05핵심 워크플로우 / 7가지 결정
#
결정 축
선택지·핵심
딥링크
1
발급 방식
가입 시 자동 / 공개 코드 / 관리자 지정 — 목적(신규유치·홍보·보상)에 따라 설계가 달라짐