반응형
🤔 서론
나는 설정 파일을 application.properties만 써봤다. 필요하다면 application-prod.properties나 application-dev.properties 등을 추가로 만들었을 뿐 큰 변화가 없었다. 헌데 최근 들어 설정 파일을 yml 타입으로 사용하는 사람들이 보이기 시작했다. properties랑 yml이 어떤 차이가 있을지 왜 yml을 선호하는 건지 궁금해서 찾아보게 되었다.
📑 .properties 예제
spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/test
spring.datasource.hikari.username=sa
spring.datasource.hikari.password=
# 리스트
my.servers[0]=dev.example.com
my.servers[1]=another.example.com
📑 .yml 예제
spring:
datasource:
url: jdbc:log4jdbc:mariadb://localhost:3306/test
hikari:
username: sa
password:
# 리스트 1
my:
servers: [dev.example.com, another.example.com]
# 리스트 2
my:
servers:
- dev.example.com
- another.example.com
💥 .properties vs .yml
.properties | YAML (.yml) | |
명세서 존재 | X. (가장 유사한 문서로는 javadoc) |
O. (yaml 명세서) |
어느 언어에서 사용되는가? | 주로 Java | Python, Ruby, Java 등 |
계층 구조 | 비계층적 | 계층적 |
Spring - @PropertySource 지원 | O | X |
profile 여러개 사용 | Spring Boot 2.4부터 구분 가능 |
한 파일에서 구분 가능 |
(Spring에서 YAML에 대해 @PropertySource를 직접 지원하지 않더라도 직접 PropertySourceFactory를 구현하는 방법도 있다. 👉 https://www.baeldung.com/spring-yaml-propertysource )
어떤 것을 사용해야할까?
- .yml이 다양한 타입을 지원해주고 계층 구조를 지원해준다는 장점이 크다
- Spring을 사용한다면 YAML이 제공하는 기능들을 효과적으로 처리해줌
👉 다른 언어 또는 여러 애플리케이션에서 읽어야 하는 파일이라면 yml이 유리하다. 하지만 Spring에서만 사용한다면? 반드시 yml을 사용해야한다고 고집할 필요는 없다. 회사/팀 컨벤션을 따르거나 자신이 읽기 편한 것을 선택하면 될듯!
출처
반응형
'Develop > etc' 카테고리의 다른 글
[GitHub] PR 리뷰 막기 (feat: draft) (1) | 2022.07.14 |
---|---|
[GitHub] 깃허브로 토이 프로젝트 시작하기 (2) | 2022.07.09 |
No newline at end of file 에러 (0) | 2022.06.26 |
[IntelliJ] 편하게 디버깅하기 (2) | 2022.06.18 |
OS 환경 변수로 중요한 설정 정보 숨기기 (2) | 2022.06.08 |