From 6cc9b54ba9a1bb4fdda3ae5decb973040aea1ac7 Mon Sep 17 00:00:00 2001 From: dean Date: Wed, 1 Apr 2026 08:55:17 +0900 Subject: [PATCH] welcome --- .../cd/training/config/StartupLogger.java | 2 +- .../model/ModelTrainDetailApiController.java | 2 +- .../service/ModelTrainDetailService.java | 2 +- .../model/service/ModelTrainMngService.java | 9 +- .../train/service/DataSetCountersService.java | 8 +- .../train/service/DockerTrainService.java | 25 ++- .../service/JobRecoveryOnStartupService.java | 2 +- .../service/ModelTestMetricsJobService.java | 2 +- .../service/ModelTrainMetricsJobService.java | 2 +- .../train/service/TmpDatasetService.java | 11 +- .../train/service/TrainJobService.java | 2 +- src/main/resources/application-dev.yml | 121 ++++++-------- src/main/resources/application-prod.yml | 115 +++++-------- src/main/resources/application.yml | 151 ++++++++++-------- src/test/resources/application.yml | 151 +++++++++--------- 15 files changed, 280 insertions(+), 325 deletions(-) diff --git a/src/main/java/com/kamco/cd/training/config/StartupLogger.java b/src/main/java/com/kamco/cd/training/config/StartupLogger.java index 0ae3e53..0ad17df 100644 --- a/src/main/java/com/kamco/cd/training/config/StartupLogger.java +++ b/src/main/java/com/kamco/cd/training/config/StartupLogger.java @@ -57,7 +57,7 @@ public class StartupLogger { """ ╔════════════════════════════════════════════════════════════════════════════════╗ - ║ 🚀 APPLICATION STARTUP INFORMATION 2 ║ + ║ 🚀 APPLICATION STARTUP INFORMATION 3 ║ ╠════════════════════════════════════════════════════════════════════════════════╣ ║ PROFILE CONFIGURATION ║ ╠────────────────────────────────────────────────────────────────────────────────╣ diff --git a/src/main/java/com/kamco/cd/training/model/ModelTrainDetailApiController.java b/src/main/java/com/kamco/cd/training/model/ModelTrainDetailApiController.java index a967a7a..5fc9c8c 100644 --- a/src/main/java/com/kamco/cd/training/model/ModelTrainDetailApiController.java +++ b/src/main/java/com/kamco/cd/training/model/ModelTrainDetailApiController.java @@ -48,7 +48,7 @@ public class ModelTrainDetailApiController { private final ModelTrainDetailService modelTrainDetailService; private final RangeDownloadResponder rangeDownloadResponder; - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; @Operation(summary = "모델학습관리> 모델관리 > 상세정보탭 > 학습 진행정보", description = "학습 진행정보, 모델학습 정보 API") diff --git a/src/main/java/com/kamco/cd/training/model/service/ModelTrainDetailService.java b/src/main/java/com/kamco/cd/training/model/service/ModelTrainDetailService.java index f5be480..882e5e6 100644 --- a/src/main/java/com/kamco/cd/training/model/service/ModelTrainDetailService.java +++ b/src/main/java/com/kamco/cd/training/model/service/ModelTrainDetailService.java @@ -53,7 +53,7 @@ public class ModelTrainDetailService { private final ModelTrainDetailCoreService modelTrainDetailCoreService; private final ModelTrainMngCoreService mngCoreService; - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; /** diff --git a/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java b/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java index 813fca3..b87b034 100644 --- a/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java +++ b/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java @@ -46,11 +46,14 @@ public class ModelTrainMngService { private final TrainJobService trainJobService; private final ModelTrainDetailService modelTrainDetailService; - @Value("${train.docker.basePath}") + @Value("${train.docker.base_path}") private String basePath; - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; + @Value("${train.docker.symbolic_link_dir}") + private String symbolicDir; + /** * 모델학습 조회 @@ -80,7 +83,7 @@ public class ModelTrainMngService { } // ===== 2. 경로 생성 ===== - Path tmpBase = Path.of(basePath, "tmp").toAbsolutePath().normalize(); + Path tmpBase = Path.of(symbolicDir).toAbsolutePath().normalize(); Path tmp = tmpBase.resolve(model.getRequestPath()).normalize(); Path responseBase = Paths.get(responseDir).toAbsolutePath().normalize(); diff --git a/src/main/java/com/kamco/cd/training/train/service/DataSetCountersService.java b/src/main/java/com/kamco/cd/training/train/service/DataSetCountersService.java index 2e5be23..1282fe0 100644 --- a/src/main/java/com/kamco/cd/training/train/service/DataSetCountersService.java +++ b/src/main/java/com/kamco/cd/training/train/service/DataSetCountersService.java @@ -23,11 +23,11 @@ import org.springframework.stereotype.Service; public class DataSetCountersService { private final ModelTrainMngCoreService modelTrainMngCoreService; - @Value("${train.docker.requestDir}") + @Value("${train.docker.request_dir}") private String requestDir; - @Value("${train.docker.basePath}") - private String trainBaseDir; + @Value("${train.docker.symbolic_link_dir}") + private String symbolicDir; public String getCount(Long modelId) { ModelTrainMngDto.Basic basic = modelTrainMngCoreService.findModelById(modelId); @@ -45,7 +45,7 @@ public class DataSetCountersService { } // tmp - Path tmpPath = Path.of(trainBaseDir, "tmp", basic.getRequestPath()); + Path tmpPath = Path.of(symbolicDir, basic.getRequestPath()); // 차이나는거 diffMergedRequestsVsTmp(uids, tmpPath); diff --git a/src/main/java/com/kamco/cd/training/train/service/DockerTrainService.java b/src/main/java/com/kamco/cd/training/train/service/DockerTrainService.java index eff4972..7cd8ebc 100644 --- a/src/main/java/com/kamco/cd/training/train/service/DockerTrainService.java +++ b/src/main/java/com/kamco/cd/training/train/service/DockerTrainService.java @@ -31,27 +31,26 @@ public class DockerTrainService { private String image; // 학습 요청 데이터가 위치한 호스트 디렉토리 - @Value("${train.docker.requestDir}") + @Value("${train.docker.request_dir}") private String requestDir; // 학습 결과가 저장될 호스트 디렉토리 - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; - // 컨테이너 이름 prefix - @Value("${train.docker.containerPrefix}") - private String containerPrefix; - // 공유메모리 사이즈 설정 (대용량 학습시 필요) - @Value("${train.docker.shmSize:16g}") + @Value("${train.docker.shm_size:16g}") private String shmSize; // data 경로 request,response 상위 폴더 - @Value("${train.docker.basePath}") + @Value("${train.docker.base_path}") private String basePath; + @Value("${train.docker.symbolic_link_dir}") + private String symbolicDir; + // IPC host 사용 여부 - @Value("${train.docker.ipcHost:true}") + @Value("${train.docker.ipc_host:true}") private boolean ipcHost; @Value("${spring.profiles.active}") @@ -260,12 +259,12 @@ public class DockerTrainService { c.add("NCCL_SOCKET_IFNAME=eth0"); // 요청/결과 디렉토리 볼륨 마운트 -// c.add("-v"); -// c.add(basePath + ":" + basePath); // 심볼릭 링크와 연결되는 실제 파일 경로도 마운트를 해줘야 함 c.add("-v"); - c.add(basePath + "/tmp:/data"); + c.add(basePath + ":" + basePath); // 심볼릭 링크와 연결되는 실제 파일 경로도 마운트를 해줘야 함 c.add("-v"); - c.add(responseDir + ":/checkpoints"); + c.add(symbolicDir + ":/data"); //요청할경로 + c.add("-v"); + c.add(responseDir + ":/checkpoints"); //저장될경로 // 표준입력 유지 (-it 대신 -i만 사용) c.add("-i"); diff --git a/src/main/java/com/kamco/cd/training/train/service/JobRecoveryOnStartupService.java b/src/main/java/com/kamco/cd/training/train/service/JobRecoveryOnStartupService.java index f7b8387..d35422b 100644 --- a/src/main/java/com/kamco/cd/training/train/service/JobRecoveryOnStartupService.java +++ b/src/main/java/com/kamco/cd/training/train/service/JobRecoveryOnStartupService.java @@ -50,7 +50,7 @@ public class JobRecoveryOnStartupService { * *

컨테이너가 --rm 으로 삭제된 경우에도 이 경로에 val.csv / *.pth 등이 남아있으면 정상 종료 여부를 "파일 기반"으로 판정합니다. */ - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; /** diff --git a/src/main/java/com/kamco/cd/training/train/service/ModelTestMetricsJobService.java b/src/main/java/com/kamco/cd/training/train/service/ModelTestMetricsJobService.java index 632d2be..22c2d58 100644 --- a/src/main/java/com/kamco/cd/training/train/service/ModelTestMetricsJobService.java +++ b/src/main/java/com/kamco/cd/training/train/service/ModelTestMetricsJobService.java @@ -42,7 +42,7 @@ public class ModelTestMetricsJobService { private String profile; // 학습 결과가 저장될 호스트 디렉토리 - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; @Value("${file.pt-path}") diff --git a/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java b/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java index 0a893fd..ad65e14 100644 --- a/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java +++ b/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java @@ -33,7 +33,7 @@ public class ModelTrainMetricsJobService { private String profile; // 학습 결과가 저장될 호스트 디렉토리 - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; /** 결과 csv 파일 정보 등록 */ diff --git a/src/main/java/com/kamco/cd/training/train/service/TmpDatasetService.java b/src/main/java/com/kamco/cd/training/train/service/TmpDatasetService.java index f1fd395..505325d 100644 --- a/src/main/java/com/kamco/cd/training/train/service/TmpDatasetService.java +++ b/src/main/java/com/kamco/cd/training/train/service/TmpDatasetService.java @@ -14,12 +14,11 @@ import org.springframework.stereotype.Service; @RequiredArgsConstructor public class TmpDatasetService { - @Value("${train.docker.requestDir}") + @Value("${train.docker.request_dir}") private String requestDir; - @Value("${train.docker.basePath}") - private String trainBaseDir; - + @Value("${train.docker.symbolic_link_dir}") + private String symbolicDir; /** * train, val, test 폴더별로 link * @@ -36,7 +35,7 @@ public class TmpDatasetService { throw new IOException("links is empty"); } - Path tmp = Path.of(trainBaseDir, "tmp", uid); + Path tmp = Path.of(symbolicDir, uid); long linksMade = 0; @@ -115,7 +114,7 @@ public class TmpDatasetService { log.info("requestDir(raw)={}", requestDir); Path BASE = toPath(requestDir); - Path tmp = Path.of(trainBaseDir, "tmp", uid); + Path tmp = Path.of(symbolicDir, uid); log.info("BASE={}", BASE); log.info("BASE exists? {}", Files.isDirectory(BASE)); diff --git a/src/main/java/com/kamco/cd/training/train/service/TrainJobService.java b/src/main/java/com/kamco/cd/training/train/service/TrainJobService.java index 050b6c7..020f265 100644 --- a/src/main/java/com/kamco/cd/training/train/service/TrainJobService.java +++ b/src/main/java/com/kamco/cd/training/train/service/TrainJobService.java @@ -40,7 +40,7 @@ public class TrainJobService { private final DataSetCountersService dataSetCounters; // 학습 결과가 저장될 호스트 디렉토리 - @Value("${train.docker.responseDir}") + @Value("${train.docker.response_dir}") private String responseDir; public Long getModelIdByUuid(UUID uuid) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 0f0bb54..f4df370 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,72 +1,49 @@ -spring: - config: - activate: - on-profile: dev - - jpa: - show-sql: true - hibernate: - ddl-auto: validate - properties: - hibernate: - default_batch_fetch_size: 100 # ✅ 성능 - N+1 쿼리 방지 - order_updates: true # ✅ 성능 - 업데이트 순서 정렬로 데드락 방지 - use_sql_comments: true # ⚠️ 선택 - SQL에 주석 추가 (디버깅용) - format_sql: true # ⚠️ 선택 - SQL 포맷팅 (가독성) - - datasource: - url: jdbc:postgresql://192.168.2.127:15432/kamco_training_db - username: kamco_training_user - password: kamco_training_user_2025_!@# - hikari: - minimum-idle: 10 - maximum-pool-size: 20 - connection-timeout: 60000 # 60초 연결 타임아웃 - idle-timeout: 300000 # 5분 유휴 타임아웃 - max-lifetime: 1800000 # 30분 최대 수명 - leak-detection-threshold: 60000 # 연결 누수 감지 - - transaction: - default-timeout: 300 # 5분 트랜잭션 타임아웃 - - -jwt: - secret: "kamco_token_dev_dfc6446d-68fc-4eba-a2ff-c80a14a0bf3a" - access-token-validity-in-ms: 86400000 # 1일 - refresh-token-validity-in-ms: 604800000 # 7일 - -token: - refresh-cookie-name: kamco-dev # 개발용 쿠키 이름 - refresh-cookie-secure: false # 로컬 http 테스트면 false - -springdoc: - swagger-ui: - persist-authorization: true # 스웨거 새로고침해도 토큰 유지, 로컬스토리지에 저장 - -member: - init_password: kamco1234! - -swagger: - local-port: 8080 - -file: - sync-root-dir: /app/original-images/ - sync-tmp-dir: ${file.sync-root-dir}tmp/ - sync-file-extention: tfw,tif - - dataset-dir: /home/kcomu/data/request/ - dataset-tmp-dir: ${file.dataset-dir}tmp/ - - pt-path: /home/kcomu/data/response/v6-cls-checkpoints/ - pt-FileName: yolov8_6th-6m.pt - -train: - docker: - image: kamco-cd-train:latest - requestDir: /home/kcomu/data/request - responseDir: /home/kcomu/data/response - basePath: /home/kcomu/data - containerPrefix: kamco-cd-train - shmSize: 16g - ipcHost: true - +spring: + config: + activate: + on-profile: dev + + jpa: + show-sql: true + properties: + hibernate: + use_sql_comments: true # ⚠️ 선택 - SQL에 주석 추가 (디버깅용) + format_sql: true # ⚠️ 선택 - SQL 포맷팅 (가독성) + + datasource: + url: jdbc:postgresql://192.168.2.127:15432/kamco_training_db + username: kamco_training_user + password: kamco_training_user_2025_!@# + hikari: + minimum-idle: 10 + maximum-pool-size: 20 + +jwt: + secret: "kamco_token_dev_dfc6446d-68fc-4eba-a2ff-c80a14a0bf3a" + access-token-validity-in-ms: 86400000 # 1일 + refresh-token-validity-in-ms: 604800000 # 7일 + +token: + refresh-cookie-name: kamco-dev # 개발용 쿠키 이름 + refresh-cookie-secure: false # 로컬 http 테스트면 false + +swagger: + local-port: 8080 + +file: + dataset-dir: /home/kcomu/data/request/ + dataset-tmp-dir: ${file.dataset-dir}tmp/ + + pt-path: /home/kcomu/data/response/v6-cls-checkpoints/ + pt-FileName: yolov8_6th-6m.pt + +train: + docker: + image: kamco-cd-train:latest + base_path: /home/kcomu/data + request_dir: ${train.docker.base_path}/request + response_dir: ${train.docker.base_path}/response + symbolic_link_dir: ${train.docker.base_path}/tmp + container_prefix: kamco-cd-train + shm_size: 16g + ipc_host: true diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 7e0127c..efb3140 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,72 +1,43 @@ -spring: - config: - activate: - on-profile: prod - - jpa: - show-sql: false # 운영 환경에서는 성능을 위해 비활성화 - hibernate: - ddl-auto: validate - properties: - hibernate: - default_batch_fetch_size: 100 # N+1 쿼리 방지 - order_updates: true # 업데이트 순서 정렬로 데드락 방지 - - datasource: - url: jdbc:postgresql://kamco-cd-train-db:5432/kamco_training_db - username: kamco_training_user - password: kamco_training_user_2025_!@# - hikari: - minimum-idle: 10 - maximum-pool-size: 20 - connection-timeout: 60000 # 60초 연결 타임아웃 - idle-timeout: 300000 # 5분 유휴 타임아웃 - max-lifetime: 1800000 # 30분 최대 수명 - leak-detection-threshold: 60000 # 연결 누수 감지 - - transaction: - default-timeout: 300 # 5분 트랜잭션 타임아웃 - -jwt: - # ⚠️ 운영 환경에서는 반드시 별도의 강력한 시크릿 키를 사용하세요 - secret: "kamco_token_prod_CHANGE_THIS_TO_SECURE_SECRET_KEY" - access-token-validity-in-ms: 86400000 # 1일 - refresh-token-validity-in-ms: 604800000 # 7일 - -token: - refresh-cookie-name: kamco - refresh-cookie-secure: true # HTTPS 환경에서 필수 - -springdoc: - swagger-ui: - persist-authorization: true # 스웨거 새로고침해도 토큰 유지, 로컬스토리지에 저장 - -member: - init_password: kamco1234! - -swagger: - local-port: 9080 - -file: -# sync-root-dir: /app/original-images/ -# sync-tmp-dir: ${file.sync-root-dir}tmp/ -# sync-file-extention: tfw,tif - - dataset-dir: /data/request/ - dataset-tmp-dir: ${file.dataset-dir}tmp/ - - pt-path: /data/response/v6-cls-checkpoints/ - pt-FileName: yolov8_6th-6m.pt - -train: - docker: - image: kamco-cd-train:latest - requestDir: /data/request - responseDir: /data/response - basePath: /data - containerPrefix: kamco-cd-train - shmSize: 16g - ipcHost: true - - - +spring: + config: + activate: + on-profile: prod + + datasource: + url: jdbc:postgresql://kamco-cd-train-db:5432/kamco_training_db + username: kamco_training_user + password: kamco_training_user_2025_!@# + hikari: + minimum-idle: 10 + maximum-pool-size: 20 + +jwt: + # ⚠️ 운영 환경에서는 반드시 별도의 강력한 시크릿 키를 사용하세요 + secret: "kamco_token_prod_CHANGE_THIS_TO_SECURE_SECRET_KEY" + access-token-validity-in-ms: 86400000 # 1일 + refresh-token-validity-in-ms: 604800000 # 7일 + +token: + refresh-cookie-name: kamco + refresh-cookie-secure: true # HTTPS 환경에서 필수 + +swagger: + local-port: 9080 + +file: + dataset-dir: /data/training/request/ + dataset-tmp-dir: ${file.dataset-dir}tmp/ + + pt-path: /data/training/response/v6-cls-checkpoints/ + pt-FileName: yolov8_6th-6m.pt + +train: + docker: + image: kamco-cd-train:latest + base_path: /data/training + request_dir: ${train.docker.base_path}/request + response_dir: ${train.docker.base_path}/response + symbolic_link_dir: ${train.docker.base_path}/tmp + container_prefix: kamco-cd-train + shm_size: 16g + ipc_host: true diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f540f45..7271ba1 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,71 +1,80 @@ -server: - port: 8080 - -spring: - application: - name: kamco-training-api - profiles: - active: dev # 사용할 프로파일 지정 (ex. dev, prod, test) - - datasource: - driver-class-name: org.postgresql.Driver - hikari: - minimum-idle: 2 - maximum-pool-size: 2 - connection-timeout: 20000 - idle-timeout: 300000 - max-lifetime: 1800000 - leak-detection-threshold: 60000 - - jpa: - hibernate: - ddl-auto: update # 스키마 자동 관리 활성화 - properties: - hibernate: - javax: - persistence: - validation: - mode: none - jdbc: - batch_size: 50 - default_batch_fetch_size: 100 - show-sql: false - - servlet: - multipart: - enabled: true - max-file-size: 10GB - max-request-size: 10GB -logging: - level: - org: - springframework: - web: INFO - security: INFO - root: INFO - - - -# actuator -management: - health: - readinessstate: - enabled: true - livenessstate: - enabled: true - diskspace: - enabled: true - endpoint: - health: - probes: - enabled: true - show-details: when-authorized - endpoints: - jmx: - exposure: - exclude: "*" - web: - base-path: /monitor - exposure: - include: - - "health" +server: + port: 8080 + +spring: + application: + name: kamco-training-api + profiles: + active: dev # 사용할 프로파일 지정 (ex. dev, prod, test) + + datasource: + driver-class-name: org.postgresql.Driver + hikari: + connection-timeout: 60000 # 60초 연결 타임아웃 + idle-timeout: 300000 # 5분 유휴 타임아웃 + max-lifetime: 1800000 # 30분 최대 수명 + leak-detection-threshold: 60000 # 연결 누수 감지 + # minimum-idle, maximum-pool-size 는 프로파일별 설정 + + jpa: + hibernate: + ddl-auto: validate + properties: + hibernate: + jakarta: + persistence: + validation: + mode: none + jdbc: + batch_size: 50 + default_batch_fetch_size: 100 + order_updates: true + show-sql: false + + servlet: + multipart: + enabled: true + max-file-size: 10GB + max-request-size: 10GB + + transaction: + default-timeout: 300 # 5분 트랜잭션 타임아웃 + +logging: + level: + org: + springframework: + web: INFO + security: INFO + root: INFO + +springdoc: + swagger-ui: + persist-authorization: true # 스웨거 새로고침해도 토큰 유지 + +member: + init_password: kamco1234! + +# actuator +management: + health: + readinessstate: + enabled: true + livenessstate: + enabled: true + diskspace: + enabled: true + endpoint: + health: + probes: + enabled: true + show-details: when-authorized + endpoints: + jmx: + exposure: + exclude: "*" + web: + base-path: /monitor + exposure: + include: + - "health" diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index bf7b307..d61d11e 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -1,77 +1,74 @@ -server: - port: 8080 - -spring: - application: - name: kamco-training-api - - datasource: - driver-class-name: org.postgresql.Driver - url: jdbc:postgresql://localhost:15432/kamco_training_db - username: kamco_cds - password: kamco_cds_Q!W@E#R$ - hikari: - minimum-idle: 2 - maximum-pool-size: 2 - connection-timeout: 20000 - idle-timeout: 300000 - max-lifetime: 1800000 - leak-detection-threshold: 60000 - - jpa: - hibernate: - ddl-auto: none # 테스트 환경에서는 DDL 자동 생성/수정 비활성화 - properties: - hibernate: - hbm2ddl: - auto: none - javax: - persistence: - validation: - mode: none - jdbc: - batch_size: 50 - default_batch_fetch_size: 100 - show-sql: false - -logging: - level: - org: - springframework: - web: DEBUG - security: DEBUG - root: INFO - -management: - health: - readinessstate: - enabled: true - livenessstate: - enabled: true - endpoint: - health: - probes: - enabled: true - show-details: always - endpoints: - jmx: - exposure: - exclude: "*" - web: - base-path: /monitor - exposure: - include: - - "health" - -jwt: - secret: "test_secret_key_for_testing_purposes_only" - access-token-validity-in-ms: 86400000 - refresh-token-validity-in-ms: 604800000 - -token: - refresh-cookie-name: kamco-test - refresh-cookie-secure: false - -member: - init_password: test1234! - +server: + port: 8080 + +spring: + application: + name: kamco-training-api + + datasource: + driver-class-name: org.postgresql.Driver + url: jdbc:postgresql://localhost:15432/kamco_training_db + username: kamco_cds + password: kamco_cds_Q!W@E#R$ + hikari: + minimum-idle: 2 + maximum-pool-size: 2 + connection-timeout: 20000 + idle-timeout: 300000 + max-lifetime: 1800000 + leak-detection-threshold: 60000 + + jpa: + hibernate: + ddl-auto: none # 테스트 환경에서는 DDL 자동 생성/수정 비활성화 + properties: + hibernate: + jakarta: + persistence: + validation: + mode: none + jdbc: + batch_size: 50 + default_batch_fetch_size: 100 + show-sql: false + +logging: + level: + org: + springframework: + web: DEBUG + security: DEBUG + root: INFO + +management: + health: + readinessstate: + enabled: true + livenessstate: + enabled: true + endpoint: + health: + probes: + enabled: true + show-details: always + endpoints: + jmx: + exposure: + exclude: "*" + web: + base-path: /monitor + exposure: + include: + - "health" + +jwt: + secret: "test_secret_key_for_testing_purposes_only" + access-token-validity-in-ms: 86400000 + refresh-token-validity-in-ms: 604800000 + +token: + refresh-cookie-name: kamco-test + refresh-cookie-secure: false + +member: + init_password: test1234!