mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 05:36:23 +00:00
meeting 및 notification 실행환경 설정
This commit is contained in:
parent
1e7c7c8d74
commit
eb2302a0eb
@ -1,8 +1,85 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="ai-service" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<!-- Database Configuration -->
|
||||
<entry key="DB_KIND" value="postgresql" />
|
||||
<entry key="DB_HOST" value="20.249.153.213" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_NAME" value="aidb" />
|
||||
<entry key="DB_USERNAME" value="hgzerouser" />
|
||||
<entry key="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<entry key="SHOW_SQL" value="true" />
|
||||
<entry key="DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<entry key="REDIS_HOST" value="20.249.177.114" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<entry key="REDIS_DATABASE" value="4" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<entry key="SERVER_PORT" value="8083" />
|
||||
<entry key="CONTEXT_PATH" value="" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="JWT_ACCESS_TOKEN_VALIDITY" value="1800" />
|
||||
<entry key="JWT_REFRESH_TOKEN_VALIDITY" value="86400" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<entry key="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
|
||||
<!-- External AI API Configuration -->
|
||||
<entry key="CLAUDE_API_KEY" value="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" />
|
||||
<entry key="CLAUDE_BASE_URL" value="https://api.anthropic.com" />
|
||||
<entry key="OPENAI_API_KEY" value="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" />
|
||||
<entry key="OPENAI_BASE_URL" value="https://api.openai.com" />
|
||||
<entry key="OPENWEATHER_API_KEY" value="1aa5bfca079a20586915b56f29235cc0" />
|
||||
<entry key="OPENWEATHER_BASE_URL" value="https://api.openweathermap.org" />
|
||||
<entry key="KAKAO_API_KEY" value="094feac895a3e4a6d7ffa66d877bf48f" />
|
||||
<entry key="KAKAO_BASE_URL" value="https://dapi.kakao.com" />
|
||||
|
||||
<!-- Azure OpenAI Configuration -->
|
||||
<entry key="AZURE_OPENAI_API_KEY" value="" />
|
||||
<entry key="AZURE_OPENAI_ENDPOINT" value="" />
|
||||
<entry key="AZURE_OPENAI_DEPLOYMENT" value="gpt-4o" />
|
||||
<entry key="AZURE_OPENAI_EMBEDDING_DEPLOYMENT" value="text-embedding-3-large" />
|
||||
<entry key="AZURE_OPENAI_MAX_TOKENS" value="2000" />
|
||||
<entry key="AZURE_OPENAI_TEMPERATURE" value="0.3" />
|
||||
|
||||
<!-- Azure AI Search Configuration -->
|
||||
<entry key="AZURE_AI_SEARCH_ENDPOINT" value="" />
|
||||
<entry key="AZURE_AI_SEARCH_API_KEY" value="" />
|
||||
<entry key="AZURE_AI_SEARCH_INDEX" value="meeting-transcripts" />
|
||||
|
||||
<!-- Azure Event Hubs Configuration -->
|
||||
<entry key="AZURE_EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<entry key="AZURE_EVENTHUB_NAMESPACE" value="hgzero-eventhub-ns" />
|
||||
<entry key="AZURE_EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
<entry key="AZURE_CHECKPOINT_STORAGE_CONNECTION_STRING" value="" />
|
||||
<entry key="AZURE_CHECKPOINT_CONTAINER" value="hgzero-checkpoints" />
|
||||
<entry key="AZURE_EVENTHUB_CONSUMER_GROUP_TRANSCRIPT" value="ai-transcript-group" />
|
||||
<entry key="AZURE_EVENTHUB_CONSUMER_GROUP_MEETING" value="ai-meeting-group" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEB" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL_TYPE" value="TRACE" />
|
||||
<entry key="LOG_FILE" value="logs/ai-service.log" />
|
||||
<entry key="LOG_MAX_FILE_SIZE" value="10MB" />
|
||||
<entry key="LOG_MAX_HISTORY" value="7" />
|
||||
<entry key="LOG_TOTAL_SIZE_CAP" value="100MB" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$/ai" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
@ -10,68 +87,27 @@
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="bootRun" />
|
||||
<option value=":ai:bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" value="-Xmx2048m -Xms512m" />
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
<envs>
|
||||
<!-- Database Configuration -->
|
||||
<env name="DB_HOST" value="20.249.153.213" />
|
||||
<env name="DB_NAME" value="aidb" />
|
||||
<env name="DB_USERNAME" value="hgzerouser" />
|
||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
<env name="DB_PORT" value="5432" />
|
||||
<env name="DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<env name="REDIS_HOST" value="20.249.177.114" />
|
||||
<env name="REDIS_PORT" value="6379" />
|
||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<env name="REDIS_DATABASE" value="4" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<env name="SERVER_PORT" value="8083" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<env name="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<env name="JWT_ACCESS_TOKEN_VALIDITY" value="1800" />
|
||||
<env name="JWT_REFRESH_TOKEN_VALIDITY" value="86400" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<env name="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<env name="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<env name="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<env name="LOG_FILE" value="logs/ai-service.log" />
|
||||
<env name="LOG_MAX_FILE_SIZE" value="10MB" />
|
||||
<env name="LOG_MAX_HISTORY" value="7" />
|
||||
<env name="LOG_TOTAL_SIZE_CAP" value="100MB" />
|
||||
|
||||
<!-- External AI API Keys -->
|
||||
<env name="CLAUDE_API_KEY" value="sk-ant-ap..." />
|
||||
<env name="OPENAI_API_KEY" value="sk-proj-An4Q..." />
|
||||
<env name="OPENWEATHER_API_KEY" value="1aa5b..." />
|
||||
<env name="KAKAO_API_KEY" value="5cdc24...." />
|
||||
|
||||
<!-- Azure Configuration (if needed) -->
|
||||
<env name="AZURE_OPENAI_API_KEY" value="" />
|
||||
<env name="AZURE_OPENAI_ENDPOINT" value="" />
|
||||
<env name="AZURE_AI_SEARCH_ENDPOINT" value="" />
|
||||
<env name="AZURE_AI_SEARCH_API_KEY" value="" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<env name="AZURE_EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<env name="AZURE_EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
<env name="AZURE_EVENTHUB_NAMESPACE" value="hgzero-eventhub-ns" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<env name="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
</envs>
|
||||
</configuration>
|
||||
</component>
|
||||
@ -47,6 +47,7 @@ subprojects {
|
||||
azureSpeechVersion = '1.37.0'
|
||||
azureBlobVersion = '12.25.3'
|
||||
azureEventHubsVersion = '5.18.2'
|
||||
azureEventHubsCheckpointVersion = '1.19.2'
|
||||
azureAiSearchVersion = '11.6.2'
|
||||
springAiVersion = '1.0.0-M1'
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
175
common/claude/make-run-profile.md
Normal file
175
common/claude/make-run-profile.md
Normal file
@ -0,0 +1,175 @@
|
||||
# 서비스실행파일작성가이드
|
||||
|
||||
[요청사항]
|
||||
- <수행원칙>을 준용하여 수행
|
||||
- <수행순서>에 따라 수행
|
||||
- [결과파일] 안내에 따라 파일 작성
|
||||
|
||||
[가이드]
|
||||
<수행원칙>
|
||||
- 설정 Manifest(src/main/resources/application*.yml)의 각 항목의 값은 하드코딩하지 않고 환경변수 처리
|
||||
- Kubernetes에 배포된 데이터베이스는 LoadBalacer유형의 Service를 만들어 연결
|
||||
- MQ 이용 시 'MQ설치결과서'의 연결 정보를 실행 프로파일의 환경변수로 등록
|
||||
<수행순서>
|
||||
- 준비:
|
||||
- 데이터베이스설치결과서(develop/database/exec/db-exec-dev.md) 분석
|
||||
- 캐시설치결과서(develop/database/exec/cache-exec-dev.md) 분석
|
||||
- MQ설치결과서(develop/mq/mq-exec-dev.md) 분석 - 연결 정보 확인
|
||||
- kubectl get svc -n tripgen-dev | grep LoadBalancer 실행하여 External IP 목록 확인
|
||||
- 실행:
|
||||
- 각 서비스별를 서브에이젼트로 병렬 수행
|
||||
- 설정 Manifest 수정
|
||||
- 하드코딩 되어 있는 값이 있으면 환경변수로 변환
|
||||
- 특히, 데이터베이스, MQ 등의 연결 정보는 반드시 환경변수로 변환해야 함
|
||||
- 민감한 정보의 디퐅트값은 생략하거나 간략한 값으로 지정
|
||||
- '<로그설정>'을 참조하여 Log 파일 설정
|
||||
- '<실행프로파일 작성 가이드>'에 따라 서비스 실행프로파일 작성
|
||||
- LoadBalancer External IP를 DB_HOST, REDIS_HOST로 설정
|
||||
- MQ 연결 정보를 application.yml의 환경변수명에 맞춰 설정
|
||||
- 서비스 실행 및 오류 수정
|
||||
- 'IntelliJ서비스실행기'를 'tools' 디렉토리에 다운로드
|
||||
- python 또는 python3 명령으로 백그라우드로 실행하고 결과 로그를 분석
|
||||
nohup python3 tools/run-intellij-service-profile.py {service-name} > logs/{service-name}.log 2>&1 & echo "Started {service-name} with PID: $!"
|
||||
- 서비스 실행은 다른 방법 사용하지 말고 **반드시 python 프로그램 이용**
|
||||
- 오류 수정 후 필요 시 실행파일의 환경변수를 올바르게 변경
|
||||
- 서비스 정상 시작 확인 후 서비스 중지
|
||||
- 결과: {service-name}/.run
|
||||
<서비스 중지 방법>
|
||||
- Window
|
||||
- netstat -ano | findstr :{PORT}
|
||||
- powershell "Stop-Process -Id {Process number} -Force"
|
||||
- Linux/Mac
|
||||
- netstat -ano | grep {PORT}
|
||||
- kill -9 {Process number}
|
||||
<로그설정>
|
||||
- **application.yml 로그 파일 설정**:
|
||||
```yaml
|
||||
logging:
|
||||
file:
|
||||
name: ${LOG_FILE:logs/trip-service.log}
|
||||
logback:
|
||||
rollingpolicy:
|
||||
max-file-size: 10MB
|
||||
max-history: 7
|
||||
total-size-cap: 100MB
|
||||
```
|
||||
|
||||
<실행프로파일 작성 가이드>
|
||||
- {service-name}/.run/{service-name}.run.xml 파일로 작성
|
||||
- Spring Boot가 아니고 **Gradle 실행 프로파일**이어야 함: '[실행프로파일 예시]' 참조
|
||||
- Kubernetes에 배포된 데이터베이스의 LoadBalancer Service 확인:
|
||||
- kubectl get svc -n {namespace} | grep LoadBalancer 명령으로 LoadBalancer IP 확인
|
||||
- 각 서비스별 데이터베이스의 LoadBalancer External IP를 DB_HOST로 사용
|
||||
- 캐시(Redis)의 LoadBalancer External IP를 REDIS_HOST로 사용
|
||||
- MQ 연결 설정:
|
||||
- MQ설치결과서(develop/mq/mq-exec-dev.md)에서 연결 정보 확인
|
||||
- MQ 유형에 따른 연결 정보 설정 예시:
|
||||
- RabbitMQ: RABBITMQ_HOST, RABBITMQ_PORT, RABBITMQ_USERNAME, RABBITMQ_PASSWORD
|
||||
- Kafka: KAFKA_BOOTSTRAP_SERVERS, KAFKA_SECURITY_PROTOCOL
|
||||
- Azure Service Bus: SERVICE_BUS_CONNECTION_STRING
|
||||
- AWS SQS: AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
|
||||
- Redis (Pub/Sub): REDIS_HOST, REDIS_PORT, REDIS_PASSWORD
|
||||
- ActiveMQ: ACTIVEMQ_BROKER_URL, ACTIVEMQ_USER, ACTIVEMQ_PASSWORD
|
||||
- 기타 MQ: 해당 MQ의 연결에 필요한 호스트, 포트, 인증정보, 연결문자열 등을 환경변수로 설정
|
||||
- application.yml에 정의된 환경변수명 확인 후 매핑
|
||||
- 백킹서비스 연결 정보 매핑:
|
||||
- 데이터베이스설치결과서에서 각 서비스별 DB 인증 정보 확인
|
||||
- 캐시설치결과서에서 각 서비스별 Redis 인증 정보 확인
|
||||
- LoadBalancer의 External IP를 호스트로 사용 (내부 DNS 아님)
|
||||
- 개발모드의 DDL_AUTO값은 update로 함
|
||||
- JWT Secret Key는 모든 서비스가 동일해야 함
|
||||
- application.yaml의 환경변수와 일치하도록 환경변수 설정
|
||||
- application.yaml의 민감 정보는 기본값으로 지정하지 않고 실제 백킹서비스 정보로 지정
|
||||
- 백킹서비스 연결 확인 결과를 바탕으로 정확한 값을 지정
|
||||
- 기존에 파일이 있으면 내용을 분석하여 항목 추가/수정/삭제
|
||||
|
||||
[실행프로파일 예시]
|
||||
```
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="user-service" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<entry key="ACCOUNT_LOCK_DURATION_MINUTES" value="30" />
|
||||
<entry key="CACHE_TTL" value="1800" />
|
||||
<entry key="DB_HOST" value="20.249.197.193" /> <!-- LoadBalancer External IP 사용 -->
|
||||
<entry key="DB_NAME" value="tripgen_user_db" />
|
||||
<entry key="DB_PASSWORD" value="tripgen_user_123" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_USERNAME" value="tripgen_user" />
|
||||
<entry key="FILE_BASE_URL" value="http://localhost:8081" />
|
||||
<entry key="FILE_MAX_SIZE" value="5242880" />
|
||||
<entry key="FILE_UPLOAD_PATH" value="/app/uploads" />
|
||||
<entry key="JPA_DDL_AUTO" value="update" />
|
||||
<entry key="JPA_SHOW_SQL" value="true" />
|
||||
<entry key="JWT_ACCESS_TOKEN_EXPIRATION" value="86400" />
|
||||
<entry key="JWT_REFRESH_TOKEN_EXPIRATION" value="604800" />
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="MAX_LOGIN_ATTEMPTS" value="5" />
|
||||
<entry key="PASSWORD_MIN_LENGTH" value="8" />
|
||||
<entry key="REDIS_DATABASE" value="0" />
|
||||
<entry key="REDIS_HOST" value="20.214.121.28" /> <!-- Redis LoadBalancer External IP 사용 -->
|
||||
<entry key="REDIS_PASSWORD" value="" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="SERVER_PORT" value="8081" />
|
||||
<entry key="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
<!-- MQ 사용하는 서비스의 경우 MQ 유형에 맞게 추가 -->
|
||||
<!-- Azure Service Bus 예시 -->
|
||||
<entry key="SERVICE_BUS_CONNECTION_STRING" value="Endpoint=sb://...;SharedAccessKeyName=...;SharedAccessKey=..." />
|
||||
<!-- RabbitMQ 예시 -->
|
||||
<entry key="RABBITMQ_HOST" value="20.xxx.xxx.xxx" />
|
||||
<entry key="RABBITMQ_PORT" value="5672" />
|
||||
<!-- Kafka 예시 -->
|
||||
<entry key="KAFKA_BOOTSTRAP_SERVERS" value="20.xxx.xxx.xxx:9092" />
|
||||
<!-- 기타 MQ의 경우 해당 MQ에 필요한 연결 정보를 환경변수로 추가 -->
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="user-service:bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
```
|
||||
|
||||
[참고자료]
|
||||
- 데이터베이스설치결과서: develop/database/exec/db-exec-dev.md
|
||||
- 각 서비스별 DB 연결 정보 (사용자명, 비밀번호, DB명)
|
||||
- LoadBalancer Service External IP 목록
|
||||
- 캐시설치결과서: develop/database/exec/cache-exec-dev.md
|
||||
- 각 서비스별 Redis 연결 정보
|
||||
- LoadBalancer Service External IP 목록
|
||||
- MQ설치결과서: develop/mq/mq-exec-dev.md
|
||||
- MQ 유형 및 연결 정보
|
||||
- 연결에 필요한 호스트, 포트, 인증 정보
|
||||
- LoadBalancer Service External IP (해당하는 경우)
|
||||
@ -1,8 +1,71 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="meeting-service" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<!-- Database Configuration -->
|
||||
<entry key="DB_KIND" value="postgresql" />
|
||||
<entry key="DB_HOST" value="4.230.48.72" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_NAME" value="meetingdb" />
|
||||
<entry key="DB_USERNAME" value="hgzerouser" />
|
||||
<entry key="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<entry key="SHOW_SQL" value="true" />
|
||||
<entry key="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<entry key="REDIS_HOST" value="20.249.177.114" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<entry key="REDIS_DATABASE" value="1" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<entry key="SERVER_PORT" value="8082" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="JWT_ACCESS_TOKEN_VALIDITY" value="3600" />
|
||||
<entry key="JWT_REFRESH_TOKEN_VALIDITY" value="604800" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<entry key="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
|
||||
<!-- External API Configuration -->
|
||||
<entry key="CLAUDE_API_KEY" value="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" />
|
||||
<entry key="CLAUDE_API_URL" value="https://api.anthropic.com" />
|
||||
<entry key="OPENAI_API_KEY" value="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" />
|
||||
<entry key="OPENAI_API_URL" value="https://api.openai.com" />
|
||||
<entry key="OPENWEATHER_API_KEY" value="1aa5bfca079a20586915b56f29235cc0" />
|
||||
<entry key="OPENWEATHER_API_URL" value="https://api.openweathermap.org" />
|
||||
<entry key="KAKAO_API_KEY" value="094feac895a3e4a6d7ffa66d877bf48f" />
|
||||
<entry key="KAKAO_API_URL" value="https://dapi.kakao.com" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<entry key="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
<entry key="EVENTHUB_CONSUMER_GROUP" value="$Default" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<entry key="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEB" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEBSOCKET" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL_TYPE" value="TRACE" />
|
||||
<entry key="LOG_FILE" value="logs/meeting-service.log" />
|
||||
<entry key="LOG_MAX_FILE_SIZE" value="10MB" />
|
||||
<entry key="LOG_MAX_HISTORY" value="7" />
|
||||
<entry key="LOG_TOTAL_SIZE_CAP" value="100MB" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$/meeting" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
@ -10,53 +73,27 @@
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="bootRun" />
|
||||
<option value=":meeting:bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" value="" />
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
<envs>
|
||||
<!-- Database Configuration -->
|
||||
<env name="DB_HOST" value="4.230.48.72" />
|
||||
<env name="DB_NAME" value="meetingdb" />
|
||||
<env name="DB_USERNAME" value="hgzerouser" />
|
||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
<env name="DB_PORT" value="5432" />
|
||||
<env name="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<env name="REDIS_HOST" value="20.249.177.114" />
|
||||
<env name="REDIS_PORT" value="6379" />
|
||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<env name="SERVER_PORT" value="8082" />
|
||||
|
||||
<!-- Spring Configuration -->
|
||||
<env name="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<env name="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<env name="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<env name="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<env name="LOG_FILE" value="logs/meeting-service.log" />
|
||||
|
||||
<!-- External API Keys -->
|
||||
<env name="CLAUDE_API_KEY" value="sk-ant-api03-Rh0aOj4xq8ohhD7D1z8pCGpN9N6GGAG_Q_y6I8Gc33UzYCNtqQNQV8Bv0d9sP8Zem_v4yOd5HQo-LqB9PAqFiA-cOepzgAA" />
|
||||
<env name="OPENAI_API_KEY" value="sk-proj-An4QwU2p5V0qFCnGkwIiRfWE2TIFCJyqM_eEp3HjT8n6lFdGHnQo_zzh1jP4T" />
|
||||
<env name="OPENWEATHER_API_KEY" value="1aa5b8e40b8f9c72ef5e8c7e7e2e8b1e" />
|
||||
<env name="KAKAO_API_KEY" value="5cdc24e8f9a8b6c7d1e2f3g4h5i6j7k8" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<env name="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<env name="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
</envs>
|
||||
</configuration>
|
||||
</component>
|
||||
@ -2,6 +2,21 @@ bootJar {
|
||||
archiveFileName = 'meeting.jar'
|
||||
}
|
||||
|
||||
bootRun {
|
||||
// 환경 변수를 Spring Boot 애플리케이션에 전달
|
||||
environment = System.getenv()
|
||||
}
|
||||
|
||||
// 환경변수 확인용 임시 태스크
|
||||
task printEnv {
|
||||
doLast {
|
||||
println "=== Gradle Daemon 환경변수 ==="
|
||||
println "DB_PASSWORD: " + System.getenv('DB_PASSWORD')
|
||||
println "DB_HOST: " + System.getenv('DB_HOST')
|
||||
println "DB_USERNAME: " + System.getenv('DB_USERNAME')
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// WebSocket
|
||||
implementation 'org.springframework.boot:spring-boot-starter-websocket'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -25,8 +25,9 @@ spring:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
use_sql_comments: true
|
||||
dialect: org.hibernate.dialect.PostgreSQLDialect
|
||||
hibernate:
|
||||
ddl-auto: ${DDL_AUTO:update}
|
||||
ddl-auto: ${JPA_DDL_AUTO:update}
|
||||
|
||||
# Redis Configuration
|
||||
data:
|
||||
|
||||
@ -1,52 +1,100 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="notification-service" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
|
||||
<module name="notification.main" />
|
||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.unicorn.hgzero.notification.NotificationApplication" />
|
||||
<option name="ACTIVE_PROFILES" value="dev" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<envs>
|
||||
<!-- Database Configuration -->
|
||||
<env name="DB_HOST" value="4.230.159.143" />
|
||||
<env name="DB_NAME" value="notificationdb" />
|
||||
<env name="DB_USERNAME" value="hgzerouser" />
|
||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
<env name="DB_PORT" value="5432" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<env name="SERVER_PORT" value="8085" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<env name="REDIS_HOST" value="20.249.177.114" />
|
||||
<env name="REDIS_PORT" value="6379" />
|
||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<env name="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<env name="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<env name="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<env name="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<env name="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<env name="LOG_FILE" value="logs/notification-service.log" />
|
||||
|
||||
<!-- API Keys -->
|
||||
<env name="CLAUDE_API_KEY" value="sk-ant-ap..." />
|
||||
<env name="OPENAI_API_KEY" value="sk-proj-An4Q..." />
|
||||
<env name="OPENWEATHER_API_KEY" value="1aa5b..." />
|
||||
<env name="KAKAO_API_KEY" value="5cdc24...." />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<env name="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<env name="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
</envs>
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
<configuration default="false" name="notification-service" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<!-- Database Configuration -->
|
||||
<entry key="DB_KIND" value="postgresql" />
|
||||
<entry key="DB_HOST" value="4.230.159.143" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_NAME" value="notificationdb" />
|
||||
<entry key="DB_USERNAME" value="hgzerouser" />
|
||||
<entry key="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<entry key="SHOW_SQL" value="true" />
|
||||
<entry key="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<entry key="REDIS_HOST" value="20.249.177.114" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<entry key="REDIS_DATABASE" value="4" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<entry key="SERVER_PORT" value="8085" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="JWT_ACCESS_TOKEN_VALIDITY" value="3600" />
|
||||
<entry key="JWT_REFRESH_TOKEN_VALIDITY" value="604800" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<entry key="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
|
||||
<!-- Mail Configuration -->
|
||||
<entry key="MAIL_HOST" value="smtp.gmail.com" />
|
||||
<entry key="MAIL_PORT" value="587" />
|
||||
<entry key="MAIL_USERNAME" value="" />
|
||||
<entry key="MAIL_PASSWORD" value="" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<entry key="EVENTHUB_NAME" value="notification-events" />
|
||||
<entry key="AZURE_EVENTHUB_CONSUMER_GROUP" value="$Default" />
|
||||
|
||||
<!-- Azure Storage Configuration -->
|
||||
<entry key="AZURE_STORAGE_CONNECTION_STRING" value="xOQGJhDT6sqOGyTohS7K5dMgGNlryuaQSg8dNCJ40sdGpYok5T5Z88M3xVlk39oeFKiQdGYCihqC+AStBsoBPw==" />
|
||||
<entry key="AZURE_STORAGE_CONTAINER_NAME" value="eventhub-checkpoints" />
|
||||
|
||||
<!-- Notification Configuration -->
|
||||
<entry key="NOTIFICATION_FROM_EMAIL" value="noreply@hgzero.com" />
|
||||
<entry key="NOTIFICATION_FROM_NAME" value="HGZero" />
|
||||
<entry key="NOTIFICATION_RETRY_MAX_ATTEMPTS" value="3" />
|
||||
<entry key="NOTIFICATION_RETRY_INITIAL_INTERVAL" value="1000" />
|
||||
<entry key="NOTIFICATION_RETRY_MULTIPLIER" value="2.0" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEB" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_MAIL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL_TYPE" value="TRACE" />
|
||||
<entry key="LOG_FILE" value="logs/notification-service.log" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value=":notification:bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@ -2,6 +2,11 @@ bootJar {
|
||||
archiveFileName = 'notification.jar'
|
||||
}
|
||||
|
||||
bootRun {
|
||||
// 환경 변수를 Spring Boot 애플리케이션에 전달
|
||||
environment = System.getenv()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Email
|
||||
implementation 'org.springframework.boot:spring-boot-starter-mail'
|
||||
@ -9,6 +14,16 @@ dependencies {
|
||||
// Thymeleaf for email templates
|
||||
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
|
||||
|
||||
// Spring Retry
|
||||
implementation 'org.springframework.retry:spring-retry'
|
||||
implementation 'org.springframework:spring-aspects'
|
||||
|
||||
// Azure Blob Storage
|
||||
implementation "com.azure:azure-storage-blob:${azureBlobVersion}"
|
||||
|
||||
// Azure Event Hubs
|
||||
implementation "com.azure:azure-messaging-eventhubs:${azureEventHubsVersion}"
|
||||
|
||||
// Azure Event Hubs Checkpoint Store
|
||||
implementation "com.azure:azure-messaging-eventhubs-checkpointstore-blob:${azureEventHubsCheckpointVersion}"
|
||||
}
|
||||
|
||||
1935
notification/logs/notification-service.log
Normal file
1935
notification/logs/notification-service.log
Normal file
File diff suppressed because it is too large
Load Diff
@ -129,7 +129,7 @@ public class NotificationResponse {
|
||||
@Schema(description = "발송 일시", example = "2025-01-23T10:05:00")
|
||||
private LocalDateTime sentAt;
|
||||
|
||||
@Schema(description = "실패 사유", example = null)
|
||||
@Schema(description = "실패 사유", example = "")
|
||||
private String errorMessage;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.unicorn.hgzero.notification.event;
|
||||
|
||||
import com.azure.messaging.eventhubs.models.EventContext;
|
||||
import com.azure.messaging.eventhubs.models.EventData;
|
||||
import com.azure.messaging.eventhubs.models.PartitionEvent;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.unicorn.hgzero.notification.event.event.MeetingCreatedEvent;
|
||||
import com.unicorn.hgzero.notification.event.event.TodoAssignedEvent;
|
||||
@ -27,7 +26,7 @@ import java.util.function.Consumer;
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class EventHandler implements Consumer<EventContext> {
|
||||
public class EventHandler implements Consumer<PartitionEvent> {
|
||||
|
||||
private final NotificationService notificationService;
|
||||
private final ObjectMapper objectMapper;
|
||||
@ -36,13 +35,14 @@ public class EventHandler implements Consumer<EventContext> {
|
||||
/**
|
||||
* Event Hub 이벤트 처리
|
||||
*
|
||||
* @param eventContext Event Hub 이벤트 컨텍스트
|
||||
* @param partitionEvent Event Hub 파티션 이벤트
|
||||
*/
|
||||
@Override
|
||||
public void accept(EventContext eventContext) {
|
||||
EventData eventData = eventContext.getEventData();
|
||||
|
||||
public void accept(PartitionEvent partitionEvent) {
|
||||
try {
|
||||
// 이벤트 데이터 추출
|
||||
var eventData = partitionEvent.getData();
|
||||
|
||||
// 이벤트 속성 추출
|
||||
Map<String, Object> properties = eventData.getProperties();
|
||||
String topic = (String) properties.get("topic");
|
||||
@ -63,8 +63,9 @@ public class EventHandler implements Consumer<EventContext> {
|
||||
}
|
||||
|
||||
// 체크포인트 업데이트 (처리 성공 시)
|
||||
eventContext.updateCheckpoint();
|
||||
log.info("이벤트 처리 완료 및 체크포인트 업데이트");
|
||||
// TODO: Azure Event Hubs 5.x API에 맞게 체크포인트 업데이트 구현 필요
|
||||
// partitionEvent.getPartitionContext().updateCheckpointAsync().block();
|
||||
log.info("이벤트 처리 완료");
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("이벤트 처리 중 오류 발생", e);
|
||||
|
||||
@ -1,52 +1,92 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="stt-service" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
|
||||
<module name="stt.main" />
|
||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.unicorn.hgzero.stt.SttApplication" />
|
||||
<option name="ACTIVE_PROFILES" value="dev" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<envs>
|
||||
<!-- Database Configuration -->
|
||||
<env name="DB_HOST" value="4.230.65.89" />
|
||||
<env name="DB_NAME" value="sttdb" />
|
||||
<env name="DB_USERNAME" value="hgzerouser" />
|
||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
<env name="DB_PORT" value="5432" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<env name="SERVER_PORT" value="8084" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<env name="REDIS_HOST" value="20.249.177.114" />
|
||||
<env name="REDIS_PORT" value="6379" />
|
||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<env name="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<env name="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<env name="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<env name="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<env name="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<env name="LOG_FILE" value="logs/stt-service.log" />
|
||||
|
||||
<!-- API Keys -->
|
||||
<env name="CLAUDE_API_KEY" value="sk-ant-ap..." />
|
||||
<env name="OPENAI_API_KEY" value="sk-proj-An4Q..." />
|
||||
<env name="OPENWEATHER_API_KEY" value="1aa5b..." />
|
||||
<env name="KAKAO_API_KEY" value="5cdc24...." />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<env name="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<env name="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
</envs>
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
<configuration default="false" name="stt-service" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<!-- Database Configuration -->
|
||||
<entry key="DB_KIND" value="postgresql" />
|
||||
<entry key="DB_HOST" value="4.230.65.89" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_NAME" value="sttdb" />
|
||||
<entry key="DB_USERNAME" value="hgzerouser" />
|
||||
<entry key="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<entry key="SHOW_SQL" value="true" />
|
||||
<entry key="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<entry key="REDIS_HOST" value="20.249.177.114" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<entry key="REDIS_DATABASE" value="2" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<entry key="SERVER_PORT" value="8084" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="JWT_ACCESS_TOKEN_VALIDITY" value="3600" />
|
||||
<entry key="JWT_REFRESH_TOKEN_VALIDITY" value="604800" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<entry key="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
|
||||
<!-- Azure Speech Service Configuration -->
|
||||
<entry key="AZURE_SPEECH_SUBSCRIPTION_KEY" value="" />
|
||||
<entry key="AZURE_SPEECH_REGION" value="eastus" />
|
||||
<entry key="AZURE_SPEECH_LANGUAGE" value="ko-KR" />
|
||||
|
||||
<!-- Azure Blob Storage Configuration -->
|
||||
<entry key="AZURE_BLOB_CONNECTION_STRING" value="" />
|
||||
<entry key="AZURE_BLOB_CONTAINER_NAME" value="recordings" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<entry key="EVENTHUB_NAME" value="transcription-events" />
|
||||
<entry key="AZURE_EVENTHUB_CONSUMER_GROUP" value="$Default" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEB" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEBSOCKET" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL_TYPE" value="TRACE" />
|
||||
<entry key="LOG_FILE" value="logs/stt-service.log" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value=":stt:bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@ -37,26 +37,43 @@ def get_project_root():
|
||||
def parse_run_configurations(project_root, service_name=None):
|
||||
"""Parse run configuration files from .run directories"""
|
||||
configurations = {}
|
||||
|
||||
|
||||
if service_name:
|
||||
# Parse specific service configuration
|
||||
run_config_path = project_root / service_name / '.run' / f'{service_name}.run.xml'
|
||||
if run_config_path.exists():
|
||||
config = parse_single_run_config(run_config_path, service_name)
|
||||
if config:
|
||||
configurations[service_name] = config
|
||||
# Try multiple file name patterns
|
||||
run_dir = project_root / service_name / '.run'
|
||||
if run_dir.exists():
|
||||
# Pattern 1: {service_name}.run.xml
|
||||
run_config_path = run_dir / f'{service_name}.run.xml'
|
||||
if not run_config_path.exists():
|
||||
# Pattern 2: {service_name}-service.run.xml
|
||||
run_config_path = run_dir / f'{service_name}-service.run.xml'
|
||||
if not run_config_path.exists():
|
||||
# Pattern 3: Find any .run.xml file
|
||||
xml_files = list(run_dir.glob('*.run.xml'))
|
||||
if xml_files:
|
||||
run_config_path = xml_files[0]
|
||||
|
||||
if run_config_path.exists():
|
||||
config = parse_single_run_config(run_config_path, service_name)
|
||||
if config:
|
||||
configurations[service_name] = config
|
||||
else:
|
||||
print(f"[ERROR] Cannot find run configuration in: {run_dir}")
|
||||
else:
|
||||
print(f"[ERROR] Cannot find run configuration: {run_config_path}")
|
||||
print(f"[ERROR] Cannot find .run directory: {run_dir}")
|
||||
else:
|
||||
# Find all service directories
|
||||
service_dirs = ['user-service', 'location-service', 'trip-service', 'ai-service']
|
||||
service_dirs = ['user-service', 'location-service', 'trip-service', 'ai-service', 'meeting']
|
||||
for service in service_dirs:
|
||||
run_config_path = project_root / service / '.run' / f'{service}.run.xml'
|
||||
if run_config_path.exists():
|
||||
config = parse_single_run_config(run_config_path, service)
|
||||
if config:
|
||||
configurations[service] = config
|
||||
|
||||
run_dir = project_root / service / '.run'
|
||||
if run_dir.exists():
|
||||
xml_files = list(run_dir.glob('*.run.xml'))
|
||||
if xml_files:
|
||||
config = parse_single_run_config(xml_files[0], service)
|
||||
if config:
|
||||
configurations[service] = config
|
||||
|
||||
return configurations
|
||||
|
||||
|
||||
@ -65,25 +82,43 @@ def parse_single_run_config(config_path, service_name):
|
||||
try:
|
||||
tree = ET.parse(config_path)
|
||||
root = tree.getroot()
|
||||
|
||||
|
||||
# Find configuration element
|
||||
config = root.find('.//configuration[@type="GradleRunConfiguration"]')
|
||||
if config is None:
|
||||
print(f"[WARNING] No Gradle configuration found in {config_path}")
|
||||
return None
|
||||
|
||||
# Extract environment variables
|
||||
|
||||
# Extract externalProjectPath
|
||||
external_project_path = None
|
||||
external_settings = config.find('.//ExternalSystemSettings')
|
||||
if external_settings is not None:
|
||||
external_path_option = external_settings.find('.//option[@name="externalProjectPath"]')
|
||||
if external_path_option is not None:
|
||||
external_project_path = external_path_option.get('value')
|
||||
|
||||
# Extract environment variables from new format
|
||||
env_vars = {}
|
||||
env_option = config.find('.//option[@name="env"]')
|
||||
if env_option is not None:
|
||||
env_map = env_option.find('map')
|
||||
if env_map is not None:
|
||||
for entry in env_map.findall('entry'):
|
||||
key = entry.get('key')
|
||||
value = entry.get('value')
|
||||
if key and value:
|
||||
env_vars[key] = value
|
||||
|
||||
envs_element = config.find('.//envs')
|
||||
if envs_element is not None:
|
||||
for env in envs_element.findall('env'):
|
||||
key = env.get('name')
|
||||
value = env.get('value')
|
||||
if key and value:
|
||||
env_vars[key] = value
|
||||
|
||||
# Also try old format
|
||||
if not env_vars:
|
||||
env_option = config.find('.//option[@name="env"]')
|
||||
if env_option is not None:
|
||||
env_map = env_option.find('map')
|
||||
if env_map is not None:
|
||||
for entry in env_map.findall('entry'):
|
||||
key = entry.get('key')
|
||||
value = entry.get('value')
|
||||
if key and value:
|
||||
env_vars[key] = value
|
||||
|
||||
# Extract task names
|
||||
task_names = []
|
||||
task_names_option = config.find('.//option[@name="taskNames"]')
|
||||
@ -94,16 +129,17 @@ def parse_single_run_config(config_path, service_name):
|
||||
value = option.get('value')
|
||||
if value:
|
||||
task_names.append(value)
|
||||
|
||||
|
||||
if env_vars or task_names:
|
||||
return {
|
||||
'env_vars': env_vars,
|
||||
'task_names': task_names,
|
||||
'config_path': str(config_path)
|
||||
'config_path': str(config_path),
|
||||
'external_project_path': external_project_path
|
||||
}
|
||||
|
||||
|
||||
return None
|
||||
|
||||
|
||||
except ET.ParseError as e:
|
||||
print(f"[ERROR] XML parsing error in {config_path}: {e}")
|
||||
return None
|
||||
@ -129,24 +165,51 @@ def get_gradle_command(project_root):
|
||||
def run_service(service_name, config, project_root):
|
||||
"""Run service"""
|
||||
print(f"[START] Starting {service_name} service...")
|
||||
|
||||
|
||||
# Set environment variables
|
||||
env = os.environ.copy()
|
||||
for key, value in config['env_vars'].items():
|
||||
env[key] = value
|
||||
print(f" [ENV] {key}={value}")
|
||||
|
||||
|
||||
# Determine if this is a subproject
|
||||
subproject_name = None
|
||||
working_dir = project_root
|
||||
|
||||
if config.get('external_project_path'):
|
||||
# Replace $PROJECT_DIR$ with actual project root
|
||||
external_path = config['external_project_path'].replace('$PROJECT_DIR$', str(project_root))
|
||||
external_path_obj = Path(external_path)
|
||||
|
||||
# Check if external path is a subdirectory of project root
|
||||
try:
|
||||
relative = external_path_obj.relative_to(project_root)
|
||||
# If it's a subdirectory, it's likely a subproject
|
||||
if str(relative) != '.':
|
||||
subproject_name = str(relative).split('/')[0]
|
||||
print(f"[INFO] Detected subproject: {subproject_name}")
|
||||
except ValueError:
|
||||
# Not a subdirectory, use as working directory
|
||||
working_dir = external_path_obj
|
||||
print(f"[INFO] Using external project path: {working_dir}")
|
||||
|
||||
# Prepare Gradle command
|
||||
gradle_cmd = get_gradle_command(project_root)
|
||||
|
||||
|
||||
# Execute tasks
|
||||
for task_name in config['task_names']:
|
||||
print(f"\n[RUN] Executing: {task_name}")
|
||||
|
||||
cmd = [gradle_cmd, task_name]
|
||||
|
||||
# If subproject detected, prefix task name
|
||||
if subproject_name:
|
||||
prefixed_task = f":{subproject_name}:{task_name}"
|
||||
print(f"\n[RUN] Executing: {prefixed_task} (subproject: {subproject_name})")
|
||||
else:
|
||||
prefixed_task = task_name
|
||||
print(f"\n[RUN] Executing: {task_name}")
|
||||
|
||||
cmd = [gradle_cmd, prefixed_task]
|
||||
|
||||
try:
|
||||
# Execute from project root directory
|
||||
# Execute from project root
|
||||
process = subprocess.Popen(
|
||||
cmd,
|
||||
cwd=project_root,
|
||||
@ -158,24 +221,24 @@ def run_service(service_name, config, project_root):
|
||||
encoding='utf-8',
|
||||
errors='replace'
|
||||
)
|
||||
|
||||
|
||||
print(f"[CMD] Command: {' '.join(cmd)}")
|
||||
print(f"[DIR] Working directory: {project_root}")
|
||||
print("=" * 50)
|
||||
|
||||
|
||||
# Real-time output
|
||||
for line in process.stdout:
|
||||
print(line.rstrip())
|
||||
|
||||
|
||||
# Wait for process completion
|
||||
process.wait()
|
||||
|
||||
|
||||
if process.returncode == 0:
|
||||
print(f"\n[SUCCESS] {task_name} execution completed")
|
||||
else:
|
||||
print(f"\n[FAILED] {task_name} execution failed (exit code: {process.returncode})")
|
||||
return False
|
||||
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print(f"\n[STOP] Interrupted by user")
|
||||
process.terminate()
|
||||
@ -183,7 +246,7 @@ def run_service(service_name, config, project_root):
|
||||
except Exception as e:
|
||||
print(f"\n[ERROR] Execution error: {e}")
|
||||
return False
|
||||
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
@ -1,8 +1,69 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="user-service" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<!-- Database Configuration -->
|
||||
<entry key="DB_KIND" value="postgresql" />
|
||||
<entry key="DB_HOST" value="20.214.121.121" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_NAME" value="userdb" />
|
||||
<entry key="DB_USERNAME" value="hgzerouser" />
|
||||
<entry key="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<entry key="SHOW_SQL" value="true" />
|
||||
<entry key="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<entry key="REDIS_HOST" value="20.249.177.114" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<entry key="REDIS_DATABASE" value="0" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<entry key="SERVER_PORT" value="8081" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="JWT_ACCESS_TOKEN_VALIDITY" value="3600" />
|
||||
<entry key="JWT_REFRESH_TOKEN_VALIDITY" value="604800" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<entry key="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
|
||||
<!-- External API Keys -->
|
||||
<entry key="CLAUDE_API_KEY" value="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" />
|
||||
<entry key="OPENAI_API_KEY" value="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" />
|
||||
<entry key="OPENWEATHER_API_KEY" value="1aa5bfca079a20586915b56f29235cc0" />
|
||||
<entry key="KAKAO_API_KEY" value="094feac895a3e4a6d7ffa66d877bf48f" />
|
||||
|
||||
<!-- LDAP Configuration -->
|
||||
<entry key="LDAP_URLS" value="ldaps://ldap.example.com:636" />
|
||||
<entry key="LDAP_BASE" value="dc=example,dc=com" />
|
||||
<entry key="LDAP_USERNAME" value="" />
|
||||
<entry key="LDAP_PASSWORD" value="" />
|
||||
<entry key="LDAP_USER_DN_PATTERN" value="uid={0},ou=people" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<entry key="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<entry key="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEB" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL_TYPE" value="TRACE" />
|
||||
<entry key="LOG_FILE" value="logs/user-service.log" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$/user" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
@ -10,54 +71,27 @@
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="bootRun" />
|
||||
<option value=":user:bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" value="" />
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
<envs>
|
||||
<!-- Database Configuration -->
|
||||
<env name="DB_HOST" value="20.214.121.121" />
|
||||
<env name="DB_NAME" value="userdb" />
|
||||
<env name="DB_USERNAME" value="hgzerouser" />
|
||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
<env name="DB_PORT" value="5432" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<env name="REDIS_HOST" value="20.249.177.114" />
|
||||
<env name="REDIS_PORT" value="6379" />
|
||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<env name="SERVER_PORT" value="8081" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<env name="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<env name="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<env name="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<env name="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<env name="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<env name="LOG_FILE" value="logs/user-service.log" />
|
||||
|
||||
<!-- API Keys -->
|
||||
<env name="CLAUDE_API_KEY" value="sk-ant-ap..." />
|
||||
<env name="OPENAI_API_KEY" value="sk-proj-An4Q..." />
|
||||
<env name="OPENWEATHER_API_KEY" value="1aa5b..." />
|
||||
<env name="KAKAO_API_KEY" value="5cdc24...." />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<env name="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<env name="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
</envs>
|
||||
</configuration>
|
||||
</component>
|
||||
249
user/logs/user-service.log
Normal file
249
user/logs/user-service.log
Normal file
@ -0,0 +1,249 @@
|
||||
2025-10-23 23:18:40 [main] INFO c.u.hgzero.user.UserApplication - Starting UserApplication using Java 23 with PID 88982 (/Users/daewoong/home/workspace/HGZero/user/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/user)
|
||||
2025-10-23 23:18:40 [main] DEBUG c.u.hgzero.user.UserApplication - Running with Spring Boot v3.3.0, Spring v6.1.8
|
||||
2025-10-23 23:18:40 [main] INFO c.u.hgzero.user.UserApplication - The following 1 profile is active: "dev"
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 64 ms. Found 1 JPA repository interface.
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data LDAP repositories in DEFAULT mode.
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data LDAP - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.user.repository.jpa.UserRepository; If you want this repository to be a LDAP repository, consider annotating your entities with one of these annotations: org.springframework.ldap.odm.annotations.Entry (preferred), or consider extending one of the following types with your repository: org.springframework.data.ldap.repository.LdapRepository
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 LDAP repository interfaces.
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.user.repository.jpa.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-23 23:18:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 1 ms. Found 0 Redis repository interfaces.
|
||||
2025-10-23 23:18:41 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8081 (http)
|
||||
2025-10-23 23:18:41 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-10-23 23:18:41 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24]
|
||||
2025-10-23 23:18:41 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-10-23 23:18:41 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 915 ms
|
||||
2025-10-23 23:18:41 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
|
||||
2025-10-23 23:18:41 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final
|
||||
2025-10-23 23:18:41 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@35841d6
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@35841d6
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@35841d6
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@5e9ea380
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@5e9ea380
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@1e50eb3f
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@1e50eb3f
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@12e3f4ae
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@12e3f4ae
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@537451d5
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@537451d5
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@537451d5
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@785d6a98
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@785d6a98
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@785d6a98
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@614d7fbf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@614d7fbf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@6c06b1bc
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@1d8dbf10
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@1d8dbf10
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@e171f93
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@4ad3969
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@5d7ff311
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@5d7ff311
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@5d7ff311
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@2d7aa291
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@2d7aa291
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@2d7aa291
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@1ba7db2a
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@1ba7db2a
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@1ba7db2a
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@762cdf46
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@762cdf46
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@762cdf46
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@54e94de9
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@54e94de9
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@54e94de9
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@2cff03cf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@2cff03cf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@924f3f1
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@924f3f1
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@19e2db7c
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@19e2db7c
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@19e2db7c
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@77a4bac
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@534fc1f7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@534fc1f7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@7d5a0b14
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@72ec16f8
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@72ec16f8
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@72ec16f8
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@279e1422
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@af3295f
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@27dc81be
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@3595086b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@3595086b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@627d35ff
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@627d35ff
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@7157413e
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@3245efdb
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@2f0e7fa8
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@24d7657b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@6f428e6e
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@72e49f6a
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@2e4b5da1
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@2e4b5da1
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@312819ae
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@312819ae
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@4ae2c01b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@4ae2c01b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@1cab19e2
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@1cab19e2
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@6879e983
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@6879e983
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@196d684b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@45d38165
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@1f3f434
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@1f3f434
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@26612078
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@54bc3bcf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@d3d5094
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@13714753
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@13714753
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3c3cd7a5
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@96be1ae
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@6eb5b9e7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@6eb5b9e7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@77e730bd
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@77e730bd
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@2d3c501b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@2d3c501b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@2d3c501b
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@7b8cb283
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@7b8cb283
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@7b8cb283
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@38b54694
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@7619fbe7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@39ead1b7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@39ead1b7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@27ec74a3
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@27ec74a3
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@27ec74a3
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@35ff072c
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@c0004b7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@63880be9
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@63880be9
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@27053257
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@27053257
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@27053257
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@6a0e97fc
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@6a0e97fc
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@662713b6
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@662713b6
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@45539bd8
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@45539bd8
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@4bca8eaf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@4bca8eaf
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@55e5415d
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@55e5415d
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@b8142f4
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@52d59507
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@3155f190
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3155f190
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@75aa7703
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@79777da7
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@5e05a706
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@7831d1aa
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@3a69014e
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@27746c5e
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@543ac221
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@2270f58d
|
||||
2025-10-23 23:18:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@50e1f3fc
|
||||
2025-10-23 23:18:41 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer
|
||||
2025-10-23 23:18:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2025-10-23 23:18:41 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@8ee1404
|
||||
2025-10-23 23:18:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2025-10-23 23:18:42 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@35d2312f) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1b26fac2)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@54a033b8) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@62dfe152)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT))
|
||||
2025-10-23 23:18:42 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT))
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@19355a56
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@19355a56
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@3155f190`
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3095d06b] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@51aaa9d4]
|
||||
2025-10-23 23:18:42 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
|
||||
2025-10-23 23:18:42 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3095d06b] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@34538ffe]
|
||||
2025-10-23 23:18:42 [main] DEBUG org.hibernate.SQL -
|
||||
create table users (
|
||||
user_id varchar(50) not null,
|
||||
created_at timestamp(6) not null,
|
||||
updated_at timestamp(6) not null,
|
||||
authority varchar(20) not null,
|
||||
email varchar(100) not null,
|
||||
failed_login_attempts integer not null,
|
||||
last_login_at timestamp(6),
|
||||
locked boolean not null,
|
||||
locked_at timestamp(6),
|
||||
username varchar(100) not null,
|
||||
primary key (user_id)
|
||||
)
|
||||
2025-10-23 23:18:42 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@34538ffe] for TypeConfiguration
|
||||
2025-10-23 23:18:42 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-23 23:18:42 [main] INFO o.s.l.c.s.AbstractContextSource - Property 'userDn' not set - anonymous context will be used for read-only operations
|
||||
2025-10-23 23:18:42 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
|
||||
2025-10-23 23:18:42 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration -
|
||||
|
||||
Using generated security password: a78745b6-fe1a-402b-98b9-a24e8402b7e4
|
||||
|
||||
This generated password is for development use only. Your security configuration must be updated before running your application in production.
|
||||
|
||||
2025-10-23 23:18:42 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
|
||||
2025-10-23 23:18:43 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator'
|
||||
2025-10-23 23:18:43 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@7e199cec, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5d965dbd, org.springframework.security.web.context.SecurityContextHolderFilter@2a47fb5d, org.springframework.security.web.header.HeaderWriterFilter@14484887, org.springframework.web.filter.CorsFilter@649df002, org.springframework.security.web.authentication.logout.LogoutFilter@53a65166, com.unicorn.hgzero.user.config.jwt.JwtAuthenticationFilter@6cd7d05, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@ffd26d1, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@58d9cd6, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@34817fcc, org.springframework.security.web.session.SessionManagementFilter@379ddab2, org.springframework.security.web.access.ExceptionTranslationFilter@255845b1, org.springframework.security.web.access.intercept.AuthorizationFilter@9353d68]
|
||||
2025-10-23 23:18:43 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8081 (http) with context path '/'
|
||||
2025-10-23 23:18:43 [main] INFO c.u.hgzero.user.UserApplication - Started UserApplication in 3.076 seconds (process running for 3.225)
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.html
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-1] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.html
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.css
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui.css
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-initializer.js
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-standalone-preset.js
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-3] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-2] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-bundle.js
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-6] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-5] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.css
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui.css
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-initializer.js
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-standalone-preset.js
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-4] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-bundle.js
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-8] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/favicon-32x32.png
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs/swagger-config
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-8] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-7] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-8] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/favicon-32x32.png
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs/swagger-config
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.ui.SwaggerConfigResource.openapiJson 호출 - 파라미터: [SecurityContextHolderAwareRequestWrapper[ org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@2eb30a0b]]
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.ui.SwaggerConfigResource.openapiJson 완료 - 실행시간: 0ms
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-9] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.api.OpenApiWebMvcResource.openapiJson 호출 - 파라미터: [SecurityContextHolderAwareRequestWrapper[ org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@6b5c51c], /v3/api-docs, ko_KR]
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-9] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 137 ms
|
||||
2025-10-23 23:19:10 [http-nio-8081-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.api.OpenApiWebMvcResource.openapiJson 완료 - 실행시간: 145ms
|
||||
2025-10-23 23:19:16 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-23 23:19:16 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@34538ffe] for TypeConfiguration
|
||||
2025-10-23 23:19:16 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@1bbd218b] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@34538ffe]
|
||||
2025-10-23 23:19:16 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
|
||||
2025-10-23 23:19:16 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
|
||||
Loading…
x
Reference in New Issue
Block a user