테마
Story: Lock 타임아웃 & 알림 처리
메타
| 항목 | 값 |
|---|---|
| Story ID | E-05-S-09 |
| Epic | E-05 연동 자동화 |
| 상태 | ready-for-dev |
| 우선순위 | P1 |
| 규모 | S |
| 담당 개발자 | 하록 (BE), 수민 (FE) |
사용자 스토리
As a 셀러,
I want Lock 시간이 초과되면 적절한 안내를 받고 싶다,
So that 당황하지 않고 다시 시도할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 타임아웃 감지
| 항목 | 내용 |
|---|---|
| Given | Lock 보유 중일 때 |
| When | 2분이 경과하면 |
| Then | 시스템이 타임아웃을 감지한다 |
AC-02: 셀러 화면 안내
| 항목 | 내용 |
|---|---|
| Given | 타임아웃이 발생했을 때 |
| When | 셀러 화면에 알림이 오면 |
| Then | "시간 초과. 다시 시도해주세요" 메시지와 재시도 버튼이 표시된다 |
AC-03: Lock 자동 해제
| 항목 | 내용 |
|---|---|
| Given | 타임아웃이 발생했을 때 |
| When | Lock이 해제되면 |
| Then | 대기열의 다음 셀러가 자동으로 Lock을 획득한다 |
AC-04: 어드민 알림
| 항목 | 내용 |
|---|---|
| Given | 타임아웃 발생률이 높을 때 (>20%) |
| When | 모니터링 시스템에서 감지하면 |
| Then | 운영팀에 Slack 알림이 발송된다 |
태스크 분해
Task 1: BE - 타임아웃 처리 AC-01, AC-03
- [ ] 1.1: Lock 만료 체크 스케줄러 (1초 간격)
- [ ] 1.2: 만료 시 Lock 해제 + 세션 상태 변경
- [ ] 1.3: 대기열 자동 진행
Task 2: BE - WebSocket 알림 AC-02
- [ ] 2.1: LOCK_TIMEOUT 이벤트 정의
- [ ] 2.2: 타임아웃 시 클라이언트에 푸시
Task 3: FE - 타임아웃 UI AC-02
- [ ] 3.1: 타임아웃 모달/토스트 컴포넌트
- [ ] 3.2: 재시도 버튼 기능
- [ ] 3.3: 남은 시간 카운트다운 UI
Task 4: 모니터링 AC-04
- [ ] 4.1: 타임아웃 발생률 메트릭 수집
- [ ] 4.2: 20% 초과 시 Slack 알림
타임아웃 화면
┌─────────────────────────────────────────────────────┐
│ ⏱️ 시간이 초과되었어요 │
│ │
│ 2분 내에 인증을 완료하지 못했어요. │
│ 다시 시도하면 처음부터 진행됩니다. │
│ │
│ 💡 팁: 쿠팡에서 "인증번호 발송"을 빠르게 │
│ 클릭해주세요. │
│ │
│ [다시 시도하기] │
└─────────────────────────────────────────────────────┘Dev Notes
알림 조건
| 지표 | 조건 | 알림 채널 |
|---|---|---|
| 타임아웃 발생률 | > 20% (최근 1시간) | Slack |
| 연속 타임아웃 | 3회 연속 | Slack + 어드민 |
의존성
- E-05-S-01: Exclusive Lock
- E-05-S-05: WebSocket
생성일: 2026-01-20
