21/09/2016
http://blog.daum.net/swrush/383
JSON은 XML을 대체할 수 있는 자료 형식으로 주목을 받고 있습니다. XML이 너무도 다양한 규격을 정의할 수 있는 장점을 가진다면, JSON은 단순함이 강점입니다. 아직 과학자들 사이에서 널리 쓰이진 않지만, 서버에서 자료를 제공할 때 JSON으로 제공하는 사례들이 늘어가고 있습니다. JSON을 통해 최근의 기술을 적용한 좋은 서비스를 제공할 수 있기 때문입니다.
IDL의 JSON_PARSE와 JSON_SERIALIZE 함수는 JSON 포맷을 해석하여 IDL의 데이터형으로 변환하고, 반대로 IDL의 데이터를 JSON 포맷으로 만드는 일을 합니다. 플스 추석전투를 치열하게 마치고 돌아온 이상우 박사님이 IDL의 JSON 포맷 다루기에 대해 쉽게 소개하는 글을 쓰셨기에 소개해 드립니다.
당장 뭐 JSON 쓸 일 있겠나... 생각할 수 있고, 사실 아직 과학자들은 JSON을 주요한 데이터 포맷으로 생각하지 않습니다(전문 프로그래머들은 생각이 많이 다를 겁니다). 하지만 아래의 예제 같은 API 활용은 관심이 있을 수도 있습니다. DAUM의 도서 검색 API를 이용하여 IDL 키워드를 가지는 책을 검색하는 코드입니다. 검색 결과를 JSON으로 요청하였습니다. 참고로, 아래 예제에서 APIKEY 변수에 해당하는 키(숫자와 문자가 섞인 문자열입니다)는 DAUM 개발자 서비스페이지에서 직접 발행하여야 합니다.
IDL> URL="apis.daum.net/search/book?apikey="+APIKEY+"&q=IDL&output=json"
IDL> oURL=IDLnetURL(URL_HOST=URL, URL_SCHEME='http')
IDL> json_result=oURL->get(/STRING)
IDL> hash_result= json_parse(json_result)
IDL> print, hash_result, /IMPLIED_PRINT
위 코드의 실행 결과 중, 이상우 박사님이 원하는 일부분을 발췌합니다. 에스이랩은 공식적으로, "알기 쉽게 설명했다"는 description에 동의하지 않음을 밝힙니다.
{
"author_t": "이상우",
"sale_price": "23000",
"cover_s_url": "http://t1.daumcdn.net/thumb/R72x100/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbook%2FKOR9788997570157%3Fmoddttm=20160826060247",
"sale_yn": "Y",
"pub_date": "20120402",
"link": "http://book.daum.net/detail/book.do?bookid=KOR9788997570157",
"barcode": "KOR9788997570157",
"etc_author": "",
"status_des": "정상판매",
"author": "이상우",
"title": "<b>IDL</b> 객체지향 그래픽스",
"category": "컴퓨터/IT ",
"translator": "",
"pub_nm": "홍릉과학출판사",
"description": "고급 프로그래밍을 위한 IDL 유저들의 지침서. IDL에서의 객체지향 그래픽 체계에 관한 전반적인 개념 및 구현 기법 등에 관한 기본적인 내용을 알기 쉽게 설명했다. 또한 IDL에서...",
"isbn": "8997570153",
"ebook_barcode": "",
"isbn13": "9788997570157",
"cover_l_url": "https://t1.search.daumcdn.net/thumb/R110x160/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbook%2FKOR9788997570157%3Fmoddttm=20160826060247",
"list_price": "25000"
}
JSON은 JavaScript Object Notation의 약어로서, 최근 들어와서 많이 통용되고 있는 데이터 형식입니다. 이 형식에 관해서 이미 익숙하신 분들도 있겠지만, 혹시나 좀 더 자세한 내용이 궁금하신 분들은