- Jenkinsfile: GitHub Actions 대체 Jenkins Pipeline 구축
- 5개 백엔드 서비스 빌드 (user, meeting, stt, ai, notification)
- Gradle 빌드 및 SonarQube 분석 (선택사항)
- Docker 이미지 빌드 및 ACR 푸시
- Manifest 저장소 업데이트 (ArgoCD 연동)
- 환경별 배포 지원 (dev/staging/prod)
- deployment/jenkins/JENKINS_SETUP.md: Jenkins 설정 가이드
- Credentials 설정 방법
- JDK 21 및 SonarQube 설정
- Pipeline Job 생성 및 실행 가이드
- 트러블슈팅 가이드
- 사용 이유: GitHub Actions 차단으로 인한 대체 CI/CD 구축
- AI 서비스와 Meeting 서비스 통합 개선
- AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열)
- EndMeetingService에서 AI 서비스 타임아웃 처리 개선
- AIServiceClient에 상세한 에러 로깅 추가
- 회의록 consolidate 프롬프트 개선
- Todo 추출 로직 강화 (자연스러운 표현 인식)
- 안건별 decisions 필드 추가 (대시보드 표시용)
- 담당자 패턴 인식 개선
- Kubernetes 배포 설정 개선
- meeting-service.yaml에 AI_SERVICE_URL 환경변수 추가
- AI_SERVICE_TIMEOUT 설정 추가
- 데이터베이스 관리 SQL 스크립트 추가
- check-agenda-sections.sql: 안건 섹션 확인
- cleanup-test-data.sql: 테스트 데이터 정리
- insert-test-data-final.sql: 최종 테스트 데이터
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
문제:
- @ConditionalOnExpression의 SpEL 표현식 오류로 EventHubConfig가 활성화되지 않음
- NoOpEventPublisher가 대신 사용되어 Event Hub로 메시지가 발행되지 않음
해결:
- @ConditionalOnProperty 사용으로 변경
- eventhub.connection-string 속성 존재 여부로 Bean 활성화 제어
영향:
- EventHub 설정이 있을 때 EventHubPublisher가 정상 활성화됨
- 회의 시작/종료, Todo 할당 등의 이벤트가 Event Hub로 발행됨
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AI 서비스: Redis 캐싱 및 EventHub 통합 개선
- STT 서비스: 오디오 버퍼링 및 변환 기능 추가
- 설정 파일 업데이트
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- settings.gradle: ai 모듈을 빌드에서 제외 (Python으로 구현됨)
- .gitignore: ai, ai-java-back 백업 디렉토리 추가
문제: GitHub Actions에서 빈 ai 모듈 빌드 시 메인 클래스 찾을 수 없어 실패
해결: AI 서비스는 ai-python(FastAPI)으로 구현되므로 Java 모듈에서 제외
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- ai-python: FastAPI 기반 AI 서비스 구현
- 실시간 회의 제안 기능 추가
- Claude API 통합
- EventHub 및 Redis 연동
- ai-java-back: 기존 Java AI 서비스 백업 디렉토리로 이동
- Spring Boot 기반 구현 보존
- ai 디렉토리: Java 서비스 파일 삭제 처리
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- TranscriptionEvent.SegmentCreated에 sessionId 필드 추가
- AudioBatchProcessor의 스케줄링 간격을 10초에서 15초로 변경
- AI 서비스의 TranscriptSegmentReadyEvent에도 sessionId 필드 추가
- 이벤트 발행 시 sessionId에 meetingId 값 할당
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>