2012-08-14

JSON Simple이 JSON-Lib보다 낫다!

JSON-Lib를 그동안 시코 모바일 서버사이드 쪽에서 사용해 왔는데, 9개월 가까이 사용하면서 느낀 바는 복잡한 기능이 들어간것도 아니면서 괜히 JSON-Lib를 쓰느니 차라리 JSON Simple이 더 낫다는 것이었다.

첫째로, JSON-Lib는 Apache Commons 라이브러리를 3개나 쳐묵하는데다 ezmorph라는 라이브러리도 따로 임포트 해야 써먹을 수 있다. 가벼움이 생명인 모바일 앱용 서버에 라이브러리를 도대체 몇개나 올려놓은건지.

둘째로, 이상한 오류가 좀 있다. 나의 경우는 게시판 내용을 JSON화 하여 잡다한 HTML 소스를 다 제거한 다음에 필요한 정보만을 뽑아 가져오도록 하는데, 이 과정에서 대괄호가 여러번 나오는 경우가 있다. 예를 들자면, 닉네임 앞에 “[ㅇㅇ당]“과 같은 일종의 접두어를 붙이는 경우가 있는데, 이 사람에게 댓글을 쓰기 위해 “[ㅇㅇ당]ㅇㅇ// 안녕하세요”와 같이 작성하게 된다. 근데 이게 시코 모바일 어플로 작성된 댓글이라면, 뒤에 낙관으로 [α]가 붙는다. 즉, 대괄호 열고 닫고가 두번 나온 것이다. 그럼 이게 JSON-Lib에서 JSONObject로 이걸 집어넣게 되면 에러가 발생하는지 뭔지 이유는 잘 모르겠는데 [“ㅇㅇ당”] 이런식으로 나오고 그 뒤로는 모든 내용이 잘리게 된다.

이 에러는 꽤 시코 모바일 초기부터 있던 오류일거다. 내가 인식을 그동안 못했던것 뿐이겠지. 아무튼 이 에러를 고치기 위해 여기저기 알아보다가 결국 JSON처리용 라이브러리를 바꾸기로 했는데 그게 JSON Simple 라이브러리였다.

장점은 일단 빠르다. JSON-Lib보다 상당히 빠르다. 시간 체크를 해 보았을 때도 예전에 0.09초 정도 걸리던 응답시간이 0.05초 정도로 절반가까이 줄었기도 하고, 다른 추가 라이브러리를 필요로 하지 않는지라 더욱 가볍다. (JAR 파일 용량도 28kb 정도밖에 되지 않는다.)

둘째로, 앞에서 말했던 마이너한 오류가 없다. 대괄호가 몇번이 반복되든 제대로 잘 표시가 된다.

복잡한 기능은 따로 가지고 있는 것 같진 않지만 생각해보면 JSON-Lib도 뭐 그렇게 대단한 기능을 가지고 있던 건 아니었고, 그런 기능을 필요로 하면 차라리 Google Gson이 5천만배 낫지 않을까. Gson은 객체직렬화로 JSON 구현하는 신기한 놈이기도 하고.

아무튼 자바용 JSON 라이브러리로 어떤 녀석을 쓸지 고민하는 사람이 있다면, JSON Simple을 쓰라고 권하고 싶다.

댓글없음

님께 답글 취소
댓글 등록 요청
스팸 댓글을 줄이기 위해 Akismet을 사용하고 있습니다.