🕊️ 스프링 부트: YAML vs properties

스프링 부트에서는 YAML 또는 properties를 사용해 설정을 구성할 수 있습니다. 두 형식 모두 응용 프로그램을 구성하는 key-value 쌍을 정의하는 데 사용됩니다. 다음은 YAML과 properties 파일의 주요 차이점입니다.


1️⃣ 문법

  • Properties Files: 간단한 'key-value' 구문을 사용합니다. 각 속성은 새 줄에 정의되며, '#'을 사용하여 주석을 추가할 수 있습니다.

```

server.port=8080

spring.datasource.url=jdbc:mysql://localhost:3306/mydb

```

  • YAML File: YAML은 보다 사람이 읽기 쉬운 형식을 사용합니다. 계층 구조를 나타내기 위해 들여쓰기를 사용하고 키와 값을 구분하기 위해 콜론을 사용합니다.

```

server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb

```


2️⃣ 계층

  • Properties File: 무 계층이며 계층 구조를 지원하지 않습니다. 계층 구조를 사용하려면 접두사를 이용해야 합니다.

  • YAML File: YAML 파일은 기본적으로 계층 구조를 지원하므로 중첩 속성으로 복잡한 구성을 더 쉽게 표현할 수 있습니다.


3️⃣ 배열과 리스트

  • Properties File: 배열이나 리스트를 기본적으로 지원하지 않으므로 쉼표로 구분된 값을 사용하거나 공통 접두사로 여러 속성을 만드는 경우가 많습니다.

```

mylist=apple,banana,orange

```

  • YAML File: YAML은 리스트와 배열을 기본적으로 지원합니다.

```

mylist:

- apple

- banana

- orange

```


4️⃣ 복잡한 데이터 타입

  • Properties File: 단순한 문자열 값으로 제한됩니다. 프로그램상에서 수동으로 변환해야 합니다.

  • YAML File: 수동 변환 없이 정수, 부울 등 다양한 데이터 형식을 지원합니다.


5️⃣ 가독성

  • Properties File: 더 압축적이지만 복잡한 구성의 경우 읽기 어려워질 수 있습니다.

  • YAML File: 들여쓰기 기반 구조는 중첩된 속성이 많은 경우 더 쉽게 읽을 수 있도록 해줍니다.


6️⃣ 사용 사례

  • Properties File은 더욱 간단한 구성을 사용하는 기존 시스템과의 호환성 문제에 적합합니다.

  • YAML File은 계층적이고 구조화된 형식을 사용하는 복잡한 구성을 다룰 때 선호됩니다.


요약하자면, YAML과 properties 간의 선택은 개인 선호도와 구성의 복잡성에 따라 달라집니다. YAML은 가독성이 뛰어나고 계층적이고 구조적인 구성을 지원하기 때문에 중첩된 속성이 많은 프로그램에 적합합니다.

properties는 여전히 단순한 구성이나 속성 형식을 사용하는 레거시 시스템과의 호환성을 유지하려는 경우에 적합합니다.

스프링 부트는 두 형식 모두를 지원하므로 필요에 따라 적합한 형식을 선택하면 되겠습니다.

Spring Boot : Difference between yml vs properties file

Medium

Spring Boot : Difference between yml vs properties file

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 11월 13일 오후 12:46

 • 

저장 118조회 9,431

댓글 1

  • 첨언하자면 properties파일은 ISO8859-1인코딩을 사용해서 한글이 정상적으로 표시되지않는다는 단점도 있습니다. 다행히도 해당 인코딩에서 표기못하는 문자는 유니코드로 자동으로 변환되서 저장됩니다. 또한 자바 Properties클래스에서 한글로 변환하긴하지만 가독성이 떨어진다는 단점은 피할수 없지만요... 그래서 주석을 한글로 작성하는건 피하시는것을 추천합니다

함께 읽은 게시물

성장이 어려운 환경에서의 개발자 생활

저런 개발자 생활도 한적이 있어서 다양한 생각이 든다.

“어이 신입, 탈출각이다” | 요즘IT

요즘IT

“어이 신입, 탈출각이다” | 요즘IT

오픈소스로 완성하는 AI Full Stack

AI와 관련된 수 많은 오픈소스들이 쏟아지면서 오픈소스 생태계는 그야말로 AI 오픈소스 르네상스를 맞이하고 있습니다. LangChain의 성공을 시작으로 많은 오픈소스들이 나오면서 AI 업계 시스템을 빠르게 메꾸고 있기도 합니다.

... 더 보기

 • 

댓글 1 • 저장 131 • 조회 8,371



데이터 이력서 템플릿 + 작성 가이드를 사용해보세요.

... 더 보기

6년간의 토이프로젝트 여정을 마무리하며 - 기술블로그 구독서비스 회고록

... 더 보기

6년간의 토이프로젝트 여정을 마무리하며 - 기술블로그 구독서비스 회고록

taetaetae.github.io

6년간의 토이프로젝트 여정을 마무리하며 - 기술블로그 구독서비스 회고록

 • 

댓글 2 • 저장 11 • 조회 2,634


간만에 재밌게 읽은 기술 포스트

... 더 보기

무진장 힘들었지만 무진장 성장한 개발 이야기

Medium

무진장 힘들었지만 무진장 성장한 개발 이야기