자바 성능 튜닝 - xml/json
xml과 json 을 사용할 경우 시스템의 성능이 안 좋아질 수 있기 때문에 상황에 맞게 사용해야 합니다.
xml의 큰 장점은 누구나 데이터의 구조를 정의하고 그 구조를 공유함으로써 일관된 데이터 전송 및 처리가 가능하다는 것입니다. 이러한 특성 때문에 파싱 작업이 필요합니다.
SAX는 순차적으로 XML을 처리합니다. XML의 노드를 읽는대로 처리하기 때문에 메뢰에 부담이 DOM에 비해서 많지 않습니다. 읽은 데이터의 구조를 수정하거나 삭제하기 어렵습니다.
DOM은 모든 XML을 읽어서 트리를 만든 후 XML을 처리하는 방식입니다. 모든 XML을 메모리에 올려서 작업하기 때문에 메모리 부담이 가게 됩니다. 추가, 수정,삭제하기 쉬운 구조로 되어져 있습니다.
XSTL은 SAX, DOM, InputStream을 통해 들어온 데이터를 원하는 형태의 화면으로 구성하는 작업을 수행합니다.
WAS에 내장되어져있는 파서는 특수문자가 XML에 들어오면 무한 루프를 돌기때문에 아파치에서 제공하는 SAX를 사용하면 해결이되어집니다.
JSON
JSON은 name/value 형태의 쌍으로 collection타입과 값의 순서가 있는 목록타입을 기본으로 하고있습니다.
JSON도 CPU와 메모리를 점유하며 응답시간도 느리기 때문에 필요할때만 사용해주어야 합니다.
일반적으로 Serialize를 사용하지 않고 XML과 JSON을 비교해 보면 JSON이 빠르게 나옵니다.
Serialize는 데이터를 전송할 수 있는 상태로 처리하는 것을 말합니다.
JSON은 Serialize와 Deserialize를 처리하는 성능이 좋지 않습니다.
그러므로 대부분 Serialize를 사용한 XML보다 JSON이 느리게 나옵니다.