Language/Spring

[SpringBoot] application.yml, application.properties 차이점 정리 및 사용예시

The Neo 2024. 1. 23. 19:12

Spring Boot에서 application.properties와 application.yml은 모두 어플리케이션의 구성 설정을 위한 파일이며, 둘간의 주요 차이점은 파일 형식과 구문에 있습니다. 둘간의 차이점을 알아보고, 각각에서 mysql과 mongodb 세팅의 차이점을 알아보도록 하겠습니다.

 

 


파일 형식

application.properties

- 전통적인 프로퍼티 형식을 사용하며, 설정은 키 밸류 형태로, key=value 형식으로 표현됩니다.

 

application.yml

- YAML(Yet Another Markup Language 혹은 YAML Ain't Markup Language) 형식을 사용하며, 계층적이고 가독성이 높은 방식입니다.

 

구문

application.properties에서는 동일한 접두사를 가진 속성들이 반복적으로 나열이 됩니다.

app.name=my_app
app.description=application
app.version=1.0.5

 

예를 들어, 위와 같이 app이라고 하는 접두사를 기반으로 name, description, version이라는 속성들이 존재합니다.

 

application.yml에서는 계층 구조를 사용하여 속성들을 그룹화 할 수 있습니다.

app:
	name: my_app
	description: application
	version: 1.0.5

 

공통적으로 들어가는 접두사 app을 하나의 키로 넣고, 다시 하위 속성들을 각각 입력합니다.

 

설정 예시

SQL 데이터베이스를 이용하여 MySQL에 연결하기 위한 datasource를 예시로 설명을 하겠습니다.

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/[데이터베이스명]
spring.datasource.username=[아이디]
spring.datasource.password=[패스워드]
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/[데이터베이스명]
    username: [아이디]
    password: [패스워드]
    driver-class-name: com.mysql.cj.jdbc.Driver

 

datasource의 경우 spring.datasource의 접두사를 가지기 때문에, application.yml에서는 2번의 그룹을 하게 됩니다. 

 

properties와 yml은 취향차이라 볼 수 있지만, 복잡하게 설정이 필요한 대규모 어플리케이션 개발의 경우, 가독성과 구조화가 가능하고, 유지 보수성이 좋은 yml의 손을 들어줄 수밖에 없기 때문에 되도록이면 yml로 개발을 하는 것을 권장하게 됩니다.

반응형