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