개발 slecs

QR 스캔으로 쿠폰 자동 발급하는 프로모션 랜딩 구현

목차

feat: 쿠폰 타입별 상세 페이지 분기 + QR 프로모션 랜딩 개선

QR 코드 기반 프로모션 랜딩 페이지 구현 작업임. QR을 스캔하면 특정 쿠폰을 자동 적용하거나 이벤트 페이지로 연결되는 구조임.

QR 프로모션 플로우

QR 스캔  랜딩 페이지 진입
   비로그인: 로그인 유도 (return URL 유지)
   로그인: 쿠폰 자동 발급 + 완료 페이지

쿠폰 타입별 상세 분기

쿠폰 타입 상세 페이지
금액 할인 금액 강조 레이아웃
비율 할인 % 강조 레이아웃
무료 상품 상품 이미지 포함
이벤트 참여 참여 폼 표시

중복 발급 방지

INSERT IGNORE INTO promo_participant
  (promo_sn, member_sn, issued_at)
VALUES
  (#{promoSn}, #{memberSn}, NOW())

promoKey는 UUID로 생성해서 URL 예측 불가능하게 만듦. 1인 1회 제한은 UNIQUE 제약으로 처리함. 만료일 지난 프로모션은 '종료됨' 화면으로 분기.

개발 원칙 정리

이 작업을 진행하면서 재확인한 원칙들:

작은 커밋: 변경 단위를 작게 유지해서 코드 리뷰와 롤백이 쉽게.

테스트 먼저: 변경 전 현재 동작을 파악하고, 변경 후 동일하게 동작하는지 확인.

문서 동기화: 코드가 바뀌면 관련 주석과 문서도 같이 업데이트.

원칙 이유
단일 책임 하나의 함수/클래스는 하나의 역할만
명시적 코드 영리한 코드보다 읽기 쉬운 코드
실패 우선 처리 happy path보다 에러 케이스 먼저 설계

댓글 0

첫 댓글 달아줘.