Project/teamProject1 / / 2025. 4. 5. 14:19

[spring boot3]application.properties VS application.yml

Spring Boot 등 프레임워크 설정 파일인 application.propertiesapplication.yml 비교.

 


1. application.properties

 

  • 형식: Key-Value 쌍 (key=value 또는 key:value).
  • 구조: 점(.)을 이용한 계층 표현 (예: spring.datasource.url).
  • 특징:
    • 전통적 Java Properties 형식, 익숙함.
    • 단순한 Key-Value 구조, 이해 쉬움.
    • 계층 깊어지면 Key 반복으로 가독성 저하 가능성 있음.
    • 리스트는 인덱스 사용 필요 (예: my.list[0]=a).
  • 예시:
      server.port=8080
      spring.datasource.url=jdbc:mysql://localhost:3306/mydb
      spring.datasource.username=user
      my.list[0]=apple
      my.list[1]=banana

2. application.yml (또는 application.yaml)

 

  • 형식: YAML (들여쓰기 기반 계층 구조, 공백 사용).
  • 구조: 들여쓰기로 자연스러운 계층 구조 표현.
  • 특징:
    • JSON보다 사람 친화적, 가독성 높음.
    • Key 중복 없이 간결하게 표현 가능.
    • 복잡한 설정 구조 표현에 유리함.
    • 리스트는 -, 맵은 Key: Value 형태로 직관적 표현.
    • 들여쓰기에 민감, 오류 발생 가능성 있음 (주의 필요).
    • --- 구분자로 한 파일 내 여러 프로파일 정의 가능.
  • 예시:
      server:
        port: 8080
      spring:
        datasource:
          url: jdbc:mysql://localhost:3306/mydb
          username: user
      my:
        list:
          - apple
          - banana

3. 비교 요약

 

  항목 application.properties application.yml
형식 Key-Value 쌍 YAML (들여쓰기 기반)
구조 표현 점(.) 이용, 평면적 들여쓰기 이용, 계층적
가독성 단순 설정 좋음, 복잡 시 저하 복잡한 설정 좋음
간결성 Key 중복 발생 가능 간결함 (Key 중복 최소화)
리스트/맵 인덱스 사용 등 다소 불편 직관적 표현 (-, Map 형식)
오류 가능성 상대적 낮음 (Key 오타 등) 들여쓰기 오류에 민감
프로파일 파일 분리 파일 분리 또는 ---로 한 파일 관리

 


4. 장단점

 

  • application.properties
    • 장점: 단순/명확, 익숙함, 들여쓰기 오류 없음.
    • 단점: 복잡 시 가독성 저하, Key 중복, 리스트/맵 표현 불편.
  • application.yml
    • 장점: 계층 구조/가독성 우수, 간결함, 리스트/맵 편리, 멀티 프로파일 관리 용이.
    • 단점: 들여쓰기 민감 (오류 가능성), YAML 문법 학습 필요.

 


5. 선택 가이드

 

  • 단순 설정 / YAML 비선호 시: .properties 가 유리함.
  • 복잡 설정 / 가독성 / 간결성 중시 시: .yml 이 유리함 (최근 선호도 증가 추세).
  • 참고: Spring Boot는 두 형식 모두 지원하며 혼용 가능 (일반적으로 .yml 우선 적용).

 


결론: 프로젝트 특성, 설정 복잡도, 팀 선호도에 따라 적합한 형식 선택 필요.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유