xml, json 과 같은 타 시스템간 데이터 교류를 위한 공통적 포맷이다.
reference
참조 링크
- https://www.inflearn.com/questions/16184
- https://m-falcon.tistory.com/458
- https://velog.io/@doondoony/Serverless-Framework-serverless.yml-설정-정보-숨기기-2hjmsx7nal
이직 후 severless 를 활용하며 configuration 으로 사용하였던 yaml 파일에 대해 정리하고자 한다.
Xml과 Json 파일 포맷으로 서버와 데이터를 주고 받았던 경험이 많다. 그때는 client 프로그램이 python 으로 개발되어 있었고, server는 java로 구성되어 있었기에 두 언어가 공통적으로 데이터를 주고 받기 위해서 이 양식들을 사용해야 한다고 생각했다.
인프런에서의 설명도 같았다.
우리가 타 시스템 간에 데이터를 주고 받을 때 데이터 포맷에 대한 약속이 필요하다.
개발을 할 때 타 시스템과의 연동은 필수적이다. aws 로 severless 를 구성할 때도 python 문법으로 작성된 파일의 어떤 폴더를 참조해서 람다 함수를 띄운다던지에 대한 명세가 필요하다. 일종의 configurator 로 활용된다.
이러한 문서들이 많아지고, 문서마다 데이터 양식이 다르다면? 이를 이해하고 실행시키는데도 많은 시간이 소요될 것이다. 이를 통일하기 위해서 XML, Json 같은 양식의 포맷을 정하고 공통으로 사용하는 것이다.
이 공통 데이터 포맷 중 하나가 Yaml 파일이다.
장점
왜 xml, json 같은 파일보다 yaml , yml 이 활용도가 높을까?
- 동일 파일 내에서 “참조” 가 가능하다.
- 가독성이 높다.
- 주석을 쓸 수 있다.
- 계층 구조를 가질 수 있고 , “” (double quotation mark) 없이 문자열 활용이 가능하다.
1.동일 파일 내에서 참조가 가능하다.
custom:
stage: dev # 이 값을 -> provider stage의 value 값으로 사용한다.
provider:
name: aws
runtime: python 3.9
stage: ${self:custom.stage} # 커스텀 스테이지 값을 설정할 수 있다.
functions:
first:
handler: src/first.hello
second:
handler: src/second.hello
events:
- http:
method: get
path: second
2.가독성이 높다.
xml, json 과 비교했을 때 가독성이 높다.

3.주석을 쓸 수 있다.
4.계층 구조를 가질 수 있다.
기본적으로 key : value 쌍을 이루고 문자열도 가질수 있다
martin:
name: Martin D'vloper
job: Developer
skill: Elite
---
martin:{name:Martin D'vloper, job:Developer, skill:Elite}
리스트 자료형도 나타낼 수 있다.
---
# A list of tasty fruits
- Apple
- Orange
- Strawberry
- Mango
...
fruits: ['Apple', 'Orange', 'Strawberry', 'Mango']
'DevOps > Study' 카테고리의 다른 글
[DevOps challenge] The Big Picture: DevOps & Learning a Programming Language (0) | 2022.07.10 |
---|---|
[DevOps challenge] Day 03.DevOps Lifecycle (0) | 2022.07.03 |
[DevOps challenge] Day02 DevOps engineer’s Role (0) | 2022.07.03 |
[DevOps 90 challenge] Day 01. DevOps? (1) | 2022.06.27 |