[Spring] Application yaml은 대체 어떻게 작성하는거야?

su_y2on·2022년 5월 29일
2

Spring

목록 보기
29/30
post-thumbnail

Application yaml은 대체 어떻게 작성하는거야?

스프링 공부를 시작하고 주로 강의를 통해서 공부를 했기 때문에 application.yaml파일은 주로 따라서 적고 '이런 설정이구나' 정도로 이해하고 넘어가는 경우가 많았습니다. 그러던 중 최근 대체 어디서 참고해서 저렇게 수수수숙 쓰는 거지? 궁금해졌습니다. 나중에 나도 스스로 써야할텐데.. 고민에 빠져서 application.yaml 이제는 좀 알고쓰자!! 라는 마음으로 조사를 시작했습니다.





application.yaml 어떻게 적는건데?

모든 프로그램의 시작은 문법입니다. 어떻게 적는지를 알아야 무엇이든 적을 수 있습니다. 주로 application.yaml은 yaml파일이기 때문에 이 yaml부터 알아봐야겠습니다



YAML

YAML은 YML Ain't Markup Language의 줄임말로 markup language와 선(?)을 긋고 있습니다. 그 이유는 처음 YAML은 Yet Another Markup Language(또 다른 마크업 언어)라는 뜻을 가지고 있었다가 YAML의 핵심이 문서마크업이 아닌 데이터 중심이기 때문에 이름을 바꿨기 때문입니다.

YAML의 핵심은 사람이 쉽게 읽을 수 있게 데이터를 직렬화 하는 것입니다. 따라서 YAML로 작성된 많은 문서들은 가독성이 좋습니다.

그리고 YAML은 모든 데이터를 리스트, 해쉬, 스칼라 데이터의 조합으로 적절히 표현할 수 있다는 믿음에서 문법이 형성되었습니다. 따라서 문법이 간단한 편입니다.




기본 자료형

  1. 스칼라(Scalar) : String 혹은 숫자
  2. 리스트(Sequence): 배열 혹은 리스트
  3. 해쉬(Mapping): key-value 쌍

yaml

food :
 - pizza
 - chicken
 - rice
food : [pizza,chicken,rice]

python

{ "food" : [ "pizza", "chicken", "rice"] }


문법

  • 기본적으로 따옴표를 해주지 않아도 문자열로 인식합니다. 하지만 특정 특수문자가 들어가는 경우에는 따옴표로 묶어줘야합니다. ex) {, }, [, ], &, *, #, ?, |, -, <, >, =, !, %, @

  • #를 통해 한줄주석 작성가능

  • 들여쓰기 시에 tab을 사용하지 않는다.




application.yaml VS application.properties

주로 설정정보를 application.properties 또는 appllication.yaml 둘중에 하나로 작성 할 수 있습니다. 요즘은 yaml로 많이 작성하는 것같아요! 단지 그러면 yaml은 유행인가요??..

NO!!
yaml은 확실한 장점이 있습니다

  • 가독성이 좋다.
  • 중복을 줄이 수 있다.

xml

environments.dev.url=http://dev.example.com
environments.dev.name=Developer Setup
environments.prod.url=http://another.example.com
environments.prod.name=My Cool App

yaml

environments:    
  dev:        
    url: http://dev.example.com        
    name: Developer Setup    
  prod:        
    url: http://another.example.com        
    name: My Cool App

확실히 좋네요✨✨





application.yaml에 뭐 적는 건데?

이제 어떻게 작성하고 어떻게 읽어야할지 알았으니 무엇을 채워야할지를 알아보겠습니다. 보통 Spring에 어떤 기능을 추가해서 쓰고싶거나 아니면 Spring의 기본설정 같은 것들을 할 수 있습니다.

하지만 모든 설정들을 다 외우고 다닐 수는 없죠.. 결국 어떤 기능을 추가할 때마다 해당 내용에 대한 설정이 있는지 알아보고 그에 맞게 설정값을 넣어주는 것이 방법입니다. 그러다 익숙해지면 이제 스스슥 쓸 수 있지 않을까 싶습니다



1. 자세한 설명

자신이 원하는 것에 대한 설정을 알아보기 위해서는 구글링이나 블로그에서 찾아보는 것도 좋지만 공식문서에도 아주 잘 정리되어있습니다

예를들면 spring data jdbc부분에서 h2에 대한 설정은 아래와 같이 나와있습니다.

이를 보고 아래와 같이 작성해줄 수 있습니다.

spring:
  h2:
    console:
      enabled: true
      path: /h2-console



2. 요약본

어느정도 설정에 익숙해졌을 때 참고할 만한 자료로 아주 요약해서 잘 정리되어있더라고요. 물론 공식문서에서 제공해주는 것입니다.

카테고리마다 설정값들이 쓰여있고 간단한 설명과 default값이 있다면 같이 적혀있습니다. 하지만 익숙하지 않다면 이 요약본만 보고 자세하게 알기에 한계가 있습니다.






참고
https://goddaehee.tistory.com/213
https://ko.wikipedia.org/wiki/YAML
https://docs.spring.io/spring-boot/docs/current/reference/html/index.html

0개의 댓글