- JSON과 XML의 공통점
- 데이터를 저장하고 전달하기 위해 고안되었다.
- 기계뿐만 아니라 사람도 쉽게 읽을 수 있다.
- 계층적인 데이터 구조를 가진다.
- 다양한 프로그래밍 언어에 의해 파싱 될 수 있다.
- XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있다.
2. JSON과 XML의 차이점
- JSON은 종료 태그를 사용하지 않는다.
- JSON은 구문이 XML의 구문보다 더 짧다.
- JSON 데이터가 XML 데이터보다 더 빨리 읽고 쓸 수 있다.
- XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있다.
- XML은 XML 파서로 파싱되며, JSON은 자바스크립트 표준 함수인 eval() 함수로 파싱 된다.
3. Tokenizer
- 토크나이저는 입력된 소스 코드를 읽어들여서 토큰(Token) 단위로 분해하는 작업을 수행합니다.
- 토큰은 소스 코드의 최소 단위로, 변수 이름, 상수 값, 연산자, 키워드 등과 같이 프로그래밍 언어에서 의미 있는 최소 단위입니다.
- 토크나이저는 일반적으로 정규 표현식과 같은 패턴 매칭을 사용하여 소스 코드를 토큰 단위로 분리합니다.
4. Lexer
- 텍스트를 받아서 한 글자 한 글자 읽어나가다가 의미를 가진 단어를 만나면 Lexer에서는 그 단어를 전체 텍스트로부터 잘라서 Token이란 것으로 만듭니다.
- 렉서는 토큰의 유형을 인식하고, 각 토큰에 대해 메타 데이터를 추가할 수 있습니다.
- 토크나이저는 일반적으로 정규 표현식과 같은 패턴 매칭을 사용하여 소스 코드를 토큰 단위로 분리합니다.
5. parser
- 파서는 렉서에서 생성된 토큰 스트림을 가져와서 문법 규칙에 따라 문장 구조를 분석하고 해석합니다.
- 파서는 문법 규칙에 따라 토큰의 순서와 조합을 검사하여 프로그램의 구조를 파악합니다.