XML Parser

Reading time ~1 minute

XML Parser?

XML이란

XML은 eXtensible Markup Language의 약자! 데이터를 주고 받을 때 어던 형태로 주고 받을 지 정의하고 구조를 공유하고 서로 전달 할 수 있게 도와주는 약속이다.

어떻게 사용?

주고 받을 측에서는 어떻게 정의되어 있는지 알아야하고 그 구조에 맞춰서 데이터를 추출해야 한다. 그게 Parsing 한다고 하는거. XML을 파싱하는 도구(Parser)는 많은데 Java에서는 SAX DOM XSLT 등이 있다.

Java XML Parser

SAX

SAX파서는 XML 문서를 순차적으로 읽고, 엘리먼트를 만날 때마다 정해준 핸들러를 통해 파싱한다.

장점 : 순차적으로 읽으니까 비교적 빠르다! 단점 : 모든 이벤트 핸들러를 처리해야 할 필요는 없지만 상대적으로 데이터를 어떻게 처리할지, 사용할지를 결정하고 구현해야 돼서 까다롭다.

DOM

DOM파서는 XML 문서를 통째로 한 번 읽고 데이터를 만들고 필요한 부분을 추출한다.

장점 : 상대적으로 간편하게 쓸 수 있다. 단점 : XML 문서를 한 번 쭉 읽고 데이터를 추출할 수 있으므로 속도가 느리다.

리소스

일반적으로 XML 문서를 파싱하는데 많은 리소스를 잡아먹는다. 더군다나 두 파서의 특징이 다르기 때문에 여기서도 리소스 점유도 차이가 나는데

SAX의 경우 한 줄 씩 읽는다고 했고, DOM은 문서 전체를 한 번 읽고 데이터를 만든다고 했는데… 예상한데로 DOM의 리소스 사용은 훨씬 많다. 시간은 물론이거니와 메모리또한 훨~씬 많이 잡아 먹는다. XML 문서가 커질 수록 감당 안될 정도의 메모리를 사용한다.

Dooray!

Dooray CalDav, IMAP 사용법 Continue reading

Vue.js

Published on February 10, 2018

Java_tuning5

Published on March 06, 2017