티스토리 뷰
자바에서 사용하는 XML Parser
종류 |
패키지 |
특징 |
JAXP |
jaxax.xml.parsers |
SAX와 DOM에서 사용하는 SAXParserFactory와 DocumentBuilderFactory를 제공. 이 파서들은 XML-DEV그룹과 W3C에서 정의.. |
SAX |
org.xml.sax |
순차적으로 처리하는 이벤트 기반의 모델. 메모리 부담이 DOM에 비해 적음. 하지만 수정, 삭제가 어려움. |
DOM |
org.w3c.dom |
모든 DOM을 읽어서 Tree를 만든 후 처리. 메모리 부담이 크지만 추가, 수정, 삭제가 쉬움. |
XSLT |
javax.xml.transform |
들어온 데이터를 원하는 형태의 화면으로 구성 (XML을 화면에서 보기 쉬운 데이터로 가공) |
XML Parser에서 문제가 되는 경우
대부분의 WAS에는 Parser가 내장되어있다.
하지만 이 Parser들에는 대부분 버그가 많기 때문에 오픈소스의 신뢰할만한 파서를 사용하는 것이 좋다.
대표적으로 아파치의 SAX 가 있다.
JSON과의 비교
JSON도 파싱하는 데에 상당한 CPU와 메모리를 점유하고 응답시간도 느리다.
순수히 파싱속도만 놓고 보자면 JSON이 XML보다 빠르다.
하지만 데이터 전송을 위해 이 데이터들을 Serialize와 Deserialize 할 때도 있다.
JSON은 XML에 비해 Serialize와 Deserialize를 처리하는 성능이 좋지 않다.
XML과 JSON의 사용
내부에서 사용하기 위해 XML과 JSON을 기반으로 데이터를 주고받는다면,
비즈니스 로직을 처리하기 위한 시간이 아닌 데이터를 파싱하기 위한 시간이 든다.
즉 메모리와 CPU 사용량의 손실이 일어난다는 점을 생각해야 한다.
그러므로 내부에서는 데이터 전송을 위해서라면 객체 직렬화를 이용해야한다.
하지만 외부의 다른 회사와 교류하는 등의 JSON이나 XML이 꼭 필요한 때에는
사용하는 것이 맞다.
직렬화에 대해
만드신 분 : https://www.facebook.com/sunny.kwak.90?fref=ts
* 설정파일은 JSON, XML보다 properties 파일에 저장하는 것이 빠르다.
'Server' 카테고리의 다른 글
[WAS 성능개선] DBConnectionPool과 Thread (0) | 2015.04.20 |
---|---|
[Web Server 성능개선] Apache Web Server의 설정 (0) | 2015.04.20 |
[Web Server 성능개선] 웹 서버와 WAS (0) | 2015.04.20 |
- Total
- Today
- Yesterday
- 성능
- RAMDA
- Clojure
- Java
- 자바
- opensource
- 성능개선
- Docker
- 리액트
- javascript
- Jackson
- rambda
- 코어
- 메모리
- gitlab
- Java8
- react
- json
- Swift 2.0
- 퍼포먼스
- 컴퓨터 시간
- Stream
- 날짜
- 자료구조
- 프로세서
- 자바 성능
- 시간
- 알람
- 클로저
- 람다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |