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