
대표적인 마크업 언어에는 `HTML`이 있고 같은 마크업 언어라 생김새는 유사하지만 큰 차이점이 존재하는데 `HTML`의 태그는 이미 만들어서 제공되는 즉 정해진 태그만 사용해야 합니다.하지만
XML태그는 사용자가 임의로 만들 수 있고 어떠한 데이터를 설명하기 위해
이름을 임의로 지은 태그로 데이터를 감쌉니다. 이 태그로 데이터를 설명하는 것이며
이 부분에서 데이터의 표시(Markup)가 되고 더 필요한 데이터가 생길 시 태그의
추가나 태그 내에 내용을 추가할 수 있다는 특징이 있습니다.
요소(Element): 데이터와 태그로 구성된 기본 단위이며 시작/종료가 있고
<태그명>과 </태그명> 형태로 나타냅니다.
속성(Attribute): 요소에 추가적인 정보를 제공하는속성명="값"
쌍 입니다.<태그 Attribue="value">내용</태그>
루트 요소: XML 문서에서 가장 바깥쪽의 요소로 문서 전체를 포함합니다.
- 아래의 문서는
velog루트 요소 아래에
여러 개의zeew00요소를 포함하고 있습니다.<?xml version="1.0" encoding="UTF-8"?> <velog> <zeew00> <title lang="en">XML 문법</title> <name>zeew01</name> <major>CE S/W</major> <id>2022</id> </zeew00> <zeew00> <title lang="en">XML 문법</title> <name>zeew02</name> <major>CE C/E</major> <id>2022</id> </zeew00> </velog>
<!--으로 시작해서-->으로 끝납니다.
- 시작 태그에는 느낌표가 있지만 종료 태그에는 느낌표가 없습니다.
- 문자 데이터를
XML데이터로 해석하지 않고 그대로 표현하는 것을 의미하며
<![CDATA[특수문자 혹은 노출하고 싶은 문자열을 작성]]>형태로 작성하고
<![CDATA[과]]>사이에는 공백을 포함할 수 없습니다.
- 데이터를 저장하거나 전송할 때 많이 사용되는
경량 DATA 교환 형식으로
JS에서 객체를 만들 때 사용하는 표현식을 의미합니다.
JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서 최근에는
JSONXML을 대체해서 데이터 전송 등에 많이 사용됩니다.
JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌
단순히데이터를 표시하는 표현 방법이라고 할 수 있습니다.
JSON형식은JS객체와 마찬가지로Key/Value가 존재할 수 있으며
Key 값이나문자열은항상 쌍따옴표를 이용하여 표기해야 합니다.
- 객체, 배열 등의 표기를 사용할 수 있고 일반 JS 객체처럼
원하는 만큼 중첩하여 사용할 수도 있습니다.
- JSON 형식에서는
null,number,string,array,abject,boolean을 사용할 수 있습니다.{ "veloger": [ { "name": "zeew00", "major": "S/W", "id": 2022 }, { "name": "zeew01", "major": "C/E", "id": 2022 }, { "name": "zeew02", "major": "G/E", "id": 2022 } ] }
AJAX는 단순히 데이터만이 아니JS그 자체도 전달할 수 있는데 이 말은
JSON 데이터라고 해서 받았는데 단순 데이터가 아니라JS가 될 수도 있고
그게 실행될 수 있다는 것입니다. (데이터인 줄 알고 받았는데 악성 스크립트가
될 수도 있습니다.)
- 위와 같은 이유로 받은 내용에서 순수하게 데이터만 추출하기 위한
JSON 관련 라이브러리를 따로 사용하기도 합니다.
YAML이란 구성 파일을 작성하는 데에 일반적으로 사용되며 사람이 읽을 수 있는다목적 데이터 직렬화 언어입니다. 마크업 언어가 아니며 사람이 쉽게 이해할 수
있고 기계가 해석할 수 있는 방식으로 구조화된 데이터를 표현하는 표준화 형식을
제공합니다.
- 단순성과 가독성을 염두에 두고 설계 되었으며
들여쓰기,키-값 쌍,
직관적인 규칙을 기반으로 최소한의 깔끔한 구문을 사용하고 이러한 접근 방식을
통해 개발자와 사용자는 복잡한 데이터 구조를 자연어와 유사하고 한눈에 이해하기
쉬운 형식으로 표현이 가능합니다.
- 최근에 들어 많이 활용되는 데이터 포멧인데 그 이유는 앞서 말씀드린
사람이 보고 이해하기 쉬운 형태를 가지고 있기 때문입니다.
- 기본적으로
들여쓰기(indent)를 원칙으로 하며 데이터는Map(Key-value)
형식으로 작성되어야 하고 작성할 때부터 들여쓰기를 잘 구분해서 써야하기 때문에
데이터 포맷이 망가질 염려가 없고 그에 따라서 가독성도 올라갈 수 있습니다.
- 아래는
YAML 포맷으로 작성한 예시입니다.Servers: - name: Server1 administrator: Kim created: 20050103132749 status: active - name: Server2 administrator: Lee created: 20210101000000 status: active
1. 데이터 정의 : 기본적으로 Key: Value 형태로 데이터를 정의합니다.
name: Server1 administrator: Kim created: 200501031327492. 들여쓰기 : 들여쓰기로 계층 구조를 표현합니다.
Server: name: Server1 administrator: Kim created: 200501031327493. 배열 정의 : 배열로 여러 데이터를 표현할 경우
-기호를 사용합니다.Servers: - name: Server1 administrator: Kim created: 20050103132749 status: active - name: Server2 administrator: Lee created: 20210101000000 status: active4. 기타(주석, 띄어쓰기) :
- 주석은
파이썬처럼#기호를 사용하여 작성할 수 있습니다.# Server Info Server: name: Server1 administrator: Kim created: 20050103132749
Key: Value형태로 작성할 때 반드시 사이에띄어쓰기가 들어가야 합니다.# 띄어쓰기를 사용 name: Server1 # 미사용 Error (not key-value, string) name:Server1