Spring Boot로 초간단 프로젝트를 진행할 일이 있어서 spring initializr에서 Gradle + Java 21 + Spring Boot 4.0.0으로 기본셋 구성 후 파일을 받았는데, application.properties 파일이 기본으로 생성되어 있는게 아닌가?
개인적으로 yml(yaml) 파일이 반복적인 타이핑 없어서 선호하는 관계로 application.properties 파일을 application.yml파일로 변환하려고 찾아보니, spring boot는 *.properties / *.yml 모두 지원하니 그냥 형식에 맞게 변환 ㄱㄱ 하면서 간략히 요약 정리.

1. Properties와 YML 파일의 차이점
- Properties: 키-값 쌍으로 구성된 단순 텍스트 파일 (예: key=value).
- YML: 계층적 구조를 지원하는 가독성 높은 데이터 직렬화 형식 (YAML Ain’t Markup Language).
- 변환 이유: YML은 계층 구조 표현이 용이하고, 스프링 부트 등에서 기본 지원.
2. 변환 방법
(1) 수동 변환
- Properties 파일 확인: 예를 들어, application.properties:
server.port=8080 spring.application.name=testApp spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username={id} spring.datasource.password={pwd}
- YML 구조로 변환: 계층 구조를 반영해 application.yml 작성:
server: port: 8080 spring: application: name: testApp datasource: url: jdbc:mysql://localhost:3306/test username: {id} password: {pwd}
- 주의사항:
- Properties의 점(.)은 YML에서 계층을 나타내는 들여쓰기로 변환.
- YML은 공백에 민감하므로, 2칸 들여쓰기를 준수.
- 리스트는 하이픈(-)으로 표현 (예: list: – item1 – item2).
(2) 자동 변환 도구
- 온라인 변환기: https://mageddo.com/tools/yaml-converter 같은 웹사이트 활용.
- IDE 플러그인: IntelliJ IDEA에서 Properties to YAML Converter 플러그인 설치 후 변환.
3. 변환 시 주의사항
- 키 이름 충돌: Properties는 중복 키를 허용하나, YML은 허용하지 않음.
- 특수 문자: Properties에서 사용된 특수 문자는 YML에서 이스케이프 처리.
- 스프링 부트 호환성: YML 파일은 application.yml로 저장해 스프링 부트에서 자동 인식.
- 검증: 변환 후 YML 파일을 yamllint로 유효성 검사.