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로 개발을 하는 것을 권장하게 됩니다.
'Language > Spring' 카테고리의 다른 글
Spring Boot 첫 실행 시, Login 페이지 뜨는 경우 (0) | 2024.05.28 |
---|---|
IntelliJ로 Spring-Boot 하는 법 (Step-by-Step) (0) | 2024.01.22 |
[Spring] 뷰 리졸버(View Resolver) 개념 이해하기 (0) | 2022.06.21 |
의존 주입(Dependency Injection, DI) 이해하기 (0) | 2022.06.15 |
[Springboot] Base URL(Context-path) 설정 방법 (0) | 2022.01.10 |