본문 바로가기

IT-Consultant

JSON vs XML Parsing

http://bolder00.tistory.com/2

bolder00 흠.. 이거 영종이 아닌가 싶은데.

현재 직장에서 특정 모듈을 인수인계를 받고, 스크립트 파일을 분석하는 중에 의문점이 들었다.

모든 Ajax Function 들이 XML포맷의 데이터를 가져오고 있었으며, 그것을 파싱하기 위해서, XMLDom

ActiveX를 사용하고 있었다. ( 현재 제품은 오로지 IE만 지원하고있음 )

쫌 맘에 안들긴 하지만, 스크립트 역시.. 오로지 IE만을 위한 코드밖에 없었으며.. 그다지.. 모듈화 되어있지

않았다. prototype.js 정도는 아니더라도 어느정도 정리는 되어 있기를 바랬는데... 전혀 그렇지도 않아서..

한번 고쳐볼까 하는 마음으로 분석을 하던중. XML 태그의 양이 과도하게 사용되는것 같아서...

JSON으로 데이터 포맷을 바꿔볼까 싶어서..  JSON 과 XML 의 파싱 능력을 단순 비교해 보았다.

아래는 회사 Wiki 에 올린 자료를 약간의 수정만 한 버전임..

XML vs JSON

 

By YJ MOON

 

  1. Why?

JSON 이라는 Data 형식이, 현재 XML Data 비약적으로 줄여서 통신 있는 방식이라고 생각이 되어, 현재 모듈에 적용 시킬 있을지 한번 테스트 보았습니다.

 

  1. What’s JSON

: JSON 한마디로 , 경량형의 Data 형식입니다.

간단하게 설명하면,  값에 대한 표현을 키와 밸류 쌍으로 하여, 반복을 최소화하여 Data 표현 할수 있는 방식입니다.

http://www.json.org

 

)

XML Data >>

<root>

<ZFPMember>

      <name>문**</name>

</ZFPMemer>

<ZFPMember>

      <name>박**</name>

</ZFPMemer>

<ZFPMember>

      <name>김**</name>

</ZFPMemer>

<ZFPMember>

      <name>최**</name>

</ZFPMemer>

</root>

 

JSON Data >>

{  ZFPMember =  [ { “name” : “문**”}, { “name”: “박**”}, {“name” : “김**”}, {“name”, “최**”}] }

 

 

  1. Performance Test

:  일단 위의 예에서만 보더라도, 데이터의 전송량은 확실히 줄어듭니다.

하지만, 한가지 의문점은 javascript 에서 Data parsing 해서 사용할때에, XML Data “XMLDOM” 사용하여(IE) parsing 하고, JSON json.js 내부적으로 정규식을 사용하는데, 성능의 차이는 어떠한지 테스트 해보았습니다.

 

일단, XML 포맷으로 데이터를 리턴하는 페이지와 JSON 포맷으로 데이터를 리턴하는 페이지를 각각 만들고, Client 페이지를 제작하여 ,

50, 100, 500, 1000, 5000, 10000 개의 데이터를 송신한후, Parsing 하여 페이지에 출력하기까지의 걸린 시간을 측정 하였습니다.

 

각각 10번씩 측정하여, 평균을 값입니다.

 

 

50

100

500

1000

5000

10000

XML

0.019

0.0312

0.0906

0.2782

4.7924

16.026

JSON

0.008

0.0219

0.0952

0.4328

16.8998

69.771

 

사용자 삽입 이미지

xml vs json result

  1. Conclusion

: 성능테스트 표를 보면, 데이터가 100 미만인 경우, 약간 성능이 빠른듯 보이지만, 데이터 갯수가 늘어날 경우 , JSON 경우 비약적으로 성능이 느려짐을 있습니다.

데이터의 패킷이 줄어든다는 장점은 있지만, parsing 있어서는 성능이 너무 차이가 심하네요.