mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 16:06:23 +00:00
## 변경 내용 - minutes 테이블에 user_id 컬럼 추가 (참석자별 회의록 지원) * user_id IS NULL: AI 통합 회의록 * user_id IS NOT NULL: 참석자별 회의록 - agenda_sections 테이블 생성 (안건별 AI 요약 저장) * agenda_number, agenda_title * ai_summary_short, discussions, decisions (JSON) * pending_items (JSON), opinions (JSON) - ai_summaries 테이블 생성 (AI 결과 캐싱) * summary_type: CONSOLIDATED, TODO_EXTRACTION * keywords, statistics (JSON) * processing_time_ms (성능 모니터링) - todos 테이블 확장 (AI 추출 정보) * extracted_by: AI, MANUAL * section_reference: 관련 안건 참조 * extraction_confidence: 0.00~1.00 ## 문서 - DB-Schema-회의종료.md: 상세 스키마 문서 - ERD-회의종료.puml: ERD 다이어그램 - 회의종료-개발계획.md: 전체 개발 계획 ## 설계 개선 - is_consolidated 컬럼 제거 (user_id로 구분 가능) - 중복 정보 제거로 데이터 일관성 향상
108 lines
3.0 KiB
Markdown
108 lines
3.0 KiB
Markdown
# Event Hub 정책 설정 가이드
|
|
|
|
## 📌 개요
|
|
Azure Event Hub 사용을 위한 공유 액세스 정책(SAS Policy) 설정 방법
|
|
|
|
## 🔧 설정 단계
|
|
|
|
### 1. Azure Portal 접속
|
|
- Event Hub Namespace: `hgzero-eventhub-ns`
|
|
- 리소스 그룹: `rg-digitalgarage-02`
|
|
|
|
### 2. 정책 생성
|
|
|
|
#### (1) STT 서비스용 Send 정책
|
|
```
|
|
정책 이름: stt-send-policy
|
|
권한: ✓ Send
|
|
용도: STT 서비스가 음성 인식 결과를 Event Hub에 발행
|
|
```
|
|
|
|
**생성 방법**:
|
|
1. `hgzero-eventhub-ns` → 공유 액세스 정책
|
|
2. `+ 추가` 클릭
|
|
3. 정책 이름: `stt-send-policy`
|
|
4. **Send** 체크
|
|
5. **만들기** 클릭
|
|
6. 생성된 정책 클릭 → **연결 문자열-기본 키** 복사
|
|
|
|
#### (2) AI 서비스용 Listen 정책
|
|
```
|
|
정책 이름: ai-listen-policy
|
|
권한: ✓ Listen
|
|
용도: AI 서비스가 Event Hub에서 이벤트를 구독
|
|
```
|
|
|
|
**생성 방법**:
|
|
1. 공유 액세스 정책 → `+ 추가`
|
|
2. 정책 이름: `ai-listen-policy`
|
|
3. **Listen** 체크
|
|
4. **만들기** → 연결 문자열 복사
|
|
|
|
#### (3) 관리용 Manage 정책
|
|
```
|
|
정책 이름: hgzero-manage-policy
|
|
권한: ✓ Manage (Send + Listen 포함)
|
|
용도: 개발, 테스트, 관리 작업
|
|
```
|
|
|
|
**생성 방법**:
|
|
1. 공유 액세스 정책 → `+ 추가`
|
|
2. 정책 이름: `hgzero-manage-policy`
|
|
3. **Manage** 체크 (자동으로 Send/Listen 포함)
|
|
4. **만들기** → 연결 문자열 복사
|
|
|
|
### 3. 연결 문자열 형식
|
|
```
|
|
Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;
|
|
SharedAccessKeyName=stt-send-policy;
|
|
SharedAccessKey=<YOUR_KEY>;
|
|
EntityPath=hgzero-eventhub-name
|
|
```
|
|
|
|
### 4. IntelliJ 실행 프로파일 설정
|
|
|
|
#### STT 서비스 (`.run/SttServiceApplication.run.xml`)
|
|
```xml
|
|
<option name="env">
|
|
<map>
|
|
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://...;SharedAccessKeyName=stt-send-policy;SharedAccessKey=..."/>
|
|
<entry key="EVENTHUB_NAME" value="hgzero-eventhub-name"/>
|
|
</map>
|
|
</option>
|
|
```
|
|
|
|
#### AI 서비스 (`.run/AiServiceApplication.run.xml`)
|
|
```xml
|
|
<option name="env">
|
|
<map>
|
|
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://...;SharedAccessKeyName=ai-listen-policy;SharedAccessKey=..."/>
|
|
<entry key="EVENTHUB_NAME" value="hgzero-eventhub-name"/>
|
|
</map>
|
|
</option>
|
|
```
|
|
|
|
## ✅ 검증 방법
|
|
|
|
### 연결 테스트
|
|
```bash
|
|
# STT 서비스 시작 후 로그 확인
|
|
# 성공 메시지 예시:
|
|
[INFO] EventHubProducerClient - Connected to Event Hub: hgzero-eventhub-name
|
|
```
|
|
|
|
### 권한 검증
|
|
- **Send 정책**: 이벤트 발행만 가능
|
|
- **Listen 정책**: 이벤트 구독만 가능
|
|
- **Manage 정책**: 모든 작업 가능
|
|
|
|
## 🔐 보안 권장사항
|
|
|
|
1. **최소 권한 원칙**: 각 서비스는 필요한 권한만 부여
|
|
2. **키 회전**: 정기적으로 액세스 키 재생성
|
|
3. **환경 분리**: Dev/Prod 환경별 별도 정책 사용
|
|
4. **연결 문자열 보호**: Git에 커밋하지 않음 (환경 변수 사용)
|
|
|
|
## 📚 참고 문서
|
|
- [Azure Event Hub SAS 인증](https://learn.microsoft.com/azure/event-hubs/authenticate-shared-access-signature)
|