application.properties와 application.yml은 모두 Spring Boot 애플리케이션에서 설정을 구성하기 위한 파일입니다.
이 두 파일은 동일한 목적을 가지지만, 구성 형식과 구문에서 차이가 있습니다.
1. 형식 및 구문 차이
application.properties
• 형식: 키-값 쌍으로 설정을 정의합니다.
• 구문: 각 설정 항목을 한 줄에 정의하며, .(닷) 표기법을 사용합니다.
예시:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
server.port=8080
logging.level.org.springframework=DEBUG
application.yml
• 형식: YAML 형식을 사용하여 설정을 정의합니다.
• 구문: 들여쓰기를 사용하여 계층 구조를 표현합니다.
예시:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: secret
server:
port: 8080
logging:
level:
org:
springframework: DEBUG
2. 주요 차이점
• 가독성: application.yml 파일은 YAML 형식을 사용하여 계층 구조를 명확하게 표현할 수 있어 가독성이 좋습니다. 반면에 application.properties는 단순한 키-값 쌍을 사용하여 간단한 설정을 선호하는 경우 유용합니다.
• 구조 표현: application.yml 파일은 복잡한 구조와 다중 계층 설정을 보다 명확하게 표현할 수 있습니다. application.properties 파일은 복잡한 구조를 표현할 때 다소 제한적일 수 있습니다.
• 멀티 프로파일 설정: Spring Boot에서 프로파일 기반 설정을 구성할 때, application.yml은 더 간결하게 표현할 수 있습니다.
3. 예시 비교
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
# Profile-specific properties
spring.profiles.active=dev
# Dev profile
spring.datasource.url=jdbc:mysql://localhost:3306/mydb_dev
spring.datasource.username=dev_user
spring.datasource.password=dev_secret
# Prod profile
spring.datasource.url=jdbc:mysql://localhost:3306/mydb_prod
spring.datasource.username=prod_user
spring.datasource.password=prod_secret
application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: secret
spring:
profiles:
active: dev
---
spring:
config:
activate:
on-profile: dev
datasource:
url: jdbc:mysql://localhost:3306/mydb_dev
username: dev_user
password: dev_secret
---
spring:
config:
activate:
on-profile: prod
datasource:
url: jdbc:mysql://localhost:3306/mydb_prod
username: prod_user
password: prod_secret
4. 선택 기준
• 단순한 설정: 간단한 애플리케이션 설정을 선호하는 경우 application.properties가 더 적합할 수 있습니다.
• 복잡한 계층 구조: 계층 구조와 복잡한 설정을 쉽게 관리하려면 application.yml이 더 적합합니다.
• 개인 선호: 개인이나 팀의 선호도에 따라 선택할 수 있습니다. 일부 개발자는 application.yml의 가독성을 선호할 수 있으며, 다른 개발자는 application.properties의 단순함을 선호할 수 있습니다.
요약
• application.properties: 키-값 쌍 형식으로 간단한 구문을 사용하여 설정을 정의합니다.
• application.yml: YAML 형식을 사용하여 계층 구조를 명확하게 표현할 수 있습니다.
• 선택은 주로 애플리케이션의 복잡성, 개인 또는 팀의 선호도에 따라 결정됩니다.
다양한 산업과 커뮤니티에서 YAML 형식의 선호도가 증가하고 있으며, 공식 Spring Boot 문서와 예제에서도 application.yml을 사용하는 경향이 있습니다. 또한, YAML은 다른 도구와의 호환성(예: Kubernetes 설정) 측면에서도 장점이 있습니다.
그래서 저는 application.yml을 선택!
'Framework > Spring' 카테고리의 다른 글
[Spring] RESTful API 컨트롤러의 @GetMapping 에서 데이터를 받는 방법 (0) | 2024.07.03 |
---|---|
[Spring] Spring Boot 기본, 자주 사용하는 어노테이션 (애너테이션) (0) | 2024.07.02 |
[Spring Boot] application.yml이란? application.yml 설정 방법 (0) | 2024.06.29 |
[Spring] message.yml 이란? 사용 목적, 사용 예시 (0) | 2024.06.29 |
[Spring] @Controller와 @RestController의 차이 (0) | 2024.06.29 |