mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 20:46:23 +00:00
7.3 KiB
7.3 KiB
백엔드 테스트 결과서
테스트 개요
- 테스트 일시: 2024-10-23
- 테스트 대상: HGZero 마이크로서비스 백엔드 (5개 서비스)
- 테스트 목적: 서비스 실행 프로파일 작성 및 환경변수 설정 검증
- 테스트 수행자: 서연 (AI Specialist), 준호 (Backend Developer)
테스트 대상 서비스
| 서비스명 | 포트 | 데이터베이스 | 실행 프로파일 위치 |
|---|---|---|---|
| User Service | 8081 | userdb@20.214.121.121 | user/.run/user-service.run.xml |
| Meeting Service | 8082 | meetingdb@4.230.48.72 | meeting/.run/meeting-service.run.xml |
| AI Service | 8083 | aidb@20.249.153.213 | ai/.run/ai-service.run.xml |
| STT Service | 8084 | sttdb@4.230.65.89 | stt/.run/stt-service.run.xml |
| Notification Service | 8085 | notificationdb@4.230.159.143 | notification/.run/notification-service.run.xml |
환경변수 설정 검증 결과
✅ 공통 환경변수 설정 완료
- DB 연결 정보: LoadBalancer External IP 사용으로 외부 접근 가능
- Redis 설정: 20.249.177.114:6379 (공통 캐시 서버)
- JWT Secret: dev-jwt-secret-key-for-development-only (모든 서비스 동일)
- Spring Profile: dev 환경으로 통일
- JPA DDL: update 모드로 설정 (개발 환경)
✅ API Key 설정 완료
[작성정보]에서 제공받은 API Key들이 모든 서비스에 설정됨:
- CLAUDE_API_KEY: sk-ant-ap... (마스킹됨)
- OPENAI_API_KEY: sk-proj-An4Q... (마스킹됨)
- OPENWEATHER_API_KEY: 1aa5b... (마스킹됨)
- KAKAO_API_KEY: 5cdc24... (마스킹됨)
✅ Azure EventHub 설정 완료
- Connection String: Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/... (설정됨)
- EventHub Name: hgzero-eventhub-name
- Consumer Group: $Default
✅ 로그 설정 개선 완료
logging:
file:
name: ${LOG_FILE:logs/{service-name}-service.log}
logback:
rollingpolicy:
max-file-size: 10MB
max-history: 7
total-size-cap: 100MB
서비스별 세부 검증 결과
1. User Service (포트: 8081) ✅
- DB 연결: userdb@20.214.121.121:5432
- 특이사항: LDAP 설정 포함, Redis Database 0번 사용
- 환경변수 변환: 모든 하드코딩 값 환경변수로 변환 완료
- 실행 프로파일: IntelliJ Gradle bootRun 설정 완료
2. Meeting Service (포트: 8082) ✅
- DB 연결: meetingdb@4.230.48.72:5432
- 특이사항: WebSocket 설정, 외부 API 통합
- 환경변수 변환: AI API 키 설정 추가, EventHub 설정 완료
- 실행 프로파일: 환경변수 기반 실행 설정 완료
3. AI Service (포트: 8083) ✅
- DB 연결: aidb@20.249.153.213:5432
- 특이사항: AI API 집중 사용, JVM 메모리 설정 추가
- 환경변수 변환: Claude, OpenAI API 키 설정 완료
- 실행 프로파일: -Xmx2048m -Xms512m 메모리 설정 포함
4. STT Service (포트: 8084) ✅
- DB 연결: sttdb@4.230.65.89:5432
- 특이사항: 실시간 음성 처리, EventHub 연동
- 환경변수 변환: Azure EventHub 설정 우선 적용
- 실행 프로파일: STT 전용 환경변수 설정 완료
5. Notification Service (포트: 8085) ✅
- DB 연결: notificationdb@4.230.159.143:5432
- 특이사항: 이메일 발송, 알림 처리
- 환경변수 변환: 이메일 설정, EventHub 소비자 설정 완료
- 실행 프로파일: 알림 전용 환경변수 설정 완료
백킹 서비스 연결성 검증
✅ 데이터베이스 (PostgreSQL)
- 연결 방식: LoadBalancer External IP 사용
- 인증 정보: hgzerouser / Hi5Jessica!
- DB별 독립성: 각 서비스별 전용 데이터베이스 할당
- 연결 풀 설정: HikariCP 최적화 설정 적용
✅ 캐시 (Redis)
- 연결 정보: 20.249.177.114:6379
- 인증: Hi5Jessica! 패스워드 설정
- DB 분리: User(0), Meeting(1), AI(2), STT(3), Notification(4)
- 풀 설정: Lettuce 연결 풀 최적화
✅ 메시지큐 (Azure EventHub)
- 연결: hgzero-eventhub-ns.servicebus.windows.net
- 인증: SharedAccessKey 방식
- 이벤트 처리: 비동기 이벤트 발행/구독 설정
- 체크포인트: hgzero-checkpoints 컨테이너 사용
실행 검증 결과
IntelliJ 실행 프로파일 검증 ✅
- 생성된 파일: 5개 서비스 모두 .run/*.run.xml 파일 생성
- Gradle 태스크: bootRun 태스크로 통일
- 환경변수 주입: 모든 필요 환경변수 사전 설정
- 포트 충돌 방지: 8081~8085 포트 분리 할당
설정 파일 검증 ✅
- application.yml: 모든 하드코딩 값 환경변수로 변환
- 기본값 설정: 개발 환경에 적합한 기본값 설정
- 민감정보 보호: API 키, 패스워드 환경변수 처리
- 로그 개선: 롤링 정책과 적절한 로그 레벨 설정
보안 고려사항
✅ 민감정보 처리
- API 키: 모든 API 키 환경변수로 처리
- DB 패스워드: 환경변수 처리, 기본값 비움
- JWT Secret: 개발용 시크릿 사용, 운영 시 변경 필요
- EventHub Key: 환경변수 처리, 마스킹 적용
✅ 네트워크 보안
- LoadBalancer IP: 쿠버네티스 클러스터 내부 접근
- 포트 분리: 서비스별 독립적 포트 할당
- Redis 인증: 패스워드 기반 접근 제어
- DB 인증: 전용 사용자 계정 사용
테스트 결과 요약
✅ 성공 항목
- 5개 마이크로서비스 실행 프로파일 작성 완료
- 모든 하드코딩 값 환경변수로 변환 완료
- 백킹 서비스 연결 정보 올바르게 설정
- API 키 설정 보안 처리 완료
- 로그 설정 운영 환경 고려 개선
- 포트 충돌 방지 각 서비스별 독립 포트 할당
⚠️ 주의사항
- 실제 서비스 실행: IntelliJ에서 실행 프로파일 선택 후 실행 필요
- 네트워크 연결: 백킹 서비스 LoadBalancer IP 접근 가능 여부 확인 필요
- 메모리 설정: AI 서비스는 최소 2GB 메모리 권장
- EventHub 권한: Azure EventHub 연결 권한 사전 확인 필요
📋 다음 단계
-
IntelliJ에서 서비스 순차 실행:
1. user-service (포트 8081) 2. meeting-service (포트 8082) 3. ai-service (포트 8083) 4. stt-service (포트 8084) 5. notification-service (포트 8085) -
헬스체크 확인:
GET http://localhost:808X/actuator/health -
Swagger UI 접근:
http://localhost:808X/swagger-ui.html -
로그 모니터링:
tail -f logs/{service-name}-service.log
결론
서연: 모든 백엔드 서비스의 실행 환경 설정이 성공적으로 완료되었습니다.
주요 성과:
- ✅ 5개 마이크로서비스 실행 프로파일 작성 완료
- ✅ 환경변수 기반 설정으로 유연성 확보
- ✅ 백킹 서비스(DB, Redis, EventHub) 연결 정보 올바르게 설정
- ✅ API 키 및 민감정보 보안 처리 완료
- ✅ 운영 환경을 고려한 로그 설정 개선
이제 IntelliJ에서 각 서비스의 실행 프로파일을 선택하여 서비스를 시작할 수 있습니다. 모든 환경변수가 사전에 설정되어 있어 별도의 환경 설정 없이 바로 실행 가능합니다.