Spring Boot를 사용할 때 가장 먼저 마주치는 것 중 하나가 바로 application.properties
와 application.yml
설정입니다. 둘 다 프로젝트의 설정을 관리하는 데 쓰이지만, 형식과 활용 방식에서 차이가 있습니다.
두 설정 파일의 차이점, 각각의 장단점, 실제 사용 예시를 경험적으로 정리해보겠습니다.
1. 공통점: 둘 다 환경 설정 파일
- Spring Boot 애플리케이션이 시작될 때 로딩되는 설정 파일
- 포트, DB 연결 정보, 로그 레벨, 외부 API 키 등 주요 설정을 지정
application.properties
는 기본 포맷,application.yml
은 YAML 포맷을 따름
2. application.properties 예시
프로퍼티 기반의 설정은 key=value
방식으로 단순하며, 적은 양의 설정에는 매우 직관적입니다.
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
logging.level.org.springframework=DEBUG
장점
- 한눈에 보기 쉬움
- 간단한 설정에는 가장 빠른 접근
단점
- 중첩 구조 표현이 복잡
- 배열, 리스트 타입 표현이 불편
3. application.yml 예시
YAML
포맷은 들여쓰기를 통해 구조적인 데이터를 표현할 수 있어 복잡한 설정에 적합합니다.
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: secret
logging:
level:
org.springframework: DEBUG
장점
- 구조화된 설정에 강함 (중첩, 배열)
- Spring Cloud와의 통합에도 주로 사용
단점
- 들여쓰기 오류로 인한 디버깅 어려움
- 간단한 설정에도 불필요하게 길어질 수 있음
4. 어떤 포맷을 써야 할까?
실무에서는 개인이나 팀의 선호, 프로젝트 복잡도, DevOps 도구 연계 여부에 따라 선택합니다.
- 간단한 프로젝트:
application.properties
- 복잡한 설정/다중 환경 분리:
application.yml
중요한 건 포맷보다 설정의 명확성과 유지 보수성입니다.
5. profile별 설정 분리
Spring Boot는 환경별 설정을 아래와 같이 분리할 수 있습니다.
application-dev.yml
application-prod.properties
그리고 실행 시 --spring.profiles.active=prod
로 지정하면 해당 설정이 자동으로 적용됩니다.
6. 결론
프로젝트의 성격과 팀의 경험에 따라 유연하게 properties
와 yml
을 선택하시는 것을 추천합니다.
개인적으로는 단순할 땐 properties, 복잡하거나 계층 구조가 필요한 설정은 yml을 선호합니다.
'개발 > JAVA' 카테고리의 다른 글
Spring에서 Controller, Service, Repository 계층 구조란? (0) | 2025.09.17 |
---|---|
Spring Boot로 Hello World REST API 만들기 (0) | 2025.09.16 |
Spring Boot 프로젝트 구조 이해하기: 실무 중심 가이드 (0) | 2025.09.13 |
Gradle vs Maven 빌드 도구 비교 및 설정 가이드 (1) | 2025.09.12 |
IntelliJ IDEA로 Spring Boot 프로젝트 시작하기: 실무 개발자의 노하우 정리 (0) | 2025.09.11 |