[Java 파싱] XML 파서 SAX와 DOM 비교 분석
XML 문서를 처리하는 두 가지 주요 파싱 방식인 SAX와 DOM의 특징과 차이점을 설명합니다. - DOM parser 는 옛날 방식으로 그냥 사용하지 말자.
파싱: 문서에서 필요한 정보를 얻기 위해 태그를 구별하고 내용을 추출하는 과정
두 파서의 차이는 전체를 다 읽고 파싱, 읽으면서 파싱이냐의 차이
SAX Parser (Simple API for XML)
Simple API for XML Parser: 문서를 읽으면서 태그의 시작, 종료 등 이벤트 기반으로 처리하는 방식
- 이벤트 기반 파싱
- 순차적으로 읽으면서 파싱 수행
- 메모리 효율적
- 대용량 XML 처리에 적합
//MyHandler 만 직접 생성해주면 됨
public class MyHandler extends DefaultHandler {
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) {
// 태그 시작 처리
}
@Override
public void endElement(String uri, String localName, String qName) {
// 태그 종료 처리
}
}
자세한 동작구조와 실습 예제 코드
DOM Parser (Document Object Model)
Document Object Model Parser: 문서를 다 읽고 난 후 문서 구조 전체를 자료구조에 저장하여 탐색하는 방식
- 트리 구조 기반 파싱
- 전체 문서를 메모리에 로드 후 파싱
- 양방향 탐색 가능
- 작은 크기의 XML에 적합
주요 차이점
특성 | SAX | DOM |
---|---|---|
파싱 방식 | 이벤트 기반 | 트리 구조 |
메모리 사용 | 효율적 | 전체 로드 |
처리 속도 | 빠름 | 상대적 느림 |
문서 수정 | 불가능 | 가능 |
💡 실무 권장사항
- 대용량 XML 처리: SAX 파서 사용
- DOM 파서는 레거시 시스템이 아닌 경우 사용 지양
현대 애플리케이션에서는 SAX 파서나 더 현대적인 XML 처리 방식을 선호합니다.
댓글남기기