Spring Boot 프로젝트에서는 일반적으로 프로젝트의 각종 설정을
application.properties
또는
application.yml
파일을 통해 하게된다. 기본적으로 Spring Initializr를 통해 Spring Boot 프로젝트를 생성하면
application.properties
가 생성되지만, Spring Boot 설정을 위해 구글링을 하다 보면
application.yml
에 대한 내용이 상당히 많이 나온다. 따라서,
application.properties
와
application.yml
의 차이를 정리하려고 한다.
properties와 yml의 대표적인 차이는 내부 구조가 있다. properties의 경우엔 각 줄마다 key=value의 형태로 이루어져 있지만, yml의 경우엔 들여쓰기로 구분되는 계층 구조 및 key: value의 형태로 이루어져 있다.
1. properties 파일 (application.properties)
- 형식: 키-값 쌍으로 설정을 저장합니다.
- 구조: 간단한 텍스트 형식이며, 각 설정은 한 줄에 키와 값으로 표현됩니다.
- 용도: Spring Boot와 같은 Java 기반의 프레임워크에서 널리 사용됩니다.
- 특징: 설정 항목을 key=value 형식으로 간단하게 작성합니다.
# 서버 포트 설정
server.port=8080
# 데이터베이스 연결 설정
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=rootpassword
# 로그 레벨 설정
logging.level.org.springframework=DEBUG
2. yml 파일 (application.yml)
- 형식: YAML(인덴트 기반의 데이터 직렬화 언어) 형식으로 설정을 저장합니다.
- 구조: 계층적인 데이터를 다룰 수 있어서 복잡한 설정을 보다 읽기 쉽고 관리하기 쉽게 만듭니다.
- 용도: Spring Boot를 비롯한 다양한 프레임워크에서 사용되며, JSON과 유사한 구조입니다.
- 특징: 들여쓰기를 통해 계층 구조를 나타내며, -을 사용하여 목록을 표현할 수 있습니다.
# 서버 포트 설정
server:
port: 8080
# 데이터베이스 연결 설정
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: rootpassword
# 로그 레벨 설정
logging:
level:
org.springframework: DEBUG
spring 내부에 datasource라는 구조가 있고 그 내부에 driver-class-name, url, username, password를 각각 설정하고 있다. 즉, yml에서는 공통되는 구조는 상위에 한 번만 작성하고 하위에 다시 공통되는 구조가 작성되는 식으로 내려가다가 마지막에 최종적으로 값을 설정하게 된다. 이는 properties에서는 같은 구조 내부의 설정이라도 구조 전체를 작성해야 했던 점이 개선되었다고 볼 수 있다.
결론
결론적으로는 어떤 것을 사용해도 아무 문제가 없고, 기본적인 구조는 비슷하기 때문에 편한 것을 사용하면 되겠다. 개인적으로는 yml을 사용하는 것이 더 구조를 파악하기 쉽고, 중복되는 코드가 줄어들기 때문에 yml을 사용하는 것이 더 좋다고 생각한다.
주의할 점은 properties와 yml을 함께 사용하면 properties 파일이 우선순위가 높아 yml 파일에서 설정한 내용이 덮어씌워질 수 있다는 점이다. 따라서 되도록이면 둘 중 한쪽만 사용하는 것이 권장된다.
'Spring boot' 카테고리의 다른 글
브라우저 렌더링이란? ( CSR ) (0) | 2025.01.15 |
---|---|
브라우저 렌더링이란? ( SSR ) (0) | 2025.01.15 |
Session이란 무엇인가 (0) | 2025.01.07 |
Board JWT 적용 (3) | 2024.11.07 |
User JWT 적용 (0) | 2024.11.07 |