devops

YAML vs JSON vs XML 본문

DevOps/AWS

YAML vs JSON vs XML

vata500 2022. 5. 27. 16:02
반응형

YAML

구조를 가진 데이터 표현 양식의 종류 중 하나다. 데이터는 다양한 형태로 표현될 수 있다. JSON과 XML도 같은 종류의 표현 양식이다.

이 양식을 활용하는 이유는 데이터를 주고 받을 때 쉽게 이해하기 위해서다.

YAML은 최근 많이 사용하는 데이터 형식으로 사람이 읽고 이해하기 쉽다. DevOps에서 다양한 설정 파일들을 YAML 형식으로 많이들 사용한다.

파일 확장자는 .yml .yaml 을 사용한다.

YAML의 문법

1) 데이터 정의

key: value 형태로 데이터를 정의한다. 이때 콜론 : 뒤에 키와 값을 구분하기 위해서 공백이 필요하다.

사용가능한 데이터 타입은 Number, String, Boolean이 있으며 문자열 String에 \n, @와 같은 특수문자가 포함된 경우엔 " " 을 사용한다.

Boolean은 True/False, On/Off, Yes/No 로 작성할 수 있다.

Name : Rechard
Quantity : 10
Country : KOREA

# 주석은 샵이다

2) 배열과 리스트

배열과 리스트를 표현하고 싶을 때는 -를 사용한다. -는 배열의 한 요소를 가리킨다. 각 요소들의 순서가 중요. 또한 [ ] 도 사용된다.

Name : 
 - Rechard
 - Wang
 - Zhang

3) Dictionary / Map

계층 구조 표현을 위해서 2칸, 4칸의 들여쓰기를 사용한다. 각 아이템은 같은 공백문자를 사용해야한다. 단 계층구조에서는 요소의 순서가 중요하진 않다.

Country
	Name : mansu
	Origin : masan

4) Advanced

위 데이터 구조들을 섞어서 사용한다. 

Country:
	- Korea: 
			Man: 183
			Weight: 200
            
            
 	- America:
			Man: 190
			Weight: 250

5) Multi-lines

값으로 여러 행의 문장을 작성 시 기본적으로 \n을 사용한다. \n 외에도 | 와 >로도 줄바꿈이 가능하다.

> : 한 줄을 모두 비웠을 때만 줄바꿈으로 인식하고 그냥 줄바꿈할 때는 공백문자로 인식한다.

| : 모든 줄바꿈으로 인식하고 마지막 문장의 끝도 마찬가지로 줄바꿈으로 인식한다. 

 


JSON

javascript Object Notation의 줄임말로 데이터 교환을 위해 만든 객체 형태의 포맷이다.

const message = {
	sender: "박사장",
	receiver: "김사장",
 	message: "잘지내소?"
 }

메시지 객체가 전송 가능하기 위해서는 발신자와 수신자가 같은 프로그램을 사용하거나, 문자열처럼 읽을 수 있는 형태여야 한다.

*전송 가능 조건(Transferable condition) : 수신자와 발신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 사용할 수 있어야한다.

객체는 타입 변환을 이용해서 String으로 변환 시 객체 내용을 포함하지 않는다. Javascript에서 객체에 메소드(mesage.toString())나 형변환(String(message))을 시도하면 [object Object]라는 결과를 리턴한다.

객체를 JSON으로 변환하거나 JSON을 객체의 형태로 변환하는 방법은 아래와 같다.

stringify(직렬화)와 parse(역직렬화)

  • JSON.stringify : Object type을 JSON으로 변환
  • JSON.parse : JSON을 Object type으로 변환

JSON으로 변환된 객체 타입은 문자열이다. 발신자는 객체를 직렬화한 문자열을 누군가에게 객체의 내용을 보낼 수 있다. 수신자는 JSON.parse을 사용할 수 있다.

JSON은 서로 다른 프로그램 사이에서 데이터 교환하기 위한 포맷이다. JSON은 자바스크립트를 포함한 다양한 언어에서 범용적으로 사용된다.

JSON 기본 규칙

  자바스크립트 객체 JSON
따옴표 없이 사용가능 반드시 큰따옴표 사용
문자열 값 문자열 값은 어떤 형태의 따옴표 사용가능 반드시 큰따옴표 감싸야함

JSON은 키와 값, 키-값 쌍 사이에 공백이 있어서는 안된다.


XML

W3C에서 개발된 다목적 Markup Language다. 주로 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받기 위해 만들어졌다.

XML문서는 HTTP 프로토콜을 이용하여 전달하고 있으며 Tag를 사용하여 어떤 데이터도 정확하게 기술할 수 있는 장점이 있다.

XML 문법 특징

  • 매우 규칙적, 예측이 가능한 구조다.
  • 모든 XML 요소는 종료 태그를 가져야 한다.
  • 대소문자를 구분한다.
  • 시작태그와 종료태그의 문자가 동일해야한다.
  • 띄어쓰기를 인식한다.

+ XML은 data를 전달, HTML은 data를 표현하는데 초점이 맞춰져 있으며 XML은 HTML과 달리 tag가 미리 정의되어 있찌 않다.

 

반응형
Comments