YAML, 많이 사용하시죠? 최근 Docker를 통한 데이터베이스(좀 걱정은 되지만)를 구성하면서 YAML 문법을 통해 환경변수를 작성하다가 문득 이런 생각이 났습니다.
YAML을 쓸 때 환경변수 값에서 따옴표를 써야 할까..?
– 이 헌주, Docker-Compose.yml 을 통해 환경변수를 구성하며…
YAML에서 값에 따옴표를 써야 하는지 알아보다가 좋은 글이 있어 공유합니다. StackOverflow 링크에 저와 같은 궁금증을 가졌던 분이 있네요.
환경변수는…
- 결론: 일반적으로 사용하지 않아도 됩니다.
- 따옴표로 감싸는 것은 문자열을 강제할 때 사용하면 됩니다(이를테면, 어떤 키에 10이 있다고 했을때 Number로서 return을 받고 싶지 않고 문자열로서의 “10”을 받고 싶을 때 사용합니다.)
- 그러나 일반적으로 사용되는 alphabet, Numeric 이 아닌
:, {, }, [, ], ',' &, *, #, ?, |, -, <, >, =, !, %, @, \
의 경우엔 따옴표를 붙여줍니다. (환경변수에 $가 들어간다면 따옴표가 있더라도 $$ 를 입력해야 합니다!) - 작은 따옴표(‘) 를 사용하면 문자열에 거의 모든 문자를 넣을 수 있고, escape 코드를 구문분석하지 않습니다. 예를들자면
\n
은 작은 따옴표에서는 그냥 문자열 “\n” 이 되고, 줄바꿈이 일어나지 않습니다. - 그러나 큰 따옴표(“) 에서 “\n”은 줄바꿈이 발생하게 됩니다.
정리하자면..
일반적으로는 따옴표를 사용하지 않는 것이 가장 좋다고 합니다. 그리고 특수문자를 escape할 때 작은 따옴표(‘) 를 포함해서 사용하는 것이 좋습니다.