본문 바로가기
YAML

DevOps Day 26 (4.11) YAML

by Jackykim 2023. 4. 11.

YAML은 구조를 가진 데이터 표현 양식의 한 종류입니다. 데이터는 다양한 형태로 표현될 수 있는데 일반적으로 사용하는 JSON이나 XML도 표현 양식의 한 종류입니다.

 

YAML 문법

1. 데이터 정의 : YAML은 기본적으로 데이터를 정의 할 때, key: value 형태로 데이터를 정의합니다. 사용가능한 데이터 타입으로는 Number, String, Boolean이 있으며, 문자열(String)에 \n , @ 등의 특수 문자가 포함된 경우에만 따옴표(" ")를 사용하여 작성합니다.

2. Array / Lists : 배열이나 리스트 구조의 데이터를 표현하고 싶을 때는 - 을 사용합니다. - 는 배열의 한 요소를 가리킵니다. 이때 각 요소들의 순서가 중요합니다. 따라서 1번과 2번은 각기 다른 YAML 파일입니다.

3. Dictionary / Map : 계층 구조를 표현하고 싶은 경우, 기본적으로 2칸 혹은 4칸의 들여쓰기를 사용합니다. 들여쓰기를 사용할 때, 각 아이템에 대해서 꼭 같은 수의 공백문자를 사용하여 들여쓰기를 해야합니다.

4. Advanced : YAML로 작성된 것을 JSON으로 작성한 것과 비교해보면, 가독성 면에서 구조화된 데이터를 쉽게 표현할 수 있는 방법이 무엇인지 알 수 있습니다.

5. Multi-lines : 값으로 여러 행의 문장을 작성할 때 기본적으로는 \n 을 사용합니다. 하지만 \n 을 사용하지 않고, |, >를 사용하여 줄 바꿈을 할 수도 있습니다.
> : 이 문자는 한 줄을 모두 비웠을 때만 줄바꿈으로 인식을 하고, 그냥 줄바꿈을 할 때에는 공백문자로 인식합니다.

| : 이 문자는 모든 줄바꿈을 인식하며, 마지막 문장의 끝도 마찬가지로 줄바꿈으로 인식합니다.

대표적인 데이터 교환 포맷 JSON
JSON은 JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷입니다.

메시지 객체가 전송 가능하려면, 메시지를 보내는 발신자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 합니다.

 

전송 가능한 조건 (transferable condition)
- 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다.
- 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다.

JSON.stringify : Object type을 JSON으로 변환합니다.
JSON.parse : JSON을 Object type으로 변환합니다
.

상단 메시지 객체를 JSON으로 변환하는 메소드 JSON.Stringify

수신자는 이 문자열 메시지를 어떻게 다시 객체의 형태로 만들 수 있을까요? JSON.stringify와 정반대의 작업을 수행을 하는 메소드 JSON.parse 를 사용할 수 있습니다.

직렬화된 JSON에 메소드 JSON.parse를 적용하면 다시 객체의 형태로 변환할 수 있습니다

JSON.parse를 적용하는 이 과정을 역직렬화(deserialize)한다고 합니다.

JSON의 기본 규칙
JSON
을 얼핏 보기에 자바스크립트의 객체와 별반 다를 바가 없어 보이지만, 자바스크립트의 객체와는 미묘하게 다른 규칙이 있습니다.

'YAML' 카테고리의 다른 글

DevOps Day 26 (4.11) YAML_Sprint (실습)  (0) 2023.04.11