✅ application.properties vs application.yml
Spring Boot에서는 애플리케이션 설정을 application.properties 또는 application.yml 파일에 저장할 수 있습니다.
두 방식은 동일한 기능을 제공하지만, 문법과 가독성이 다릅니다.
1. application.properties (속성 파일)
- 키=값 형식으로 설정
- 단순하고 직관적이지만, 계층 구조 표현이 어렵다.
📍 예제 (application.properties)
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
logging.level.root=info
logging.level.org.springframework=debug
🔹 특징
✔ 설정이 한 줄씩 명확하게 보임
✔ 유지보수가 쉬움 (작은 설정 파일에 적합)
❌ 계층 구조 표현이 어렵고 가독성이 떨어짐
2. application.yml (YAML 파일)
- key: value 형식과 들여쓰기로 계층 구조를 표현
- 가독성이 좋고 유지보수하기 쉬움
📍 예제 (application.yml)
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
logging:
level:
root: info
org.springframework: debug
🔹 특징
✔ 계층 구조 표현이 가능하여 가독성이 좋음
✔ JSON과 유사하여 직관적
❌ 공백이나 들여쓰기 실수 시 오류 발생 가능
3. application.properties → application.yml 변환 예제
application.properties |
application.yml |
server.port=8080 |
server: port: 8080 |
spring.datasource.url=jdbc:mysql://localhost:3306/mydb |
spring: datasource: url: jdbc:mysql://localhost:3306/mydb |
logging.level.root=info |
logging: level: root: info |
✔ .yml은 . 대신 들여쓰기 사용
✔ 계층 구조 표현이 가능
4. 어느 것을 사용해야 할까?
기준 |
application.properties |
application.yml |
문법 |
key=value (간단한 설정) |
key: value (계층형 구조 표현 가능) |
가독성 |
설정이 많아지면 복잡함 |
가독성이 좋음 |
유지보수 |
계층 구조 표현이 어려움 |
설정이 많을수록 유리 |
오류 가능성 |
단순한 문법, 오류 적음 |
들여쓰기 실수 가능 |
✔ 간단한 설정만 있다면 application.properties
✔ 설정이 많고 계층 구조가 필요하면 application.yml 추천
Spring Boot에서 application.properties와 application.yml 파일이 동시에 존재하면, 둘 다 로드됩니다.
우선순위: application.properties가 application.yml을 덮어씀
- 즉, 같은 설정이 두 파일에 존재할 경우, application.properties의 값이 최종 적용됩니다.
- 하지만, 두 파일에 서로 다른 설정이 있다면 두 파일의 설정이 합쳐집니다.
🎯 정리
- application.properties → 간단한 설정, 한 줄씩 설정하기 편리함
- application.yml → 계층 구조 표현이 가능, 가독성이 좋음
- application.yml이 더 직관적이므로 최근에는 YAML을 선호하는 추세! 🚀