SpringBoot/스프링 부트 프로젝트 생성

application.properties vs application.yml

DEVLIB 2025. 4. 14. 10:21
728x90

application.properties vs application.yml

항목
application.properties application.yml
형식 Key-Value 쌍 (평면 구조) YAML 문법 (계층 구조)
가독성 단순, 짧고 익숙한 형식 들여쓰기로 구조 표현이 쉬움
다중 프로필 관리 .properties 파일을 여러 개 생성 한 파일에서 프로필 구분 가능
복잡한 설정 표현이 복잡해짐 계층적 표현이 간결
학습 곡선 쉬움 들여쓰기 오류 주의 필요
스프링 지원 완벽 지원 완벽 지원

예제 비교

1. application.properties 예제

server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=pass
logging.level.org.springframework=DEBUG

2. application.yml 예제

server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: pass

logging:
  level:
    org.springframework: DEBUG

YAML은 계층적 구성이라 설정 항목이 많을수록 더 깔끔하게 정리할 수 있습니다.


다중 프로필 구성 예

application.properties 방식

# application.properties
spring.profiles.active=dev

# application-dev.properties
server.port=8080

# application-prod.properties
server.port=80

application.yml 방식

spring:
  profiles:
    active: dev

---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8080

---
spring:
  config:
    activate:
      on-profile: prod
server:
  port: 80

yml은 한 파일에서 여러 프로필을 나눌 수 있어 환경에 따라 설정 분기가 쉬움


지킴이의 추천

상황 추천 형식
설정 항목이 적고 단순함 application.properties
설정이 많고 계층적으로 표현하고 싶음 application.yml
협업 중이고 설정이 복잡함 application.yml (가독성 ↑)
YAML 문법이 낯설다면 처음엔 properties, 익숙해지면 yml 전환도 좋아요

요약

  • application.properties: 단순하고 익숙함, 평면적 구조
  • application.yml: 복잡한 설정에 유리, 계층 구조로 깔끔함
  • 둘 다 완벽하게 지원되며, 동시에 사용할 수도 있음 (단, yml이 우선순위)
LIST