Outer sequence 다이어그램 수정
1. 고객참여플로우 - 재추첨 버튼 UI 요소 제거 2. 사용자인증플로우 - 로그인 input 전화번호 → 이메일/비밀번호로 변경 - 회원가입 시 이메일 중복검사 로직 추가 - 전화번호 중복검사도 유지 (이메일 검사 후 수행) 3. 성과분석플로우 - Redis Cache TTL 5분 → 1시간으로 변경 - 배치 수집 주기 10분 → 5분으로 변경 4. 이벤트생성플로우 - 회원/매장정보 조회를 FE에서 직접 수행 후 전달 - 이벤트 초안 데이터 Redis 저장 (draft:event 키) - 최종 승인 시에만 Event DB에 영구 저장 - AI Service 과거 이벤트 데이터 조회 로직 삭제 - 이미지 생성 요청 FE → Content Service 다이렉트 호출 - Job 상태 확인도 Content Service로 직접 조회 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -27,16 +27,27 @@ activate UserService
|
||||
|
||||
UserService -> UserService: 서버 측 유효성 검증\n(이름 2자 이상, 전화번호 형식 등)
|
||||
|
||||
UserService -> UserDB: 전화번호로 사용자 조회\n(중복 가입 확인)
|
||||
UserService -> UserDB: 이메일로 사용자 조회\n(중복 가입 확인)
|
||||
activate UserDB
|
||||
UserDB --> UserService: 기존 사용자 확인 결과
|
||||
deactivate UserDB
|
||||
|
||||
alt 중복 사용자 존재
|
||||
UserService --> Gateway: 400 Bad Request\n(이미 등록된 전화번호)
|
||||
alt 이메일 중복 존재
|
||||
UserService --> Gateway: 400 Bad Request\n(이미 등록된 이메일)
|
||||
Gateway --> Frontend: 400 Bad Request
|
||||
Frontend --> User: "이미 가입된 전화번호입니다"
|
||||
else 신규 사용자
|
||||
Frontend --> User: "이미 가입된 이메일입니다"
|
||||
else 이메일 신규
|
||||
|
||||
UserService -> UserDB: 전화번호로 사용자 조회\n(중복 가입 확인)
|
||||
activate UserDB
|
||||
UserDB --> UserService: 기존 사용자 확인 결과
|
||||
deactivate UserDB
|
||||
|
||||
alt 전화번호 중복 존재
|
||||
UserService --> Gateway: 400 Bad Request\n(이미 등록된 전화번호)
|
||||
Gateway --> Frontend: 400 Bad Request
|
||||
Frontend --> User: "이미 가입된 전화번호입니다"
|
||||
else 신규 사용자
|
||||
|
||||
UserService -> UserService: 비밀번호 해싱\n(bcrypt, Cost Factor 10)
|
||||
|
||||
@@ -68,6 +79,7 @@ else 신규 사용자
|
||||
|
||||
Frontend -> Gateway: 대시보드 화면으로 이동
|
||||
deactivate Frontend
|
||||
end
|
||||
end
|
||||
|
||||
== UFR-USER-020: 로그인 플로우 ==
|
||||
@@ -75,19 +87,19 @@ end
|
||||
User -> Frontend: 로그인 화면 접근
|
||||
activate Frontend
|
||||
|
||||
User -> Frontend: 전화번호, 비밀번호 입력
|
||||
User -> Frontend: 이메일, 비밀번호 입력
|
||||
|
||||
Frontend -> Frontend: 클라이언트 측 유효성 검증\n(필수 필드 확인)
|
||||
Frontend -> Frontend: 클라이언트 측 유효성 검증\n(필수 필드 확인, 이메일 형식)
|
||||
|
||||
Frontend -> Gateway: POST /api/users/login\n(전화번호, 비밀번호)
|
||||
Frontend -> Gateway: POST /api/users/login\n(이메일, 비밀번호)
|
||||
activate Gateway
|
||||
|
||||
Gateway -> Gateway: Request 검증
|
||||
|
||||
Gateway -> UserService: POST /api/users/login\n(전화번호, 비밀번호)
|
||||
Gateway -> UserService: POST /api/users/login\n(이메일, 비밀번호)
|
||||
activate UserService
|
||||
|
||||
UserService -> UserDB: 전화번호로 사용자 조회\n(로그인 인증용)
|
||||
UserService -> UserDB: 이메일로 사용자 조회\n(로그인 인증용)
|
||||
activate UserDB
|
||||
UserDB --> UserService: 사용자 정보\n(user_id, password_hash, role)
|
||||
deactivate UserDB
|
||||
@@ -95,7 +107,7 @@ deactivate UserDB
|
||||
alt 사용자 없음
|
||||
UserService --> Gateway: 401 Unauthorized\n(인증 실패)
|
||||
Gateway --> Frontend: 401 Unauthorized
|
||||
Frontend --> User: "전화번호 또는 비밀번호를\n확인해주세요"
|
||||
Frontend --> User: "이메일 또는 비밀번호를\n확인해주세요"
|
||||
else 사용자 존재
|
||||
|
||||
UserService -> UserService: 비밀번호 검증\n(bcrypt compare)
|
||||
@@ -103,7 +115,7 @@ else 사용자 존재
|
||||
alt 비밀번호 불일치
|
||||
UserService --> Gateway: 401 Unauthorized\n(인증 실패)
|
||||
Gateway --> Frontend: 401 Unauthorized
|
||||
Frontend --> User: "전화번호 또는 비밀번호를\n확인해주세요"
|
||||
Frontend --> User: "이메일 또는 비밀번호를\n확인해주세요"
|
||||
else 비밀번호 일치
|
||||
|
||||
UserService -> UserService: JWT 토큰 생성\n(user_id, role=OWNER,\nexp=7일)
|
||||
|
||||
Reference in New Issue
Block a user