♦ 파서(Parser)란?
파서(parser)란 Compiler의 일부로서 원시 프로그램의 명령문이나 온라인 명령문, HTML 문서 등에서 Markup Tag 등을 입력으로 받아들여서 구문을 해석 할 수 있는 단위로 여러 부분으로 분할해 주는 역할을 한다. 즉, Compiler나 Interpreter에서 원시 프로그램을 읽어 들여, 그 문장의 구조를 알아내는 구문 분석(parsing)을 행하는 프로그램 이다.
♦ 파싱(Parsing) 형태 - DOM & SAX
DOM 과 SAX란? 하나의 API 로서, XML 문서를 구조화시켜서 XML 문서를 원하는 방법으로 활용할 수 있게 해준다. DOM이나 SAX는 XML 문서에 있는 Data를 효과적으로 다루기 위해서 필요하다. 특정한 node 에 있는 Data만 가져오고, 특정한 Attribute 의 값을 수정 할 때, DOM과 SAX를 이용해서 이런 작업 들을 method 몇 개를 활용해서 쉽게 행할 수 있다. DOM 과 SAX 는 XML 문서에 접근해서 필요한 Data를 가져오거나 수정하는 API인 것이다.
XML 파서는 애플리케이션에게 어떤 방법으로든지 파싱한 결과를 넘겨줘야 하는데, 보통은 트리(Tree)기반의 파서와 이벤트(Event)기반의 파서 두 가지로 분류된다. 그리고 양쪽 모두 전 세계적 표준이 제안되어 있는 상태이다. 현재 W3C에서는 DOM이란 스펙을 제안한 상태로 파서가 트리 기반으로 작동할 때 제공되어야 할 트리의 인터페이스를 규정하고 있고, W3C의 표준은 아니나 이벤트 기반의 파서와 작업할 수 있는 업계 표준으로 SAX라는 표준이 제안되었다. DOM과 SAX의 차이점은 문서 접근 방식의 차이에 있다. DOM 파싱 모델은 트리를 통해 여러 번 순회할 필요가 있거나, 트리 구조를 수정하기를 원하거나, XML문서를 임의로 접근할 필요가 있을 때, 순차적 접근을 제공하는 SAX 모델보다 유용하다.
'프로그래밍 언어 > javascript' 카테고리의 다른 글
javascript 객체 (0) | 2016.12.02 |
---|---|
[nodejs] Sublime Text jade highlight을 위한 플러그인 추가 (0) | 2016.07.11 |
HTML 이란 (1) | 2016.01.22 |
SAX (Simple API for XML) - 이벤트 지향 모델 (0) | 2014.01.25 |
DOM (Document Object Model) - 객체 지향 모델 (0) | 2014.01.25 |