335 Commits

Author SHA1 Message Date
doyeon
003b3843cc Merge branch 'develop' into docker/participation
- 충돌 해결 완료
- settings.local.json 및 make-run-profile.md 병합

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 16:10:47 +09:00
hyeda2020
453f77ef01
Merge pull request #9 from ktds-dg0501/feature/user
UserPricipal 중복 필드 제거
2025-10-27 15:49:54 +09:00
wonho
375fcb390b UserPricipal 중복 필드 제거 2025-10-27 15:49:01 +09:00
hyeda2020
8323b795df
Merge pull request #8 from ktds-dg0501/feature/user
UserPricipal 충돌 부분 조치
2025-10-27 15:28:05 +09:00
hyeda2020
ce3e01008a
Merge branch 'develop' into feature/user 2025-10-27 15:27:57 +09:00
merrycoral
55e546e0b3 이벤트 API 매핑 문서 업데이트 (v1.1)
- 구현 현황: 7개 → 9개 API (64.3% 구현률)
- 신규 구현 API 추가:
  * POST /api/v1/events/{eventId}/images - 이미지 생성 요청
  * PUT /api/v1/events/{eventId}/images/{imageId}/select - 이미지 선택
- API 경로 버전 명시: /api/events → /api/v1/events
- Event Creation Flow 구현률: 12.5% → 37.5%
- 변경 이력 섹션 추가
2025-10-27 15:24:28 +09:00
wonho
ea807cf33e UserPricipal 충돌 부분 조치 2025-10-27 15:19:35 +09:00
Hyowon Yang
394c7a0029
Merge pull request #7 from ktds-dg0501/feature/analytics
Feature/analytics
2025-10-27 15:10:51 +09:00
Hyowon Yang
9b247ca058
Merge branch 'develop' into feature/analytics 2025-10-27 15:10:31 +09:00
Hyowon Yang
25ff21f684 analytics-백엔드테스트완료 2025-10-27 15:04:03 +09:00
doyeon
e70f121db5 배포 가이드 및 명령어 추가
- 배포 관련 slash 명령어 추가 (컨테이너 이미지 빌드, 실행, K8s 배포, CI/CD)
- 백엔드/프론트엔드 각각에 대한 배포 가이드 문서 추가
- 프롬프트 파일 추가 (think, design, develop)
- deployment 디렉토리 생성
- 기존 명령어 파일 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 15:03:36 +09:00
Hyowon Yang
180e5978a0 kafka 설정변경 2025-10-27 14:42:03 +09:00
doyeon
6465719b2c SecurityConfig와 application.yml 설정 업데이트
- SecurityConfig: CORS 설정 및 보안 필터 체인 구성
- application.yml: 환경 변수 플레이스홀더 방식으로 변경

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 14:06:02 +09:00
Hayoung Song
42f0665f5e
Merge pull request #6 from ktds-dg0501/feature/event
feature/event
2025-10-27 13:43:44 +09:00
Hayoung Song
6728b98878
Merge branch 'develop' into feature/event 2025-10-27 13:43:15 +09:00
kkkd-max
6a31e5204b
Merge pull request #3 from ktds-dg0501/feature/participation
Participation Service 백엔드 개발 완료
2025-10-27 13:41:22 +09:00
kkkd-max
c249d94dd1
Merge branch 'develop' into feature/participation 2025-10-27 13:41:13 +09:00
doyeon
fdeba361b4 커ë°gitignore적용 2025-10-27 13:40:18 +09:00
merrycoral
918e71cc35 API 경로를 /api/v1 접두사로 변경
- EventController: /api/events -> /api/v1/events
- JobController: /api/jobs -> /api/v1/jobs
- 모든 API 엔드포인트 테스트 완료

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 13:38:08 +09:00
kkkd-max
1ad7655bb6
Update .gitignore
.gradle/ 추가
2025-10-27 13:34:25 +09:00
doyeon
12584a96c4 API 경로에 /api/v1 prefix 추가
- ParticipationController: @RequestMapping("/api/v1") 추가
- WinnerController: @RequestMapping("/api/v1") 추가
- 모든 API 경로가 /api/v1/* 형태로 변경됨

변경된 API 경로:
- POST /api/v1/events/{eventId}/participate
- GET /api/v1/events/{eventId}/participants
- GET /api/v1/events/{eventId}/participants/{participantId}
- POST /api/v1/events/{eventId}/draw-winners
- GET /api/v1/events/{eventId}/winners

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 13:26:05 +09:00
doyeon
ec0b892757 channel 필드 스키마 오류 수정
- DDL_AUTO를 none으로 변경하여 Hibernate 자동 스키마 변경 중지
- channel 필드를 nullable = true로 임시 변경
- 기존 데이터 마이그레이션 후 nullable = false로 변경 예정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 13:22:25 +09:00
hyeda2020
446e4c613d
Merge pull request #4 from ktds-dg0501/feature/user
Feature/user
2025-10-27 13:15:57 +09:00
Cherry Kim
16b5a68ff7
Merge pull request #2 from ktds-dg0501/feature/content
Feature/content develop merge
2025-10-27 13:14:05 +09:00
doyeon
03bbe8b021 참여 채널(channel) 필드 추가
- Participant 엔티티에 channel 필드 추가 (기본값: SNS)
- ParticipationRequest/Response DTO에 channel 필드 추가
- ParticipantRegisteredEvent에 channel 필드 추가
- ParticipationService에서 channel 정보 전달
- 참여 경로 분석 및 마케팅 효과 측정 가능

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 13:05:42 +09:00
cherry2250
c82dbc6572 Content Service Kafka 의존성 제거
- build.gradle에서 spring-kafka 의존성 삭제
- application*.yml에서 Kafka 설정 제거
- content-service는 Redis에 데이터를 저장하는 역할만 수행
- 서비스 간 비동기 통신이 필요 없어 Kafka 불필요

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:50:19 +09:00
doyeon
f82e69ea0d Participation Service 테스트 수정 완료
- ParticipantId 생성 로직 수정 (prt_yyyyMMdd_xxx 형식)
- 보너스 응모권 계산 로직 수정 (매장 방문 시 5개)
- Mock 설정 추가 (ParticipationServiceUnitTest)
- Kafka 통합 테스트 Embedded Kafka로 전환 (일시적으로 비활성화)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:42:43 +09:00
Hyowon Yang
4197c72af5 Merge branch 'main' of https://github.com/ktds-dg0501/kt-event-marketing into feature/analytics 2025-10-27 11:25:08 +09:00
Hyowon Yang
97a3c41fff analytics 서비스 api개발 2025-10-27 11:23:56 +09:00
cherry2250
f7159465ac Content Service API 경로 표준화
- API 경로를 /content에서 /api/v1/content로 변경
- REST API 버저닝 패턴 적용 (/api/v1/서비스명)
- ContentController.java의 @RequestMapping 수정
- OpenAPI 명세서 경로 업데이트 (7개 엔드포인트)
- Javadoc 주석의 API 경로 정보 업데이트

영향 범위: content-service만 수정, common 모듈 변경 없음

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:16:54 +09:00
merrycoral
45f370a944 프로젝트 구성 개선 및 Kafka 인프라 추가
## 변경사항

### 보안 강화
- gradle.properties를 .gitignore에 추가 (로컬 환경 설정 제외)

### 공통 모듈
- ErrorCode에 Legacy 호환용 에러 코드 추가 (NOT_FOUND, INVALID_INPUT_VALUE)

### Event Service
- hibernate-types 라이브러리 제거 (Hibernate 6 네이티브 지원으로 대체)

### Kafka 인프라 추가
- Kafka 메시지 DTO 3개 추가
  * AIEventGenerationJobMessage: AI 이벤트 생성 작업 메시지
  * EventCreatedMessage: 이벤트 생성 완료 메시지
  * ImageGenerationJobMessage: 이미지 생성 작업 메시지
- Kafka Producer/Consumer 3개 추가
  * EventKafkaProducer: 이벤트 메시지 발행
  * AIJobKafkaConsumer: AI 작업 메시지 소비
  * ImageJobKafkaConsumer: 이미지 작업 메시지 소비

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:16:50 +09:00
doyeon
9039424c40 WinnerController Swagger 문서화 추가 및 이벤트/참여자 예외 처리 개선
- WinnerController에 Swagger 어노테이션 추가 (Operation, Parameter, ParameterObject)
- 당첨자 목록 조회 API 기본 정렬 설정 (winnerRank ASC, size=20)
- ParticipationService에서 이벤트/참여자 구분 로직 개선
  - 이벤트 없음: EventNotFoundException 발생
  - 참여자 없음: ParticipantNotFoundException 발생
- EventCacheService 제거 (Redis 기반 검증에서 DB 기반 검증으로 변경)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:15:04 +09:00
Hyowon Yang
a34037cdd1 TimelineData 샘플 데이터 생성 기능 추가
- 각 이벤트당 30일 치 daily 데이터 생성
- 참여자, 조회수, 참여행동, 전환수, 누적 참여자 수 포함
- 총 90건의 시간대별 데이터 생성 (3 이벤트 × 30일)
2025-10-27 11:14:54 +09:00
박세원
f0699b2e2b add ai-service 2025-10-27 11:09:12 +09:00
merrycoral
4d180c2a9f Event Service 개발 환경 구축 및 타입 시스템 개선
주요 변경사항:
- UserPrincipal 및 JWT 인증 시스템을 Long에서 UUID로 변경
- Event 엔티티 JPA 설정 최적화 (Lazy loading 및 fetch 전략 개선)
- 개발 환경용 DevAuthenticationFilter 추가 (User Service 구현 전까지 임시 사용)
- EventServiceApplication 문법 오류 수정
- Hibernate multiple bags 문제 해결 (List를 Set으로 변경)

기술 세부사항:
- common/UserPrincipal: Long → UUID 타입 변경, @Builder 어노테이션 추가
- common/JwtTokenProvider: UUID 지원 추가
- event-service/Event: Set 컬렉션 사용, Lazy loading 최적화
- event-service/EventService: Hibernate.initialize()로 컬렉션 초기화
- event-service/EventRepository: fetch join 쿼리 최적화
- event-service/SecurityConfig: DevAuthenticationFilter 통합

테스트 결과:
- 모든 Event CRUD API 정상 작동 확인
- PostgreSQL 연결 정상
- 비즈니스 로직 검증 정상 작동

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:04:03 +09:00
Hyowon Yang
884c964af6 Kafka Consumer 자동 시작 활성화 (autoStartup=true) 2025-10-27 10:59:31 +09:00
wonho
1168ba2d1d User Service api prefix 수정(api/v1/users/*) 2025-10-27 10:46:57 +09:00
Hyowon Yang
704a4ae4d1 Kafka 활성화 설정 추가 (KAFKA_ENABLED=true) 2025-10-27 10:43:51 +09:00
Hyowon Yang
7fa1f8cc89 .gitignore에 Gradle 추가 및 빌드 파일 제거 2025-10-27 10:21:43 +09:00
Hyowon Yang
0ed0309e66 kafka 환경변수설정 2025-10-27 10:13:06 +09:00
cherry2250
f838c689ed Content Service 기능 개발 완료
- Redis 연동 구현 (패스워드 인증 지원)
  - RedisConfig에 password 설정 추가
  - RedisGateway에 ContentReader/Writer 인터페이스 구현
  - application-dev.yml 프로파일 추가

- 이미지 삭제 기능 구현
  - DeleteImageUseCase 인터페이스 추가
  - DeleteImageService 구현
  - ContentWriter.deleteImageById() 메서드 추가
  - RedisGateway 및 MockRedisGateway 삭제 로직 구현

- 이미지 필터링 기능 추가
  - GetImageListUseCase에 style, platform 파라미터 추가
  - GetImageListService에 Stream filter 로직 구현
  - ContentController에서 String → Enum 변환 처리

- Mock 서비스 dev 프로파일 지원
  - MockGenerateImagesService dev 프로파일 추가
  - MockRegenerateImageService dev 프로파일 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 09:45:21 +09:00
Hyowon Yang
f3901c8ef8 kafka 설정 변경
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 16:37:05 +09:00
sunmingLee
828a76b630 channel_status 테이블 시간 역전 현상 수정
- convertToChannelStatus 메서드에 completedAt 파라미터 추가
- completedAt이 항상 createdAt 이후 시간으로 설정되도록 수정
- LocalDateTime.now() 대신 메서드 파라미터로 전달된 completedAt 사용

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 16:27:03 +09:00
Hyowon Yang
7735c8472b totalViews 필드 추가 및 배포완료 이벤트 개선
변경 사항:
1. EventStats에 totalViews 필드 추가 (모든 채널 노출 수 합계)
2. DistributionCompletedEvent에 expectedViews 필드 추가
3. DistributionCompletedConsumer 개선:
   - ChannelStats.impressions에 expectedViews 저장
   - updateTotalViews() 메서드로 전체 노출 수 집계
4. SampleDataLoader에 채널별 예상 노출 수 설정:
   - 이벤트1: 총 20,000 (우리동네TV 5K, 지니TV 10K, 링고비즈 3K, SNS 2K)
   - 이벤트2: 총 14,000
   - 이벤트3: 총 6,000

설계 다이어그램과 일치:
- 채널별 예상 노출 수 저장
- 총 노출 수 실시간 집계
- 멱등성 및 캐시 무효화 유지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 16:08:32 +09:00
Hyowon Yang
7b3ca40e22 샘플 데이터 발행량 축소 (타임아웃 방지)
- ParticipantRegistered 이벤트: 27,610건 → 180건
- 이벤트별 참여자 수:
  - 이벤트1: 15,420명 → 100명
  - 이벤트2: 8,950명 → 50명
  - 이벤트3: 3,240명 → 30명
- Kafka 발행 지연 로직 제거 (불필요)
- MVP 테스트에 충분한 데이터 유지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 15:27:30 +09:00
wonho
34df9c3b8f user-service api 초안 개발 2025-10-24 15:19:04 +09:00
Hyowon Yang
4c8165bd20 샘플 토픽명으로 변경 (sample. 접두사 추가)
- 다른 서비스 개발자들의 운영 토픽과 충돌 방지
- MVP용 샘플 토픽: sample.event.created, sample.participant.registered, sample.distribution.completed
- KafkaTopicConfig, SampleDataLoader, 3개 Consumer 모두 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 15:15:30 +09:00
Hyowon Yang
31fb1c541b kafka활성화
🚀 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 14:59:24 +09:00
Hyowon Yang
21b8fe5efb 배치-redis,db조회수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 14:26:11 +09:00
sunmingLee
074be336d6 distribution-service Swagger UI 설정 추가 및 API 문서화
- OpenApiConfig 추가: Swagger UI 기본 설정 및 API 정보 정의
- application.yml: Springdoc 설정 추가 및 웹 로깅 레벨 강화
- DistributionController: Swagger 어노테이션 추가 (@Tag, @Operation, @ApiResponses)
- API path 주석 수정: /api prefix 제거하여 실제 경로와 일치
2025-10-24 14:13:23 +09:00