
웹에서 데이터를 전송하기 위해 미리 약속해둔 방식으로 만들어진 문서를 말한다. 줄임말은 eXtensible Markup Language 이며 우리말로 하자면 확장 가능한 마크업 언어이다.
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML의 기본 생김새이다. HTML을 다뤄봤다면 익숙한 구조일 것이다.
JSON(제이슨, JavaScript Object Notation)은 속성-값 쌍(attribute–value pairs), 배열 자료형(array data types) 또는 기타 모든 시리얼화 가능한 값(serializable value) 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
말그대로 토큰화해주는 것이다.
Jim Henson was a puppeteer
라는 문장이 있다면, 단어 기반 토큰화는
'Jim' , 'Henson', 'was', 'a', 'puppeteer'
라는 다섯개의 토큰으로 나눌 수 있다. JS에선 split() 메서드로 비슷한 역할을 수행할 수 있을 것 같다.
Lexer는 Tokenizer에 의해 쪼갠 토큰의 의미를 분석한다.
보통 Tokenizer + Lexer의 두가지 역할을 합해 Lexcial analyze라고 한다.
Lexical Analyze는 의미 있는 조각을 검출하여 토큰을 생성하는 것을 말한다.
Parser는 Lexical analyze되어 tokenize 된 데이터를 가지고, 구조적으로 나타낸다.
그리고 데이터를 구조적으로 바꾸는 과정에서, 데이터가 올바른지 검증하는 역할도 수행한다.
이 Parser에 의해 도출된 결과가 AST의 모습을 보인다.
AST는 Abstract Syntax Tree의 약자로,
프로그래밍 언어로 쓰여진 소스코드의 Abstract Syntatic 구조를 표현하기 위해 사용되는 자료구조이다.
쉽게 말하면, 특정 프로그래밍 언어로 작성된 프로그램 소스를
각각 의미별로 분리한 컴퓨터가 이해할 수 있는 구조로 변경시킨 트리이다.