Merge origin/develop into feature/distribution
- develop 브랜치의 최신 변경사항 병합 - .gradle 캐시 파일 충돌 해결 (삭제) - ParticipationServiceApplication.run.xml 충돌 해결 (develop 버전 선택) - make-run-profile.md 충돌 해결 (develop 버전 선택) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -226,7 +226,7 @@ paths:
|
||||
- `tags`: 1개 이상의 태그 지정
|
||||
- `summary`: 한글로 간결하게 (10자 이내 권장)
|
||||
- `description`: 마크다운 형식의 상세 설명
|
||||
- 유저스토리 코드 명시
|
||||
- 유저스토리 코드 명시
|
||||
- 주요 기능 bullet points
|
||||
- 복잡한 경우 처리 흐름 순서 작성
|
||||
- 보안 관련 내용 (해당 시)
|
||||
|
||||
@@ -23,7 +23,7 @@ info:
|
||||
- Circuit Breaker with fallback to cached data
|
||||
|
||||
**Caching Strategy:**
|
||||
- Redis cache with 5-minute TTL
|
||||
- Redis cache with 1-hour TTL (3600 seconds)
|
||||
- Cache-Aside pattern for dashboard data
|
||||
- Real-time updates via Kafka event subscription
|
||||
version: 1.0.0
|
||||
|
||||
@@ -61,7 +61,7 @@ tags:
|
||||
description: 이미지 재생성 및 삭제 (UFR-CONT-020)
|
||||
|
||||
paths:
|
||||
/content/images/generate:
|
||||
/api/v1/content/images/generate:
|
||||
post:
|
||||
tags:
|
||||
- Job Status
|
||||
@@ -71,7 +71,7 @@ paths:
|
||||
|
||||
## 처리 방식
|
||||
- **비동기 처리**: Kafka `image-generation-job` 토픽에 Job 발행
|
||||
- **폴링 조회**: jobId로 생성 상태 조회 (GET /content/images/jobs/{jobId})
|
||||
- **폴링 조회**: jobId로 생성 상태 조회 (GET /api/v1/content/images/jobs/{jobId})
|
||||
- **캐싱**: 동일한 eventDraftId 재요청 시 캐시 반환 (TTL 7일)
|
||||
|
||||
## 생성 스타일
|
||||
@@ -182,7 +182,7 @@ paths:
|
||||
security:
|
||||
- BearerAuth: []
|
||||
|
||||
/content/images/jobs/{jobId}:
|
||||
/api/v1/content/images/jobs/{jobId}:
|
||||
get:
|
||||
tags:
|
||||
- Job Status
|
||||
@@ -339,7 +339,7 @@ paths:
|
||||
security:
|
||||
- BearerAuth: []
|
||||
|
||||
/content/events/{eventDraftId}:
|
||||
/api/v1/content/events/{eventDraftId}:
|
||||
get:
|
||||
tags:
|
||||
- Content Management
|
||||
@@ -427,7 +427,7 @@ paths:
|
||||
security:
|
||||
- BearerAuth: []
|
||||
|
||||
/content/events/{eventDraftId}/images:
|
||||
/api/v1/content/events/{eventDraftId}/images:
|
||||
get:
|
||||
tags:
|
||||
- Content Management
|
||||
@@ -506,7 +506,7 @@ paths:
|
||||
security:
|
||||
- BearerAuth: []
|
||||
|
||||
/content/images/{imageId}:
|
||||
/api/v1/content/images/{imageId}:
|
||||
get:
|
||||
tags:
|
||||
- Image Management
|
||||
@@ -590,7 +590,7 @@ paths:
|
||||
security:
|
||||
- BearerAuth: []
|
||||
|
||||
/content/images/{imageId}/regenerate:
|
||||
/api/v1/content/images/{imageId}/regenerate:
|
||||
post:
|
||||
tags:
|
||||
- Image Management
|
||||
|
||||
@@ -51,7 +51,7 @@ paths:
|
||||
- JWT 토큰 자동 발급
|
||||
|
||||
**처리 흐름:**
|
||||
1. 중복 사용자 확인 (전화번호 기반)
|
||||
1. 중복 사용자 확인 (이메일/전화번호 기반)
|
||||
2. 비밀번호 해싱 (bcrypt)
|
||||
3. User/Store 데이터베이스 트랜잭션 처리
|
||||
4. JWT 토큰 생성 및 세션 저장 (Redis)
|
||||
@@ -114,7 +114,7 @@ paths:
|
||||
summary: 중복 사용자
|
||||
value:
|
||||
code: USER_001
|
||||
message: 이미 가입된 전화번호입니다
|
||||
message: 이미 가입된 이메일입니다
|
||||
timestamp: 2025-10-22T10:30:00Z
|
||||
validationError:
|
||||
summary: 입력 검증 오류
|
||||
@@ -140,7 +140,7 @@ paths:
|
||||
**유저스토리:** UFR-USER-020
|
||||
|
||||
**주요 기능:**
|
||||
- 전화번호/비밀번호 인증
|
||||
- 이메일/비밀번호 인증
|
||||
- JWT 토큰 발급
|
||||
- Redis 세션 저장
|
||||
- 최종 로그인 시각 업데이트 (비동기)
|
||||
@@ -162,7 +162,7 @@ paths:
|
||||
default:
|
||||
summary: 로그인 요청 예시
|
||||
value:
|
||||
phoneNumber: "01012345678"
|
||||
email: hong@example.com
|
||||
password: "Password123!"
|
||||
responses:
|
||||
'200':
|
||||
@@ -191,7 +191,7 @@ paths:
|
||||
summary: 인증 실패
|
||||
value:
|
||||
code: AUTH_001
|
||||
message: 전화번호 또는 비밀번호를 확인해주세요
|
||||
message: 이메일 또는 비밀번호를 확인해주세요
|
||||
timestamp: 2025-10-22T10:30:00Z
|
||||
|
||||
/users/logout:
|
||||
@@ -679,14 +679,15 @@ components:
|
||||
LoginRequest:
|
||||
type: object
|
||||
required:
|
||||
- phoneNumber
|
||||
- email
|
||||
- password
|
||||
properties:
|
||||
phoneNumber:
|
||||
email:
|
||||
type: string
|
||||
pattern: '^010\d{8}$'
|
||||
description: 휴대폰 번호
|
||||
example: "01012345678"
|
||||
format: email
|
||||
maxLength: 100
|
||||
description: 이메일 주소
|
||||
example: hong@example.com
|
||||
password:
|
||||
type: string
|
||||
minLength: 8
|
||||
@@ -977,7 +978,7 @@ components:
|
||||
message:
|
||||
type: string
|
||||
description: 에러 메시지
|
||||
example: 이미 가입된 전화번호입니다
|
||||
example: 이미 가입된 이메일입니다
|
||||
timestamp:
|
||||
type: string
|
||||
format: date-time
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
- 대시보드 데이터 조회 (Redis 캐싱)
|
||||
- Kafka Event 구독 (EventCreated, ParticipantRegistered, DistributionCompleted)
|
||||
- 외부 채널 통계 수집 (Circuit Breaker + Fallback)
|
||||
- ROI 계산 및 성과 분석
|
||||
- ROI 계산 및 성과 분석4
|
||||
|
||||
#### Async Services (비동기 처리)
|
||||
1. **AI Service**: AI 기반 이벤트 추천
|
||||
|
||||
Reference in New Issue
Block a user