DOM(Document Object Model) 파서는 XML 문서를 트리 구조로 메모리에 로드하여 파싱하는 방식입니다. 각 요소(element), 속성(attribute), 텍스트(content) 등이 노드로 표현되며, XML 문서에 접근하고 편집할 수 있습니다.
SAX(Simple API for XML) 파서는 이벤트 기반의 XML 파싱 방식입니다. XML 문서를 순차적으로 읽으며, 각 요소를 만날 때마다 이벤트를 발생시켜 처리합니다. 문서를 메모리에 저장하지 않기 때문에 메모리 사용량이 적습니다.
| 특징 | DOM 파서 | SAX 파서 |
|---|---|---|
| 파싱 방식 | 트리 구조로 메모리에 로드 | 이벤트 기반으로 순차적으로 읽음 |
| 메모리 사용량 | 높음 (경험적 수치 : XML 파일 크기의 2-10배) | 낮음 (필요한 부분만 메모리에 로드) |
| 접근 및 수정 | 임의의 위치에서 자유롭게 접근 및 수정 가능 | 임의의 위치 접근이 어렵고, 수정이 복잡함 |
| 처리 속도 | 작은 파일에서는 빠르지만 큰 파일에서는 성능 저하 | 대형 파일 처리에 유리, 메모리 사용량 적음 |
| 사용 예 | 작은 XML 파일 처리, 문서 탐색 및 수정이 필요한 경우 | 대형 XML 파일 처리, 메모리 사용이 중요한 경우 |
https://stackoverflow.com/questions/4182355/maximum-size-when-parsing-xml-with-dom