728x90
반응형
XML(eXtensible Markup Language) : W3C에서 개발된 다목적 Markup 언어
XML 기본 개념
- 구조적인 데이터를 위한 것
- 다소 HTML같이 보임
- 텍스트이며, 읽히는 것만을 뜻하지 않음
- 크기가 커짐
- 기술의 집합
- 새로운 기술이 아니라 발전한 기술
- HTML에서 XHTML로 이끌음
- 모듈식
- RDF와 시맨틱 웹의 토대
- 라이선스 제약이 없으며, 플랫폼이 독립적이고 많은 지원이 있음
XML 파싱하는 방법
1. DOM(DOCUMENT Object Model)
- XML문서를 읽어들이는 중간에는 아무일도 일어나지 않고 XML 문서의 모든 element, text, attribute 등에 대해 객체를 만듦
- 이후 Document 객체를 리턴하며 그 때부터 작업을 할 수 있음
방식
- 메모리에 모두 로드를 한 후 파싱
- 메모리에 모두 로드되어 있기 때문에 검색, 수정 등 방식이 빠르고 SAX보다 파싱하기 용이
- DOM 방식은 메모리에 올려둔 후 처리를 하기 때문에 메모리에 올리는 과정이 별도로 들어감
- XML을 여러번 핸들링 해야 할 경우, DOM 방식은 SAX보다 확실히 유리함
- 몇 번이고 원하는 요소 정보를 바로 찾아가 추가 및 수정할 수 있는 수단
DOM 방식을 사용해야 할 경우
- XML 문서를 수정하는 등의 추가적인 핸들링 작업이 들어갈 경우
- XML 문서의 구조가 복잡할 경우
- 문서의 수정, 검색 등이 존재할 경우
2. SAX(Simple API for XML) : XML 문서를 하나의 긴 문자열로 간주
- 문자열을 앞에서부터 차례로 읽어가면서 요소, 속성이 인식될 때마다 Event 발생
- 각각의 이벤트가 발생될 때마다 수행하고자 하는 기능을 이벤트 핸들러 기술을 이용하여 구현(콜백 메커니즘)
방식
- 라인을 하나하나 순차적으로 읽어가며 파싱을 수행
- DOM처럼 전체를 메모리에 올리지 않기 때문에 메모리의 사용량이 적으며, 별도의 작업이 추가적으로 들어가지 않음
- 한번 읽고나서 끝(1회성)
SAX 방식을 사용해야 할 경우
- 단순히 데이터를 파싱하여, 화면에 View 하는 경우
- 대용량의 데이터로 인해서 메모리에 문제가 발생할 경우
- 단순한 설정을 읽는 경우
- Config 형태의 값을 읽거나, 데이터를 뿌리는 정도의 핸들링 작업인 경우
728x90
반응형
'IT > 자바' 카테고리의 다른 글
[이클립스] workspace UTF-8 설정 (0) | 2022.06.13 |
---|---|
svn 업데이트 버전 가져오는 방법 (0) | 2021.12.02 |
svn 연동 방법 (0) | 2021.12.02 |
자바 정리 - 컬렉션 프레임워크 (0) | 2021.11.30 |
자바 정리 - Wrapper(포장) 클래스 (0) | 2021.11.30 |
댓글