안홍준
λ 470 NM · EVENT / AI
케이스 08 / 09English3D로 보기

문제

3일 행사 동안 부스 방문객이 QR로 접속해 문자 인증 → 안내 → OX퀴즈 → 설문 → 경품 추첨 → 당첨 문자 → 스태프 수령 확인까지 한 번에 진행해야 했습니다. 실제 인파 속에서.

결정

  1. 경품 추첨 함수를 advisory lock + 행 잠금 폴백 + 수량 CHECK 제약 3중으로 — 현장 동시 접속에서도 초과 지급 0.
  2. 스태프가 눈으로 대조하는 코드와 URL 식별 토큰을 분리했습니다.
  3. 추첨 엔진 교체·쿠폰 같은 큰 변경을 데이터 게이트(값이 비면 구 동작으로 폴백)를 두고 미리 프로덕션에 올렸습니다. 추첨은 잔량 비례 가중 무작위, 전량 소진 시 "당일 이벤트 종료".

부서진 곳과 고친 방법

  1. 클라이언트 확정 반영분이 프로덕션에 없었는데 코드·커밋·배포 로그는 정상으로 보였습니다. 다른 세션의 main 배포가 이 브랜치 산출물을 덮은 것을 실측으로 찾아 머지·재배포하고 배포 가드를 걸었습니다.
  2. iOS에서만 판정 팝업 뒤 화면이 옆으로 밀렸습니다. overflow-x:hidden이 숨은 가로 스크롤 컨테이너가 되고 포커스가 화면을 끌고 간 것. overflow-x:clip으로 해결했습니다.

결과

  • 참여 961명 · 완주 960명 · 경품 수령 922명
  • 설문 응답 961건(100%) · 만족도 4.79/5 · 주제 이해도 4.78/5
  • 문자 발송 오류 0, 경품 3일간 전량 소진
  • 동시성 시험 200 요청 — 재고 초과 0 · 중복 지급 0 · 멱등 12/12
  • 참가자 플로우 8단계 + 수령 화면
역할1인, 약 2개월 이상
기간약 2개월 이상
상태행사 종료
스택Next.js 16 · React 19 · Supabase · framer-motion · SENS