본문 바로가기
스프링 부트3

YAML 파일로 스프링 부트 3 설정 관리

by 굿센스굿 2024. 12. 5.
반응형

 

스프링 부트 3에서 YAML 파일은 애플리케이션의 설정을 관리하는 데 매우 유용한 형식입니다. 기존의 application.properties 파일보다 가독성이 좋고 계층적 데이터를 표현하기에 적합한 YAML은 특히 복잡한 설정을 관리할 때 유리합니다. 이번 글에서는 YAML 파일을 사용하는 방법과 스프링 부트 3에서의 활용법, 그리고 실제 사례를 통해 YAML 설정 관리의 유용성을 살펴보겠습니다.


1. YAML 파일의 기본 구조

YAML은 키-값 쌍과 들여쓰기를 사용하여 계층 구조를 표현합니다. 이를 통해 JSON보다 더 간결하게 데이터를 구성할 수 있습니다. 아래는 YAML 파일의 기본 예제입니다:

server:
  port: 8080
  servlet:
    context-path: /api
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: user
    password: pass

위 예제는 server와 spring.datasource 설정을 포함하고 있습니다. 계층 구조를 통해 연관된 설정을 한눈에 파악할 수 있습니다.


2. 스프링 부트 3에서 YAML 파일 설정하기

스프링 부트 3에서 기본적으로 application.yml 파일을 통해 설정을 관리할 수 있습니다. 이 파일은 src/main/resources 경로에 위치하며, 애플리케이션의 실행 시 기본 설정 파일로 로드됩니다.

프로파일별 설정 관리

스프링 부트 3에서는 프로파일에 따라 다른 설정을 적용할 수 있습니다. 다음은 application.yml 파일에서 프로파일을 설정하는 예입니다:

spring:
  profiles:
    active: dev
---
spring:
  profiles: dev
  datasource:
    url: jdbc:mysql://localhost:3306/devdb
    username: dev_user
    password: dev_pass
---
spring:
  profiles: prod
  datasource:
    url: jdbc:mysql://localhost:3306/proddb
    username: prod_user
    password: prod_pass

위의 설정에서는 spring.profiles.active 값을 dev로 설정하여 개발 환경에 맞는 설정이 적용됩니다.


3. YAML 파일 활용 사례

1) 데이터베이스 설정

아래는 데이터베이스 연결 설정을 YAML로 관리하는 방법입니다:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mydb
    username: admin
    password: admin123

이 설정은 Spring DataSource가 데이터베이스와 연결하는 데 필요한 정보를 제공합니다.

2) 로깅 설정

스프링 부트 3에서는 로깅 설정도 YAML 파일로 관리할 수 있습니다:

logging:
  level:
    root: INFO
    com.example: DEBUG
  file:
    name: application.log

이 설정은 애플리케이션의 로그 레벨과 파일 이름을 지정합니다.

3) 외부 API 연동 설정

외부 API와의 연동 정보를 YAML로 관리하면 코드에서 직접 하드코딩하지 않아도 됩니다:

external:
  api:
    base-url: https://api.example.com
    timeout: 5000
    api-key: abc123xyz

위 설정은 API 요청 시 필요한 URL과 타임아웃, API 키를 제공합니다.


4. YAML 설정 파일의 장점

  1. 가독성
    들여쓰기를 통해 계층 구조를 쉽게 파악할 수 있습니다.
  2. 프로파일 관리의 유연성
    환경별로 다른 설정을 YAML 파일 한 곳에서 관리할 수 있습니다.
  3. 배포 효율성
    애플리케이션 설정을 외부화하여 코드 변경 없이 설정만으로 배포가 가능합니다.

5. 주의 사항

  1. 들여쓰기 오류
    YAML은 들여쓰기에 민감합니다. 잘못된 들여쓰기는 파일 파싱 오류를 유발할 수 있습니다.
  2. 보안 관리
    민감한 정보(예: 비밀번호, API 키 등)는 암호화하거나 환경 변수로 분리하여 관리하는 것이 좋습니다.
  3. 파일 구조의 복잡성
    설정이 많아지면 파일이 복잡해질 수 있으므로 논리적으로 정리하는 것이 중요합니다.

6. 결론

스프링 부트 3에서 YAML 파일은 설정 관리를 단순화하고 효율성을 높이는 데 매우 유용합니다. 계층적 데이터 구조, 프로파일 기반 관리, 가독성 등 YAML의 다양한 장점을 적극적으로 활용해 보세요.
예제에서 살펴본 것처럼 데이터베이스, 로깅, 외부 API 설정 등을 YAML로 정리하면 유지보수성이 크게 향상됩니다. YAML 파일을 효과적으로 사용하여 스프링 부트 프로젝트를 한 단계 더 발전시켜 보시기 바랍니다!

반응형