Skip to content

4.3. 설정 관리

4.3.1. application.yml 구조

application.yml을 기본 설정 파일로 사용하며, 프로파일별 설정은 application-{profile}.yml로 분리합니다.

src/main/resources/
├── application.yml             # 공통 설정
├── application-local.yml       # 로컬 개발
├── application-dev.yml         # 개발 서버
├── application-staging.yml     # 스테이징
└── application-prod.yml        # 프로덕션

4.3.2. 공통 설정 예시

yaml
spring:
  application:
    name: flowin-api
  profiles:
    active: local

  # 데이터소스 공통 설정
  datasource:
    hikari:
      connection-timeout: 30000
      idle-timeout: 600000
      max-lifetime: 1800000
      leak-detection-threshold: 60000

  # jOOQ
  jooq:
    sql-dialect: postgres

  # Flyway
  flyway:
    enabled: true
    locations: classpath:db/migration
    validate-on-migrate: true

server:
  port: 8080
  servlet:
    context-path: /api

logging:
  level:
    root: INFO
    com.tienipia: DEBUG

참고

데이터소스 접속 정보(URL, 사용자명, 비밀번호)와 HikariCP pool-size 설정은 프로파일별 설정 파일에서 관리합니다. 상세 내용은 데이터베이스 표준 문서를 참고합니다.

4.3.3. @ConfigurationProperties 사용

커스텀 설정값은 @Value 대신 @ConfigurationProperties를 사용하여 타입 안전한 설정 바인딩을 적용합니다.

java
@ConfigurationProperties(prefix = "app.storage")
public record StorageProperties(
    String uploadPath,
    long maxFileSize,
    List<String> allowedExtensions
) {}
yaml
app:
  storage:
    upload-path: /data/uploads
    max-file-size: 10485760
    allowed-extensions:
      - pdf
      - png
      - jpg

TIENIPIA QUALIFIED STANDARD