From b96613c0679f2de48c7c3773759ab27882b67bfa Mon Sep 17 00:00:00 2001 From: merrycoral Date: Wed, 22 Oct 2025 14:56:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=99=B8=EB=B6=80/=EB=82=B4=EB=B6=80=20?= =?UTF-8?q?=EC=8B=9C=ED=80=80=EC=8A=A4=20=EC=84=A4=EA=B3=84=20=EC=9D=BC?= =?UTF-8?q?=EA=B4=80=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - API 엔드포인트 통일 - AI 추천: POST /api/events/{id}/ai-recommendations - 이미지 생성: POST /api/events/{id}/content-generation - 최종 승인: POST /api/events/{id}/publish - Kafka 이벤트명 구분 - EventDraftCreated: 목적 선택 시 발행 - EventCreated: 최종 승인 시 발행 - 수정 파일 - design/backend/sequence/outer/이벤트생성플로우.puml - design/backend/sequence/inner/event-목적선택.puml 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- design/backend/sequence/inner/event-목적선택.puml | 6 +++--- design/backend/sequence/outer/이벤트생성플로우.puml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/design/backend/sequence/inner/event-목적선택.puml b/design/backend/sequence/inner/event-목적선택.puml index f3efef1..756032d 100644 --- a/design/backend/sequence/inner/event-목적선택.puml +++ b/design/backend/sequence/inner/event-목적선택.puml @@ -36,9 +36,9 @@ activate Cache Cache --> Service: OK deactivate Cache -Service -> Kafka: publish(EventCreated,\n{eventDraftId, userId, objective, createdAt}) +Service -> Kafka: publish(EventDraftCreated,\n{eventDraftId, userId, objective, createdAt}) activate Kafka -note right: Kafka Event Topic:\nevent-topic +note right: Kafka Event Topic:\nevent-topic\n\nEvent: EventDraftCreated\n(목적 선택 시 발행)\n\n※ EventCreated는\n최종 승인 시 발행 Kafka --> Service: ACK deactivate Kafka @@ -46,6 +46,6 @@ Service --> Controller: EventDraftResponse\n{eventDraftId, objective, status} deactivate Service Controller --> Client: 200 OK\n{eventDraftId} -note over Controller, Kafka: 캐시 히트 시:\n1. Redis에서 조회 → 즉시 반환\n2. DB 조회 생략 +note over Controller, Kafka: 캐시 히트 시:\n1. Redis에서 조회 → 즉시 반환\n2. DB 조회 생략\n\n※ EventDraftCreated 이벤트는\nAnalytics Service가 선택적으로 구독\n(통계 초기화는 EventCreated 시) @enduml diff --git a/design/backend/sequence/outer/이벤트생성플로우.puml b/design/backend/sequence/outer/이벤트생성플로우.puml index 3aa500d..35e415f 100644 --- a/design/backend/sequence/outer/이벤트생성플로우.puml +++ b/design/backend/sequence/outer/이벤트생성플로우.puml @@ -35,7 +35,7 @@ FE --> User: AI 추천 화면으로 이동 == 2. AI 이벤트 추천 - 비동기 처리 (UFR-EVENT-030) == User -> FE: AI 추천 요청 -FE -> Gateway: POST /events/recommendations\n{eventDraftId, 목적, 업종, 지역} +FE -> Gateway: POST /api/events/{eventDraftId}/ai-recommendations\n{목적, 업종, 지역} Gateway -> Event: AI 추천 요청 전달 Event -> Kafka: Publish to ai-job-topic\n{jobId, eventDraftId, 목적, 업종, 지역} Event --> Gateway: Job 생성 완료\n{jobId, status: PENDING} @@ -93,7 +93,7 @@ FE --> User: 콘텐츠 생성 화면으로 이동 == 3. SNS 이미지 생성 - 비동기 처리 (UFR-CONT-010) == User -> FE: 이미지 생성 요청 -FE -> Gateway: POST /contents/images\n{eventDraftId, 이벤트정보} +FE -> Gateway: POST /api/events/{eventDraftId}/content-generation\n{이벤트정보} Gateway -> Event: 이미지 생성 요청 Event -> Kafka: Publish to image-job-topic\n{jobId, eventDraftId, 이벤트정보} Event --> Gateway: Job 생성 완료\n{jobId, status: PENDING} @@ -149,8 +149,8 @@ FE --> User: 배포 채널 선택 화면으로 이동 == 4. 최종 승인 및 다중 채널 배포 - 동기 처리 (UFR-EVENT-050) == User -> FE: 배포 채널 선택\n최종 승인 요청 -FE -> Gateway: POST /events/{eventDraftId}/approve\n{선택 채널 목록, 승인} -Gateway -> Event: 최종 승인 처리 +FE -> Gateway: POST /api/events/{eventDraftId}/publish\n{선택 채널 목록} +Gateway -> Event: 최종 승인 및 배포 처리 Event -> EventDB: 이벤트 상태 변경\nDRAFT → APPROVED EventDB --> Event: 상태 변경 완료 Event -> Kafka: Publish to event-topic\nEventCreated\n{eventId, 이벤트정보}