hgzero/docs/setup-eventhub-policy.md
Minseo-Jo 92e4863fc7 feat: 회의종료 기능을 위한 DB 스키마 추가
## 변경 내용
- 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로 구분 가능)
- 중복 정보 제거로 데이터 일관성 향상
2025-10-28 11:21:32 +09:00

3.0 KiB

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)

<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)

<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>

검증 방법

연결 테스트

# STT 서비스 시작 후 로그 확인
# 성공 메시지 예시:
[INFO] EventHubProducerClient - Connected to Event Hub: hgzero-eventhub-name

권한 검증

  • Send 정책: 이벤트 발행만 가능
  • Listen 정책: 이벤트 구독만 가능
  • Manage 정책: 모든 작업 가능

🔐 보안 권장사항

  1. 최소 권한 원칙: 각 서비스는 필요한 권한만 부여
  2. 키 회전: 정기적으로 액세스 키 재생성
  3. 환경 분리: Dev/Prod 환경별 별도 정책 사용
  4. 연결 문자열 보호: Git에 커밋하지 않음 (환경 변수 사용)

📚 참고 문서