'json'에 해당되는 글 2건

  1. 2007/03/01 What's XML really good for? (10)
  2. 2006/07/10 about Json (9)
XML을 우리는 다양하게 사용을 하고 있다. 내가 처음에 XML을 공부할 때는 사람과 기계가 이해할수 있는 언어라고 배웠던 기억이 난다. 지금은 XML파일이 갯수가 워낙에 많고, configuration자체도 복잡하고, well-formed에 대한 포맷을 체크하지 않는 XML이 난무하고 있다.

너무 하나의 데이터 포맷에 휘둘리지 말고, 적절하게 잘 사용을 해야 겠다. 적재적소라는 말이 쉽지 않은 얘기지만, 판단을 할 때 아래 아티클이 작은 도움이 되었으면 좋겠다.

What's XML really good for?

이번에 하고 있는 프로젝트에서는 json이라는 경량 데이터 포맷을 적극 활용을 할 생각이다. 특히 Ajax를 사용을 할 때 자바스크립트와 서버간에 데이터 교환정도면 json이면 충분하다.

json에 대해서 더 알고 싶은 분은 아래 링크를 보면 된다. C언어의 struct, 자바의 Map과 유사한 데이터 구조이다. 클라이언트에 단순하게 노출하는 데이터들에 사용하는 것이 적합하다.

http://www.json.org/

Posted by ologist
 TAG JSON, XML

2006/07/10 05:08 Developer

about Json

Json이라고 하면 지금 현재 사용하시는 분들도 있지만, 생소하신 분들도 계실겁니다.
한마디로 얘기를 하자면, name과 value쌍이  string형태로 존재하는 데이터 구조입니다. 과거에 C에서 구조체를 생각하시면 될거 같은데, 안에 expression은 조금 틀립니다.

아래의 모습은 json소개 페이에 나온 syntax(expression) )입니다.

object
{}
{ members }
members
string : value
members , string : value
array
[]
[ elements ]
elements
value
elements , value
value
string
number
object
array
true
false
null
string
""
" chars "
chars
char
chars char
char
any-Unicode-except-"-or-\-or-control
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
number
int
int frac
int exp
int frac exp
int
digit
digit1-9 digits
- digit
- digit1-9 digits
frac
. digits
exp
e digits
digits
digit
digits digit
e
e
e+
e-
E
E+
E-

일반적인 모습의 정의의 그림이다.

일반적으로 아래와 같이 사용을 한다.
{"balance":1000.21,"is_vip":true,"name":"foo"}


아래는 array형태의 그림이다. 순서가 있는 복수개의 데이터인 경우 다음과 같이 표시를 하는 것이다.

array를 코드로 보면 다음과 같다.

var myJSONObject = {"bindings": [        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}    ]};

너무도 간단하다..^^
json은 경량형 데이터 타입으로 각광을 받고 있다. XML으로 데이터를 교환할 경우 XML문서로 만드는데 걸리는 시간과 XML포맷으로 받은 클라이언트가 파싱해서 원하는 모습으로 디스플레이하기까지 중압감도 장난이 아니고, 파싱하는 많은 코드들이 들어가야 한다.

하지만, json은 틀리다. string형태의 데이터라 가볍고, 특별한 파싱이 필요하지 않다. 특히, javascript와의 궁합은 환상적이다. 과거에 XML을 더 선호했던 나로서는 json을 선호하게 된 계기가 있다. cross browsing에서 탁월한 선택이라는 생각이 든다. 물론 DOM파싱하는 라이브러리에서도 자유롭다.

XML(DOM)을 파싱하는  라이브러리는 서버에 따라 랭귀지에 따라 브라우져마다 버젼에 따라 조금씩 틀리다. 라이브러리가 바뀔수가 있다는 것은 버그의 가능성을 좀더 크게 한다. 보통 IE를 사용할 경우도 MSXML이라는 파싱하는 라이브러리가 브라우져에 내장이 되어 있다. 내가 본 버젼은 MSXML4.0이었던거 같은데, 3.0에서 4.0으로 갈때 애먹었던 기억이 있다.  

FF에서 XML으로 넘어온 데이터를 파싱하한다고 생각을 해보자. 또 IE와는 틀린 라이브러리를 사용할 것이다. 이것은 예기치 못한 버그를 일으킬 가능성이 높아진다.

이제 Json을 사용하자, 버젼이 패치될때 과거 소스의 테스팅, cross browser에서 간단한 포맷으로 예기치 못한 파싱오류 등등의 두려움에서 벗어날 수 있다.

물론, XML  포맷이 필요한 경우도 있다. 100% XML을 대체할 포맷이라고 생각하지는 않는다. 나역시가독성이 뛰어난 XML을 선호하는 편이다.

하지만, 간단한 경우는 가급적  json이라는 새로운(?) 타입으로 사용하려 한다.
이 글을 읽는 분도 json을 사용해보자. 간단하고, 가독성은 유지하면서 cross browser를 지원할수 있고, XML에 비해 파싱하는 수많은 코드를 줄일수 있는 장점을 가진 json의 세계로 빠져보자..^^

Json에 대한 홈페이지다. json사용을 위한 랭귀지별로 helper 라이브러리를 볼수 있다.
http://www.json.org/

Posted by ologist
 TAG JSON
이전버튼 1 이전버튼

블로그 이미지
ologist

공지사항

Yesterday191
Today136
Total34,708

달력

 « |  » 2012.02
      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      

최근에 받은 트랙백

글 보관함