트랙백(Trackback)이란?

Program/AJAX 2008.07.23 15:43

트랙백(Trackback)이란?


“내가 작성한 글을 다른 사람에게 알리는 기능”입니다. 쉬운 이해를 돕기 위해서 코멘트와의 차이점을 알려 드리겠습니다. 다른 사람의 블로그에 방문했을 때 글을 읽고 그 글에 대한 간단한 코멘트를 남깁니다. 코멘트는 보통 글 길이에 제한을 두기 때문에 글에 대한 긴 글을 쓸 수가 없습니다. 또 한번 쓰고 난 후 코멘트를 수정하고 싶을 때는 다시 그 블로그를 찾아 들어가야 하는 번거로움이 있지요. 트랙백 서비스는 위의 단점들을 모두 해결할 수 있습니다.


트랙백을 이용하면 다른 사람<A라고 예를 듭시다>의 글에 대한 생각이나 의견들을 내 블로그에 남길 수 있으며, 내가 남긴 글은 <A>의 트랙백 아래에 자동 붙게 되는 것입니다. 즉, 나는 내 블로그에 글을 썼지만 결과적으로는 <A>라는 사람의 글에도 내가 썼던 글 내용이 자동으로 보여집니다.


블로그에서 지원하는 트랙백은 블로그 뿐만 아니라 트랙백을 지원하는 외부 사이트와도 모두 완벽하게 연동이 되는 표준규격을 사용하였습니다. 
 
 
블로그 간 트랙백 쓰기


1. 글을 남기고자 하는 블로그 글 아래 “트랙백”을 클릭합니다.

 

사용자 삽입 이미지


2. 맨 아래 “내 블로그에 위의 글에 대한 트랙백 쓰기”를 클릭하면 본인의 글쓰기 화면이 나타납니다.


사용자 삽입 이미지


3. 일반 글쓰기 할 때와 같이 글을 입력하세요. 틀린점이 있다면 글 입력창 아래 “트랙백 주소입력”부분에 트랙백 주소가 자동 삽입되어 있습니다.이 부분 관련해서는 블로그와 외부 블로그 트랙백 쓰기에서 다시 자세히 알려드리겠습니다. 글쓰기를 마치셨다면 확인을 누르세요. 본인의 블로그로 이동합니다.


사용자 삽입 이미지


4. 이제 본인이 할 건 다 했습니다. 그럼 내가 쓴 글이 트랙백을 해온 사람의 글에 잘 붙어 있는지 확인해볼까요? 좀 전에 방문했던 트랙백을 눌렀던 사람의 블로그 글로 가보세요. 트랙백(0)이었던 카운트가 트랙백(1)로 변경되어 있을 겁니다. 트랙백을 눌러보면 내가 좀 전에 쓴 글의 제목과 내용이 간단하게 붙어서 링크 걸려 있는걸 확인할 수 있습니다.


사용자 삽입 이미지

수정은 어떻게 하냐구요? 내 블로그에 쓴 글을 그냥 수정하세요.그럼 자동적으로 다른 사람에게 붙여진 글도 수정이 되어 보여집니다. 


 
블로그 와 외부 블로그 간 트랙백 쓰기
1. 트랙백 서비스를 지원하는 블로그라면 트랙백을 눌러서 주소를 복사하세요. (사이트에 따라 트랙백 명칭이 다를 수 있습니다.)



사용자 삽입 이미지


2. 내 블로그로 가서 글쓰기를 누른 후, 복사해온 트랙백 주소를 글쓰기 하단에 있는 트랙백 주소 입력에 붙여 넣습니다.


사용자 삽입 이미지


3. 그리고 일반 글쓰기 할 때와 같이 글을 입력하세요. 글쓰기를 마치셨다면 확인을 누르세요. 내 블로그로 이동합니다.


4. 좀 전에 방문했던 타 블로그에 가보면 내가 쓴 글이 붙어져 있음을 확인할 수 있습니다. 

 


사용자 삽입 이미지


 


트랙백에 대해서 이해가 되시나요?


트랙백 서비스는 한 회사에서 서비스하는 블로그는 같은 블로그끼리만 커뮤니케이션 할 수 있다는 통념을 깨트리는 아주 좋은 기능입니다. 이 기능을 이용해서 외국의 블로그와도 커뮤니케이션 할 수 있으며, 수정 또한 간단하게 내 블로그에서 할 수 있습니다.  

신고

'Program > AJAX' 카테고리의 다른 글

트랙백(Trackback)이란?  (0) 2008.07.23
트랙백(trackback, 먼댓글), 트랙백 핑(ping)의 뜻  (0) 2008.07.23
JSON  (0) 2008.05.19

트랙백(trackback, 먼댓글), 트랙백 핑(ping)의 뜻

Program/AJAX 2008.07.23 15:35
트랙백에 대한 내용은 다음과 같습니다.
더 자세한 내용은 제가 운영하는 [김중태문화원(www.help119.co.kr)]이나 blog.naver.com/blogging 로 접속해주시면 볼 수 있습니다.


1.3.3.트랙백(trackback, 먼댓글), 트랙백 핑(ping)




트랙백은 원격 댓글을 쓰고 이를 알려주는 기능입니다.


초 기 블로그에는 없던 새로운 기능입니다. 트랙백은 댓글(reply, 답글), 덧글(comment, talkback 등) 기능의 확장판이라고 보면 됩니다. 기존의 답글과 덧글은 해당 게시판에 독자가 게시물을 읽고 난 뒤 답변이나 감상문을 적는 기능입니다. 따라서 덧글은 해당 게시물 밑에만 남겨집니다. 트랙백은 이보다 좀더 개선된 기능으로 다른 곳에 댓글을 남기는 기능입니다. 즉 해당 게시물에 대해 댓글이나 덧글을 달되 다른 사이트에서 원격으로 덧글을 다는 행위입니다. 이전에는 A 사이트의 '장터' 게시판 '1번' 게시물에 대해 덧글을 남길 경우 이 덧글을 보기 위해서는 A 사이트 장터 게시판 1번 게시물을 읽어봐야만 덧글을 볼 수 있습니다. 하지만 덧글을 지원하는 경우에는 A 사이트의 장터 게시판 1번 게시물에 대한 덧글을 B 사이트의 게시판에서 볼 수 있는 겁니다.

그렇다면 트랙백이라는 기능은 왜 만든 것이며 그 의미는 무엇일까요? 트랙백을 만든 이유와 그 의미는 '내가 쓴 글을 다른 사람에게 알리기 위함'입니다. 트랙백은 이를 지원하기 위한 기능이죠. 트랙백은 다른 사람이 쓴 블로그 문서에 자신이 원격 댓글을 달았다는 사실을 알려주는 행위를 말합니다.



트랙백으로 작성한 글은 작성자 블로그의 새 엔트리가 됩니다.


예를 들어 A 사이트의 블로거가 '한글날에 대하여'라는 글을 올렸을 경우 B 사이트의 블로거는 해당 글에 대한 의견을 자신의 블로그 사이트에 트랙백 형태로 올릴 수 있습니다.

[트랙백 과정]
1. A가 자신의 블로그에 '한글날'에 대한 글을 올렸다.
2. B가 A의 블로그에 올라간 글을 보고 자신의 블로그에 '한글날' 글에 대한 소감을 적어 글을 올렸다.
3. B는 A의 블로그에 트랙백 핑(TrackBack Ping)을 보내 자신의 블로그에 A가 쓴 '한글'에 대하여 코멘트를 달았음을 알려준다.
4. A는 자기가 쓴 '한글날' 게시물에 달린 트랙백을 통해 B가 B의 블로그에 '한글날'과 관련된 글을 올렸다는 사실을 알 수 있습니다.






**그림: 010306. 트랙백의 구조




핑은 작은 문장을 뜻하며 트래픽 핑은 트랙백을 알려주는 작은 문장입니다.


트 랙백을 건 다음에는 트랙백 핑(TrackBack Ping)이라고 부르는 작은 메시지를 상대편에게 보내줍니다. 물론 이는 프로그램이 알아서 자동으로 보내줍니다. 트랙백을 건 사람은 원 게시물 작성자에게 트랙백 핑을 보내 자신의 사이트에 관련 코멘트를 달았다는 사실을 알리는 겁니다.



핑은 인터넷 도구 중 하나로 MS윈도에 프로그램으로 포함되어 있습니다.


핑(ping = Packet Internet Groper)이라고 하는 것은 초기 인터넷부터 사용된 도구 중 하나로 호스터 컴퓨터에 변경 요구를 보내고 응답이 오는 것을 검사해 목적지까지의 도달성을 검사할 때 사용하는 프로그램입니다. 예를 들어 인터넷 주소를 입력했을 때 접속이 잘 안되는 경우 ping 테스트를 통해 해당 호스트가 실제로 운영 중인지 알아낼 수 있습니다. 응답이 없다면 호스트 운영이 멈추었거나 해당 호스트가 존재하지 않는 겁니다. 또한 현재 운영중인 호스트일 경우에는 해당 호스트까지 자료를 송수신하는데 걸리는 시간이 측정되므로 선로 속도 측정에도 사용됩니다. 핑은 윈도에 포함된 프로그램이므로 도스창에서 ping이라고 입력하면 ping 프로그램을 사용할 수 있습니다.

핑은 별도의 도구로만 작동하는 것은 아니고 인터넷의 주요 도구에서 지정된 주소에 재대로 자료를 송수신할 수 있는지 시험하는 용도로 다양하게 활용합니다. 전자우편(Email)의 경우에도 편지를 보내기 전에 ping을 보내 해당 주소록의 전자우편 주소로 편지 배달이 가능한지 시험합니다.

블로그 프로그램에서도 트랙백을 사용할 때 핑 형태로 동작하는 트랙백 핑을 주고받음으로써 트랙백을 거는 겁니다.



트랙백은 두 블로그 사이의 연락 수단이 됩니다.


이 런 트랙백 형태로 글을 올리면 기존의 댓글보다 편리한 점이 많습니다. 트랙백은 두 블로그 사이트 사이에 연락을 취하는 수단이 됩니다. 트랙백을 통해 A는 B사이트의 글에 관심이 있다는 것을 표명할 수 있고 B는 A라는 사람이 자신이 쓴 글에 대해 관심을 가지고 있다는 사실을 알 수 있습니다.

예를 들어 제로보드와 같은 기존의 게시판은 댓글, 덧글 기능이 있지만 몇 가지 한계를 가집니다.

[기존 댓글, 덧글의 단점]
1. 긴 글을 작성하기에 적합하지 않습니다.
2. 주인장의 기능 제한으로 대개는 HTML 태그 사용이 제한됩니다. 이 때문에 텍스트로만 된 글을 올려야 합니다.
3. 자신의 홈페이지에도 기록을 남기기 위해서는 해당 게시물에 덧글을 달고 자신의 홈페이지에도 기록해야 하는 이중 수고를 해야 합니다.
4. 자신이 작성한 덧글에 대한 추가 반응을 얻기가 어렵다. 덧글에 대한 덧글로 커뮤니티를 형성하기 어렵습니다.
5. 작성자의 홈페이지 방문을 유도하기가 어렵습니다.






**그림: 010307. 기존 덧글은 해당 게시판에서만 확인할 수 있습니다.


트 랙백은 자신의 블로그에 글을 새롭게 작성하는 것이므로 기존 댓글이 지닌 단점을 대부분 보완합니다. 한 두 줄의 짧은 텍스트가 아니라 사진이나 동영상이 들어간 제대로 HTML 문서로 작성할 수 있기 때문입니다. 물론 자신의 트랙백으로 쓴 엔트리(글)가 또 다시 트랙백의 대상이 되거나 링크의 대상이 됩니다. 이는 과거의 게시판에서 제공하지 못하던 기능입니다.



일단 트랙백을 '먼댓글(먼거리 댓글)'로 번역하겠습니다.


이 책에서는 트랙백이라는 용어를 많이 사용하지만 한글 용어로 바꾼다면 먼댓글이나 댓글자국이 적당하다고 봅니다. 먼거리에서 단 댓글과 이를 알려주는 기능이므로 '먼거리 댓글'의 의미로 먼댓글이라 할 수 있고, 다른 곳에서 댓글을 달았다는 자국을 남겨주는 것이므로 댓글자국이라고 써도 좋을 것 같습니다.

B라는 내 사이트에 보면 A 블로그의 '한글날' 글에 대하여 댓글을 남긴 상태이므로 원격 코멘트의 의미인 '먼댓글'의 의미를 부여할 수 있습니다. 또한 자신이 남긴 '댓글'을 가리켜야 하므로 '글'의 의미를 강조한다면 '멋댓글'이 적합한 해석입니다. 자신의 사이트에 올린 엔트리를 가리켜 '자국'이라고 말하기는 조금 곤란합니다. '글'이라고 지칭해야 적합하죠. 따라서 트랙백을 쓴 블로거 입장에서 보면 '댓글'을 쓴 것이므로 '먼댓글'을 썼다고 하는 표현이 어울립니다.
반면 A 블로그의 입장에서 보면 자신의 글에 대해 B가 댓글을 남겼다는 자국(흔적)을 남겨주는 것이므로 '댓글자국'의 의미가 더 강합니다. B가 자신의 글에 댓글자국을 남겼다고 표현하는 것이 적절합니다.

댓글 작성자의 관점에서 보는 것을 기준으로 생각한다면 '먼댓글'이라는 낱말이 더 어울린다고 생각합니다. 낱말이 생소한 관계로 일단 이 책에서는 원어인 트랙백이라는 용어로 계속 설명하겠으니 이점 양해 바랍니다.

참고로 트랙백의 한글 용어는 사이트마다 각기 다릅니다. 엮인글, 이어 말하기, 관련글, 되오름글 등등. 다양한 용어가 트랙백을 뜻하는 용어로 사용 중입니다.



트랙백은 콘텐트 수집의 수단이 될 수 있습니다.


트 랙백(먼댓글)은 여러 가지 면에서 혁신적인 기능입니다. 과거의 게시판 형태는 조회수를 통해서 인기도는 알 수 있지만 그 글을 읽은 사람에 대한 정보는 얻을 수 없었습니다. 물론 댓글을 쓰면서 자신의 홈페이지 주소와 링크를 함께 올리는 방법으로 자신의 존재를 밝힐 수는 있지만 이렇게 하는 사람이 없었고 또 매번 자신의 주소를 밝히기도 어려운 일입니다. 이에 비해 트랙백은 자동으로 자신의 사이트가 링크되므로 사용하기 편리합니다.

두 가지 경우를 생각해봅시다.

영화 '취화선'에 대한 글을 올렸다고 합시다. 이 글이 좋은 글이라면 댓글이 수 십 개 이상 올라오겠지만 댓글을 쓴 사람과 연결되기는 어렵습니다. 반면 트랙백의 형태로 글을 쓴다면 다음과 같은 점이 달라집니다.

'취화선' 글에 대하여 관심 있는 블로거들의 그룹이 만들어지며 해당 블로거가 운영하는 블로그 사이트를 클릭 한 번으로 방문할 수 있습니다.

즉 '취화선' 글을 한 편 올림으로써 취화선과 관련된 그룹이 트랙백을 통해 수집되는 겁니다. 따라서 '콘텐트 수집(content aggregation)'이 매우 용이해지는 겁니다. '취화선' 글 하나를 통해 '취화선'과 관련된 블로그 사이트가 뭉치게 되고 사람들은 취화선 관련 블로그 사이트를 골고루 돌아다닐 수 있게 됩니다. 하나의 글이 해당 게시판에서 게시물 하나로 끝나지 않고 관련 블로그 사이트를 취합하는 결과를 가지는 셈입니다.



트랙백은 블로그 프로그램의 기능이자 프로토콜로 공개된 기능입니다.


트 랙백은 공개 규격으로 2002년 8월에 무버블타입의 기능으로 발표되었습니다. 따라서 역사는 매우 짧은 셈입니다. 트랙백은 하나의 프로토콜이지만 블로그 프로그램인 무버블타입(Movable Type) 2.2의 한 기능으로 발표되었기 때문에 프로토콜이자 무버블타입의 기능이라는 양면성을 가지고 있습니다. 트랙백 규격은 국제규격으로 서로 다른 서비스와 프로그램 사이의 트랙백이 가능하게 호환성을 부여합니다.

트랙백의 기본적으로 공개로 운영되도록 설계되었습니다. 그 이유는 블로그 자체가 공개와 네트웍을 목표로 만든 개념이고, 트랙백 역시 특성 상 좀더 많은 블로그 사이트가 지원해야 트랙백의 가치가 빛나기 때문입니다. 이처럼 트랙백 기능은 공개로 계획되었기 때문에 다른 블로그 툴도 트랙백 기능을 쉽게 구현할 수 있습니다.

[트랙백을 지원하는 블로그 프로그램]
Movable Type
B2
Bloxsom
Blojsom
Nucleus
Radio
TrackBack Standalone Tool

트랙백은 블로그의 필수 조건이 아니지만 많은 블로그 사이트에서 트랙백을 지원하는 추세이므로 앞으로 나올 블로그 프로그램은 대부분 트랙백을 지원할 것으로 보입니다.



트랙백은 푸시 형태이므로 트랙백이 걸린 글은 수정하기 어렵습니다.


트 랙백은 현재 한 가지 중요한 특징을 가지고 있습니다. A 블로거가 자신의 블로그에 글을 올렸을 경우 이 글에 대한 트랙백이 달리면 A 블로거 자신도 원문을 수정할 수 없다는 점입니다. 그 이유는 현재 국내외 블로그 툴에 적용된 트랙백이 대부분 PUSH 방식이기 때문입니다. 때문에 이미 밀어낸 글에 대해서는 글을 수정하고 싶어도 수정할 수가 없습니다. 따라서 트랙백을 지원하는 경우에는 자신이 쓴 글에 트랙백이 달리는 순간 더 이상 수정 불가능한 글이 된다는 점을 심각하게 고려해야 합니다.

우 리나라의 경우 국내 최초 블로그 사용자 모임으로 알려진 WIK(한국어 웹로그 모임, wik.ne.kr)에서 블로그에 대한 트랙백을 활발하게 주고받음으로써 블로그에 대한 정보를 공유합니다. 개인 블로그 사이트는 트랙백을 적용하는 곳이 많지만 아직까지 국내 포탈 업체는 트랙백을 지원하는 곳이 드뭅니다. 업체로는 웹 솔루션 업체인 온네트에서 제공하는 블로그 서비스인 이글루스(http://www.egloos.com)에서 트랙백(TrackBack)을 처음으로 적용시켰습니다. 네이버의 블로그는 트랙백 기능을 지원하기는 하지만 한정된 공간에서만 지원합니다.

신고

'Program > AJAX' 카테고리의 다른 글

트랙백(Trackback)이란?  (0) 2008.07.23
트랙백(trackback, 먼댓글), 트랙백 핑(ping)의 뜻  (0) 2008.07.23
JSON  (0) 2008.05.19

JSON

Program/AJAX 2008.05.19 11:11

JSON

Table of Contents

JSON은 무엇인가?

  1. JSON은 무엇인가?
    • 경량의 데이타 교환 포맷이다.
      > XML과 비교한다.
    • 간단한 포맷
      > 사람들을 위해 읽고 쓰기가 쉽다.
      > 기계들을 위해 분석과 생성이 쉽다.
    • JSON은 텍스트 포맷이다.
      > 언어에 독립적으로 프로그래밍된다.
      > 프로그래머들에게 잘 알려진 C,C++,C#,Java,JavaScript,Perl,Pyton을 포함하는 C와 유사한 언어로 모여서 사용된다.
  2. XML을 넘어 왜 JSON인가?
    • on-the-wire(선을 통한) 데이타 포맷인 XML보다 가볍고 빠르다.
    • JSON 오브젝트는 XML 데이타가 타입이 없는데 비해 타입을 가진다.
      > JSON types : string, number, array, boolean
      > XML 데이타는 모두 String 이다.
    • JavaScript 코드를 위해 Native 코드포맷이다.
      > Data는 사용자의 JavaScript코드 안에서 JSON 객체에 접근이 쉽다.
      XML 데이타가 해석과 장황한 DOM API를 통해 변수에 접근하는 것을 필요로 하는데 비해
      > 회수한 값들은 사용자의 자바스크립트 안의 객체속성에서 읽기가 쉽다.
  3. JSON은 어디에서 사용되는가?
    • 구성정보를 나타낸다.
    • 통신 프로토콜을 실행한다.

JSON Object

  1. JSON 구조
    • name/value 쌍으로 구성된다.
      > 여러가지의 언어들에서 object, record, struct, dictionary, hashtable, 키를 가지는 리스트, 배열집합 처럼 얻어진다.
    • 값들이 리스트는 순서가 있다.
      > 대부분의 언어들에서 array, vector, list, sequence 처럼 얻어진다.
    • JSON은 대부분의 지금의 언어를 통해 일반적인 데이타구조들이 지원된다.
  2. JSON Object 표기법
    • JSON Object는 name/value 쌍의 set은 순서가 없다.
    • JSON Object는 { 로 시작하고 } 로 끝난다.
    • 각각의 이름은 : 와 ,로 구분된 name/value 쌍의 형식을 따른다.
  3. JSON과 JavaScript
    • JSON은 JavaScript의 객체 문자 표기의 부분집합이다.
      > JSON은 JavaScript안에서 혼란스럽거나 야단스럽지 않게 사용될 수 있다.
  4. JSON Object 예제
    <PRE>var myJSONObject = {
    "bindings": [
    {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
    {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
    }; </PRE>
    • 위의 예에서, JSON JavaScript 객체는 세개의 객체를 포함한 배열을 갖고있는, 각각은 "ircEvent","method","regex" 멤버들을 포함한 하나의 멤버 "bindings"를 포함하여 생성된다.
    • 멤버들은 점(.) 이나 그아래 지시자들로 회수 할수 있다.
      <PRE> myJSONObject.bindings[0].method // "newURI" </PRE>
  5. JavaScript 코드안에서 Text를 Object로 변환하기
    <PRE> var myObject = eval('(' + myJSONtext + ')'); </PRE>
    • eval() 함수를 사용하여, JSON text를 JSON 객체로 변환한다.
      > eval()은 JavaScript 컴파일러에서 실행한다.
      > JSON은 JavaScript의 서브셋으로 적합하다. 컴파일러는 text를 정확하게 변환하고, 객체 구조를 만든다.
  6. 보안 & JSON Parser
    <PRE>// Include http://www.json.org/json.js
    var myObject = myJSONtext.parseJSON(); </PRE>
    • eval()은 컴파일 할 수 있고, 어떤 JavaScript 프로그램에서도 실행된다. 그래서 보안 이슈들(cross-site scripting)을 가질 수 있다.
      > 소스를 신뢰할 수 있을때, eval()을 사용해라.
    • 보안이 염려될 때 - 소스를 신뢰할 수 없을때 - JSON parser를 사용하는게 낫다.
      > JSON parser는 JSON text를 승인할 수 있다. 그래서 좀더 안전하다.
  7. Object를 Text로 변환하기
    <PRE> var myJSONText = myObject.toJSONString(); </PRE>
    • 사용자는 JSON 객체를 JSON text로 변환할 수 있다.
    • JSON은 주기적 데이타 구조를 지원하지 않는다.

      > Do not give cyclical structures to the JSON stringifier
      > 주기적 구조들을 JSON stringfier로 줄수 없다

Java 안에서의 JSON

  1. 자바 개발자를 위한 JSON Tools
    • Parser
      > JSON text 파일들을 해석하고, 그들을 자바 모델로 변환한다.
    • Renderer
      > 자바를 text로 표현하게 한다.
    • Serializer
      > 알기쉬운 POJO clusters를 JSON 표현으로 나열한다.
    • Validator
      > JSON 스키마를 사용하여 JSON 파일의 내용을 유효한지 체크한다.
  2. JSONObject 자바 클래스
    • JSONObject의 name/value 쌍의 집합은 순서가 없다.
    • put 메소드는 객체로 name/value쌍을 add 한다.
    • text들은 JSON syntax rules을 정확히 따른 toString 메소드에 의해 만들어진다.
      <PRE>myString = new JSONObject().put("JSON", "Hello, World!").toString();
      // myString is {"JSON": "Hello, World"} </PRE>

클라이언트와 서버사이드 양쪽에서 JSON 데이타를 주고 받는 방법

  1. 서버사이드에서 JSON 데이타를 생성하고 보내는 방법
    • JSONObject 자바 객체를 생성한다.
    • put 메소드를 사용하여 name/value 쌍을 add한다.
    • toString 메소드를 사용하여 String 타입으로 변환한다.
      그리고 "text/xml" 또는 "text/plain" 처럼 content-type과 함께 클라이언트로 보낸다.
      <PRE>myString = new JSONObject().put("JSON",toString();
      // myString is {"JSON": "Hello, World"} </PRE>
  2. 클라이언트 사이드에서 JSON 데이타를 받는 방법
    • JSON 데이타는 String 처럼 반환된다.
    • JavaScript 코드안에서 JSON 객체를 만들수 있게 eval()을 호출한다.
      > var JSONdata = eval(req.response.Text);
    • 사용자는 한번 JSON 객체를 가질수 있고, 객체의 속성들에 접근하기 위해 . 을 사용할 수 있다.
      <PRE>var name = JSONdata.name;
      var address = JSONdata.addresses[3];
      var streetname = JSONdata.addresses[3].street; </PRE>
    • 클라이언트 사이드에서 JSON 데이타를 생성하고 보내는 방법
    • JSON 자바스크립트 객체를 생성한다.
    • XMLHttpRequest객체의 open 메소드 안에 "POST" HTTO 메소드를 사용한다.
    • XMLHttpRequest객체의 send 메소드안에서 JSON 자바스크립트 객체를 패스한다.
      <PRE>var carAsJSON = JSON.stringify(car);
      var url = "JSONExample?timeStamp=" + new Date().getTime();
      createXMLHttpRequest();
      xmlHttp.open("POST", url, true);
      xmlHttp.onreadystatechange = handleStateChange;
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.send(carAsJSON); </PRE>
  3. 서버사이드에서 JSON 데이타를 받는 방법
    • String 타입처럼 JSON데이타를 읽는다.
    • string으로부터 JSONObject 자바객체를 생성한다.
      <PRE>String json = readJSONStringFromRequestBody(request);
      //Use the JSON-Java binding library to create a JSON object in Java
      JSONObject jsonObject = null;
      try { jsonObject = new JSONObject(json); } catch(ParseException pe) { } </PRE>

리소스들

  1. JSON 리소스들
    • Introducing JSON
    > http://www.json.org/
    • JSON in JavaScript
    > http://www.json.org/js.html
    • JSON in Java
    > http://www.json.org/java/index.html

참고문헌

문서에 대하여

최초작성자 : 난다
최초작성일 : 2007년 4월 17일
버전 : 0.1


[from : http://www.codeordie.org/wiki/?WhatIsJson2]


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

* JSON(http://www.crockford.com/JSON/)은 자바스크립트 객체 표기(literal object notation

of JavaScript)를 따르는 가벼운 데이터 교환포맷이다.

(JavaScript Object Notation (JSON) is a lightweight data inerchange format )


* Rule: "Use XML to exchange structured document, use JSON to exchange data."


* JSON을 어디에 써먹을까?

Ajax 기반 프로그래밍시 응답 xml을 핸들링해야 하는데, DOM 트리를 통해 데이터에 접근하는 것보다 동일한 구조를 갖는 javascript 객체로써 다루는 것이 훨씬 편하다.(어떤 언어를 사용하더라도

DOM을 직접 다루는 것은 고통스럽다.)


예를 들어 아래와 같은 xml포맷 데이터를 XMLHTTPRequest를 통해 받았다고 하자.

(xmlhttp.responseXML => 브라우저 내장 파서에 의해 자동파싱된 js DOM 트리 반환)


<response>
  <method>checkName</method>
  <result>yes</result>
</response>


여기서 method 엘리먼트의 값을 뽑으려면 이런식의 코딩이 필요하다. 지랄맞다.


var response = xmlhttp.responseXML.documentElement

alert("메소드명 : " + response.getElementsByTagName('method')[0].firstChild.data);


그럼 동일한 구조의 데이터를 아래처럼 JSON 포맷으로 받았다고 하자.

(xmlhttp.responseText => 응답 text를 그대로 반환)


{"response": {

     "method": "checkName",

     "result": "yes"

 }};


이제 method의 값을 뽑아보자. 해피하다.


var jsonObj = eval('return ' + xmlhttp.responseText);

alert("메소드명 : " + jsonObj.response.method);


즉, ajax를 이용하는 경우 서버단에서 XML 포맷으로 보내지 말고 JSON 포맷으로 보내면

자바스크립트에서 데이터를 쉽게 액세스할 수가 있다는 얘기다.
(Ajax with JSON instead of XML)

신고

'Program > AJAX' 카테고리의 다른 글

트랙백(Trackback)이란?  (0) 2008.07.23
트랙백(trackback, 먼댓글), 트랙백 핑(ping)의 뜻  (0) 2008.07.23
JSON  (0) 2008.05.19