26 Commits

Author SHA1 Message Date
sunmingLee
4bc7f87663 Merge branch 'develop' of https://github.com/ktds-dg0501/kt-event-marketing into feature/distribution 2025-10-30 18:38:14 +09:00
sunmingLee
ae8f540d46 네이버 블로그 ìž 배포 개발(ì이미지 없음) 2025-10-30 18:37:31 +09:00
Hyowon Yang
aa8db3bf2f
Merge pull request #27 from ktds-dg0501/feature/analytics
Feature/analytics
2025-10-30 09:40:29 +09:00
merrycoral
336d811f55 content-service 통합 테스트 완료 및 보고서 작성
- content-service HTTP 통신 테스트 완료 (9개 시나리오 성공)
- Job 관리 메커니즘 검증 (Redis 기반)
- EventId 기반 콘텐츠 조회 및 필터링 테스트
- 이미지 재생성 기능 검증
- Kafka 연동 현황 분석 (Consumer 미구현 확인)
- 통합 테스트 결과 보고서 작성
- 테스트 자동화 스크립트 추가

테스트 성공률: 100% (9/9)
응답 성능: < 150ms

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 01:24:29 +09:00
merrycoral
ee941e4910 Event-AI Kafka 연동 개선 및 메시지 필드명 camelCase 변경
주요 변경사항:
- AI Service Kafka 브로커 설정 수정 (4.230.50.63:9092 → 20.249.182.13:9095,4.217.131.59:9095)
- IntelliJ 실행 프로파일 Kafka 환경 변수 수정 (3개 파일)
- Kafka 메시지 DTO 필드명 snake_case → camelCase 변경
- @JsonProperty 어노테이션 제거로 코드 간결성 향상 (18줄 감소)

개선 효과:
- Event-AI Kafka 연동 정상 작동 확인
- 메시지 필드 매핑 성공률 0% → 100%
- jobId, eventId, storeName 등 모든 필드 정상 매핑
- AI 추천 생성 로직 정상 실행

테스트 결과:
- Kafka 메시지 발행/수신: Offset 34로 정상 동작 확인
- AI Service에서 메시지 처리 완료 (COMPLETED)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 22:55:20 +09:00
Hyowon Yang
98ed508a6f User-level Analytics API 구현 및 Kafka Consumer 설정 개선
주요 변경사항:
- User-level Analytics API 기간 파라미터 제거 (전체 기간 자동 계산)
  * /api/v1/users/{userId}/analytics/dashboard
  * /api/v1/users/{userId}/analytics/channels
  * /api/v1/users/{userId}/analytics/roi
  * /api/v1/users/{userId}/analytics/timeline

- Kafka Consumer 안정성 개선
  * Consumer Group ID를 analytics-service-consumers-v3로 변경
  * Redis 멱등성 키 v2 버전 사용 (processed_events_v2, distribution_completed_v2, processed_participants_v2)
  * ParticipantRegisteredConsumer 멱등성 키를 eventId:participantId 조합으로 변경하여 중복 방지 강화

- 설정 개선
  * UTF-8 인코딩 명시적 설정 추가
  * Kafka auto.offset.reset 설정 명확화

- 테스트 도구 추가
  * tools/reset-analytics-data.ps1: 테스트 데이터 초기화 스크립트
  * DebugController: 개발 환경 디버깅용 엔드포인트

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 18:07:20 +09:00
sunmingLee
63ba449f93 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>
2025-10-29 10:09:47 +09:00
Hyowon Yang
f30213d1a2 Analytics Service 실행 프로파일 추가 2025-10-28 16:42:05 +09:00
hyeda2020
de32a70f29
Merge branch 'main' into develop 2025-10-28 13:16:15 +09:00
Unknown
7a99dc95fe participation 실행프로파일 수정 2025-10-28 10:21:38 +09:00
Hyowon Yang
9b247ca058
Merge branch 'develop' into feature/analytics 2025-10-27 15:10:31 +09:00
Hayoung Song
6728b98878
Merge branch 'develop' into feature/event 2025-10-27 13:43:15 +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
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
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
b0d8a6d10e distribution-service API 명세서를 실제 구현에 맞게 수정
- ChannelType 열거형 값 수정 (URIDONGNETV, RINGOBIZ, GINITV 등)
- DistributionRequest 스키마 변경 (title, description, imageUrl 추가)
- DistributionResponse 스키마 변경 (success, successCount, failureCount 등)
- ChannelDistributionResult 스키마 단순화
- 모든 예제 코드 실제 구현에 맞게 업데이트
- IntelliJ 서비스 실행 프로파일 추가
- Distribution 서비스 엔티티, 매퍼, 리포지토리 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 13:45:45 +09:00
Hyowon Yang
b0b0ba3263 배치서비스개발, redis설정
- Analytics 5분 단위 배치 스케줄러 추가
- 초기 데이터 로딩 기능 구현 (서버 시작 30초 후)
- Redis 설정 업데이트 (외부 Redis 서버 연결)
- Redis 읽기 전용 오류 처리 추가
- IntelliJ 실행 프로파일 생성
- @EnableScheduling 활성화

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 13:39:10 +09:00
doyeon
c6de9bd1d0 로깅 설정 추가 및 실행 프로파일 수정
- application.yml에 로그 파일 Rolling 설정 추가
- .run 폴더를 Git 추적에 포함하도록 .gitignore 수정
- logs 디렉토리는 Git에서 제외
- IntelliJ 실행 프로파일 구조 개선

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 13:22:39 +09:00
sunmingLee
9f50c7feaa distribution-service에 PostgreSQL, Redis 연결 설정 추가
- application.yml에 DB 및 캐시 설정 추가
- IntelliJ 실행 프로파일에 환경 변수 설정
- Kafka 브로커 주소를 실제 서버로 변경
2025-10-24 13:08:42 +09:00
sunmingLee
28a7a91ca2 Swagger 관련 변경사항 롤백 및 정리 2025-10-24 11:04:59 +09:00
merrycoral
5476fe9388 event-service 초기 구현 및 JWT 토큰 매장 ID 추가
- JWT 토큰에 매장 ID(storeId) 필드 추가
- event-service 구현 (이벤트 생성/조회 API)
- hibernate-types 의존성 추가 (UUID 지원)
- API 매핑 문서 추가
- IntelliJ 실행 프로파일 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 10:17:45 +09:00
doyeon
ade2719dc7 Revert "Participation Service 백엔드 개발 완료"
This reverts commit e0c1066316dddddbe052bf6e639dc0d7d49b0b0d.
2025-10-24 10:00:48 +09:00
doyeon
e0c1066316 Participation Service 백엔드 개발 완료
주요 구현 사항:
- 이벤트 참여 등록 및 중복 검증 (Redis Cache + DB)
- 참여자 목록 조회 (필터링, 검색, 페이징)
- 당첨자 추첨 (Fisher-Yates Shuffle 알고리즘)
- Kafka 이벤트 발행 (ParticipantRegistered)
- Redis 캐싱으로 성능 최적화
- 전화번호 마스킹 (개인정보 보호)
- 전역 예외 처리 및 검증

기술 스택:
- Spring Boot 3.x + JPA
- MySQL (참여자, 추첨 로그)
- Redis (캐싱, 중복 검증)
- Kafka (이벤트 발행)

API 엔드포인트:
- POST /events/{eventId}/participate
- GET /events/{eventId}/participants
- GET /events/{eventId}/participants/search
- POST /events/{eventId}/draw-winners
- GET /events/{eventId}/winners

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 09:29:03 +09:00
doyeon
50cf1dbcf1 Revert "Participation Service 백엔드 개발 완료"
This reverts commit 5c8aced0431d2f0757b7d93112faaf1a9375a868.
2025-10-24 09:25:23 +09:00
doyeon
5c8aced043 Participation Service 백엔드 개발 완료
주요 구현 사항:
- 이벤트 참여 등록 및 중복 검증 (Redis Cache + DB)
- 참여자 목록 조회 (필터링, 검색, 페이징)
- 당첨자 추첨 (Fisher-Yates Shuffle 알고리즘)
- Kafka 이벤트 발행 (ParticipantRegistered)
- Redis 캐싱으로 성능 최적화
- 전화번호 마스킹 (개인정보 보호)
- 전역 예외 처리 및 검증

기술 스택:
- Spring Boot 3.x + JPA
- MySQL (참여자, 추첨 로그)
- Redis (캐싱, 중복 검증)
- Kafka (이벤트 발행)

API 엔드포인트:
- POST /events/{eventId}/participate
- GET /events/{eventId}/participants
- GET /events/{eventId}/participants/search
- POST /events/{eventId}/draw-winners
- GET /events/{eventId}/winners

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 09:21:39 +09:00