본문 바로가기
TIL(Today I Learned)

[삽질 기록] YAML 파일 작성 시 double quotes를 사용하는 경우

by kkkdh 2023. 8. 21.
728x90

이번에도 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스" 책을 따라 하며, 공부하다가 배운 점들을 간단하게 기록해보려 합니다.

 

책 자체가 웹 서비스를 개발하는 전체적인 과정을 쉽게 따라해보는 것을 목적으로 하지만, 요즘 spring security 파트를 따라 하며 spring security가 어렵다는 것을 물씬 체감하는 것 같습니다..

 

이전 프로젝트를 진행할 때, 여러 자료를 뒤져보며 어찌어찌 한 번 해봤던 과정임에도 아직 어려운건 어쩔 수 없는 것 같습니다. 

 

거두절미하고, YAML 파일 작성 관련해서 겪은 문제를 정리해보겠습니다.


큰 따옴표를 굳이 사용하지 않아도 된다.

다음의 stack overflow 문답 글을 통해서 문제를 해결했습니다.

 

YAML: Do I need quotes for strings in YAML?

I am trying to write a YAML dictionary for internationalisation of a Rails project. I am a little confused though, as in some files I see strings in double-quotes and in some without. A few points to

stackoverflow.com

 

위와 같이 YAML 파일에 프로젝트에 필요한 속성 정보를 작성했는데, redirect_uri_template key에 대해서 큰 따옴표 없이 value를 작성했더니 문제가 발생하여, 위 글을 보고 큰 따옴표를 추가해서 문제를 해결할 수 있었습니다.

 

참고한 답변의 내용은 다음과 같습니다.

 

 

>> 요약하자면

  • 일반적인 경우 큰 따옴표(")는 필요하지 않다.
  • 하지만, 문자열임을 강조하고 싶을 때 사용한다.
  • 따옴표(큰, 작은)는 또한 특별한 문자를 value에 포함하는 경우 사용한다. (e.g. :, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, \) → 저는 이러한 이유 때문에 사용했습니다!
  • 작은따옴표를 사용하는 경우 어떠한 문자열도 표현 가능 ('\n' -> \n으로 해석)
  • 큰 따옴표를 사용하는 경우 "\n"은 LF(Line feed character, 행갈이 문자)로 해석
  • 느낌표(!, exclamation mark)는 method를 소개(?) (e.g. !ruby/sym은 루비 심벌을 반환)

 

마지막 말을 제외하고는 이해하기 쉬웠습니다.

 

특수한 기호가 포함된 경우 value에 따옴표를 이용해 표기하자.

위에서 봤던 내용을 기반으로 확인했을 때, 특수 기호(e.g. :, {, }, [, ], ,, &, *, #?|, -, <, >, =!%, @, \)가 포함된 경우에는 yaml 파일의 value를 표기할 때, 큰 따옴표로 감싸줘야 합니다.

요런 에러가 발생합니다. (yaml file parsing fail)

저 또한 이렇게 문제 해결이 가능했습니다.

728x90

댓글