# 백엔드 서비스 실행 프로파일 가이드

## 개요
HGZero 프로젝트의 모든 백엔드 서비스를 IntelliJ IDEA에서 실행할 수 있는 실행 프로파일을 생성했습니다.

## 생성된 실행 프로파일

### 1. UserApplication
- **포트**: 8080
- **데이터베이스**: userdb (20.214.121.121:5432)
- **Redis 데이터베이스**: 0
- **메인 클래스**: `com.unicorn.hgzero.user.UserApplication`
- **모듈**: user
- **로그 파일**: logs/user.log

### 2. NotificationApplication
- **포트**: 8084
- **데이터베이스**: notificationdb (4.230.159.143:5432)
- **Redis 데이터베이스**: 4
- **메인 클래스**: `com.unicorn.hgzero.notification.NotificationApplication`
- **모듈**: notification
- **로그 파일**: logs/notification.log

### 3. AiApplication
- **포트**: 8083
- **데이터베이스**: aidb (20.249.153.213:5432)
- **Redis 데이터베이스**: 4
- **메인 클래스**: `com.unicorn.hgzero.ai.AiApplication`
- **모듈**: ai
- **로그 파일**: logs/ai.log

### 4. MeetingApplication
- **포트**: 8082
- **데이터베이스**: meetingdb (4.230.48.72:5432)
- **Redis 데이터베이스**: 1
- **메인 클래스**: `com.unicorn.hgzero.meeting.MeetingApplication`
- **모듈**: meeting
- **로그 파일**: logs/meeting-service.log

### 5. SttApplication
- **포트**: 8085
- **데이터베이스**: sttdb (4.230.65.89:5432)
- **Redis 데이터베이스**: 2
- **메인 클래스**: `com.unicorn.hgzero.stt.SttApplication`
- **모듈**: stt
- **로그 파일**: logs/stt.log

## 환경 변수 설정

각 서비스별로 다음 환경 변수들이 설정되어 있습니다:

### 공통 환경 변수
- `JWT_SECRET`: 각 서비스별 개발용 JWT 시크릿 키
- `CORS_ALLOWED_ORIGINS`: http://localhost:*
- `SHOW_SQL`: true (개발용)
- `DDL_AUTO`: update (개발용)
- `LOG_LEVEL_APP`: DEBUG
- 기타 로깅 레벨 설정

### 서비스별 특화 환경 변수

#### AI 서비스
- `AZURE_OPENAI_API_KEY`: OpenAI API 키가 설정됨
- `AZURE_OPENAI_ENDPOINT`: https://api.openai.com/v1
- `AZURE_OPENAI_DEPLOYMENT`: gpt-4o
- `AZURE_OPENAI_EMBEDDING_DEPLOYMENT`: text-embedding-3-large

#### Notification 서비스
- `MAIL_HOST`: smtp.gmail.com
- `MAIL_PORT`: 587
- `NOTIFICATION_FROM_EMAIL`: noreply@hgzero.com
- `NOTIFICATION_FROM_NAME`: HGZero

#### STT 서비스
- `AZURE_SPEECH_REGION`: eastus
- `AZURE_SPEECH_LANGUAGE`: ko-KR
- `AZURE_BLOB_CONTAINER_NAME`: recordings

#### User 서비스
- `LDAP_URLS`: ldaps://ldap.example.com:636
- `LDAP_BASE`: dc=example,dc=com

#### Meeting 서비스
- `CLAUDE_API_KEY`: Claude AI API 키
- `OPENAI_API_KEY`: OpenAI API 키
- `OPENWEATHER_API_KEY`: OpenWeather API 키
- `KAKAO_API_KEY`: Kakao API 키
- `EVENTHUB_CONNECTION_STRING`: Azure EventHub 연결 문자열
- `EVENTHUB_NAME`: hgzero-eventhub-name

## 실행 방법

### IntelliJ IDEA에서 실행
1. IntelliJ IDEA에서 프로젝트 열기
2. Run/Debug Configurations 에서 원하는 서비스 선택
3. Run 또는 Debug 모드로 실행

### 서비스 실행 순서 권장사항
1. **UserApplication** (8080) - 사용자 인증 서비스
2. **MeetingApplication** (8082) - 회의록 관리 서비스
3. **AiApplication** (8083) - AI 처리 서비스
4. **NotificationApplication** (8084) - 알림 서비스
5. **SttApplication** (8085) - 음성 인식 서비스

## 주의사항

### 데이터베이스 연결 설정
**현재 설정된 데이터베이스 비밀번호**: `Hi5Jessica!`
- 모든 서비스가 동일한 데이터베이스 비밀번호를 사용하도록 설정되었습니다
- **HIBERNATE_DIALECT**가 `org.hibernate.dialect.PostgreSQLDialect`로 명시적으로 설정되어 연결 오류를 방지합니다

### 필수 설정이 필요한 환경 변수
다음 환경 변수들은 실제 운영 시 설정이 필요합니다:

- `REDIS_PASSWORD`: Redis 비밀번호 (필요시)
- `AZURE_SPEECH_SUBSCRIPTION_KEY`: Azure Speech 서비스 키 (STT 서비스)
- `AZURE_EVENTHUB_CONNECTION_STRING`: Event Hub 연결 문자열
- `AZURE_STORAGE_CONNECTION_STRING`: Azure Storage 연결 문자열
- `MAIL_USERNAME`, `MAIL_PASSWORD`: 이메일 발송용 계정 정보

### 포트 충돌 방지
- User: 8080
- Meeting: 8082
- AI: 8083
- Notification: 8084
- STT: 8085

모든 서비스가 서로 다른 포트를 사용하므로 동시 실행이 가능합니다.

## 로그 파일 위치
- 모든 로그는 프로젝트 루트의 `logs/` 디렉토리에 저장됩니다
- 각 서비스별 로그 파일:
  - `logs/user.log`
  - `logs/meeting-service.log`
  - `logs/notification.log`
  - `logs/ai.log`
  - `logs/stt.log`

## 개발 환경 설정
- 모든 프로파일은 `dev` 프로파일로 설정됨
- SQL 로깅이 활성화되어 개발 중 디버깅 용이
- DDL 자동 업데이트로 스키마 변경 자동 반영