YAML? / TIL

YAML 이란?

Featured image

YAML ?


구조를 가진 데이터 표현 양식의 한 종류 (JSON, XML 등)
데이터를 주고 받을 때 서로 쉽게 이해하기 위해서 데이터를 형식에 맞춰 사용한다.
(확장자 : .yml / .yaml)


# 1번
Fruits: 
	- Orange
	- Apple
	- Banana

Vegetables:
	- Carrot
	- Lettuce
# 2번
Fruits: 
	- Apple
	- Orange
	- Banana

Vegetables:
	- Lettuce
	- Carrot
#YAML
Fruits:
	- Banana:
		Calories: 105
		Fat: 0.4g
		Carbs: 27g

	- Grape:
		Calories: 62
		Fat: 0.3g
		Carbs: 15g

위 yaml 파일을 json 형식으로 작성하면 다음과 같다.

#JSON 
{
  "Fruits": [
    {
      "Banana": {
        "Calories": 105,
        "Fat": "0.4g",
        "Carbs": "27g"
      }
    },
    {
      "Grape": {
        "Caloreis": 62,
        "Fat": "0.3g",
        "Carbs": "15g"
      }
    }
  ]
}

줄 바꿈

example2: > this is multiline string

and this is nextline and nextline

```json
#JSON 

{
  "example1": "this is multiline string  and this is nextline  and nextline\n"
}


{
  "example2": "this is multiline string \nand this is nextline  and nextline\n"
}


JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.
JSON은 키와 값 사이, 그리고 키-값 쌍 사이에는 공백이 있으면 안된다.


  JavaScript 객체 JSON
키는 따옴표 없이 쓸 수 있음 반드시 큰 따옴표를 붙여야 함
문자열 값 문자열 값은 어떠한 형태의 따옴표도 사용 가능 반드시 큰 따옴표로 감싸야 함


// 메시지를 담고 있는 객체 message
const message = {
  sender: "seay0",
  receiver: "fairy",
  message: "Hello my friend!",
  createdAt: "2023-04-10 10:10:10"
}

위와 같은 객체 형태로 메시지를 전송하려고 할 때는, 메시지 발신자와 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 한다.


JSON과 객체의 형태 반대로 변환하는 방법

JSON.stringify : Object type을 JSON으로 변환한다. 이 과정을 직렬화(serialize) 라고 한다. JSON.parse : JSON을 Object type으로 변환한다. 이 과정을 역직렬화(deserialize) 라고 한다.

// message 객체를 JSON으로 변환하는 메소드 (JSON.stringify)

let transferableMessage = JSON.stringify(message)

console.log(transferableMessage)
// `{"sender":"seay0","receiver":"fairy","message":"Hello my friend!","createdAt":"2023-04-10 10:10:10"}`

console.log(typeof(transferableMessage)) 
// `string`
// 직렬화된 JSON을 message 객체로 변환하는 메소드 (JSON.parse)

let packet = `{"sender":"seay0","receiver":"fairy","message":"Hello my friend!","createdAt":"2023-04-10 10:10:10"}`

let obj = JSON.parse(packet)

console.log(obj)
/*
 * {
 * sender: "seay0",
 * receiver: "fairy",
 * message: "Hello my friend!",
 * createdAt: "2023-04-10 10:10:10"
 * }
 */

 console.log(typeof(obj))
 // `object`