Android DOM Parser

98oys·2024년 7월 7일

DOM 파서란?

DOM(Document Object Model) 파서는 XML 문서를 트리 구조로 메모리에 로드하여 파싱하는 방식입니다. 각 요소(element), 속성(attribute), 텍스트(content) 등이 노드로 표현되며, XML 문서에 접근하고 편집할 수 있습니다.

  • 특징:
    • XML 문서를 한 번에 메모리에 로드
    • 트리 구조로 모든 요소를 노드로 저장
    • 문서의 임의의 위치에서 자유롭게 접근 및 수정 가능
    • 메모리 사용량이 크며, 큰 XML 문서를 처리할 때 비효율적
  • 장점:
    • 문서를 쉽게 탐색하고 수정 가능
    • 문서의 임의의 위치에서 요소에 접근 가능
  • 단점:
    • 메모리 사용량이 큼
    • 대형 XML 파일 처리 시 성능 저하

SAX 파서란?

SAX(Simple API for XML) 파서는 이벤트 기반의 XML 파싱 방식입니다. XML 문서를 순차적으로 읽으며, 각 요소를 만날 때마다 이벤트를 발생시켜 처리합니다. 문서를 메모리에 저장하지 않기 때문에 메모리 사용량이 적습니다.

  • 특징:
    • 이벤트 기반 파싱 방식
    • 문서를 순차적으로 읽으면서 이벤트를 발생시킴
    • 메모리 사용량이 적고, 대형 XML 파일 처리에 적합
  • 장점:
    • 메모리 사용량이 매우 적음.
    • 대형 XML 파일 처리에 유리
  • 단점:
    • 문서의 임의의 위치에서 요소에 접근하기 어려움
      • 한줄 씩 읽어야 함

둘의 차이점

특징DOM 파서SAX 파서
파싱 방식트리 구조로 메모리에 로드이벤트 기반으로 순차적으로 읽음
메모리 사용량높음 (경험적 수치 : XML 파일 크기의 2-10배)낮음 (필요한 부분만 메모리에 로드)
접근 및 수정임의의 위치에서 자유롭게 접근 및 수정 가능임의의 위치 접근이 어렵고, 수정이 복잡함
처리 속도작은 파일에서는 빠르지만 큰 파일에서는 성능 저하대형 파일 처리에 유리, 메모리 사용량 적음
사용 예작은 XML 파일 처리, 문서 탐색 및 수정이 필요한 경우대형 XML 파일 처리, 메모리 사용이 중요한 경우

Reference

https://stackoverflow.com/questions/4182355/maximum-size-when-parsing-xml-with-dom

profile
Android Developer, Department of Information and Communication Engineering, Inha University

0개의 댓글