Top

자바스크립트 JSON 쿡북 [데스크탑, 서버, 웹, 모바일 애플리케이션에서 활용하는 80가지 레시피]

  • 원서명JavaScript JSON Cookbook (ISBN 9781785286902)
  • 지은이레이 리쉬패터(Ray Rischpater)
  • 옮긴이류영선
  • ISBN : 9788960779693
  • 20,000원
  • 2017년 02월 24일 펴냄
  • 페이퍼백 | 228쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/json-cookbook)

요약

JSON(JavaScript Object Notation)은 인터넷을 통해 전송하는 데이터 객체를 생성하는 텍스트 기반의 가벼운 데이터 교환 포맷이다. 현재 JSON은 모바일 애플리케이션뿐만 아니라 일반적인 웹 애플리케이션에서도 널리 사용되고 있다. 이 책은 JSON의 일반적인 사용법에 대한 예제(recipe)를 제공한다. 책을 처음부터 끝까지 읽어 웹 애플리케이션과 독립형 애플리케이션을 구축하는 데 JSON이 어떻게 사용되는지 확인해도 좋다. 하지만 이 책은 쿡북(cookbook)으로 구성돼 있기 때문에 특정한 문제를 어떻게 JSON으로 해결할 수 있는지 기술하고 있는 장이나 예제로 바로 건너뛰어도 좋다. 먼저 특정 예제가 어디에 기술되어 있는지 확인하기 위해 서문과 함께 1장과 2장을 훑어보고, 여러분이 관심을 가지고 있는 예제로 바로 건너뛸 것을 추천한다.

이 책에서 다루는 내용

■ 일반적인 데이터 입력 오류를 방지하기 위해 타입세이프한 방법으로 JSON을 사용하는 방법
■ JSON으로 몽고DB와 카우치DB 같은 NoSQL 데이터베이스에서 데이터를 교환하는 방법
■ AJAX 웹 애플리케이션에서 JSON을 최대한 활용하는 방법
■ JSON으로 서버와 안드로이드/iOS 모바일 애플리케이션 사이에서 데이터를 교환하는 방법
■ 다양한 애플리케이션 영역에서 JSON을 활용하는 방법을 보여주는 유용한 예제

이 책의 대상 독자

구조화된 데이터를 처리하는 애플리케이션을 작성하고 있다면, 이 책은 당신을 위한 것이다. 특히 이런 작업에 XML을 사용해 왔다면 JSON으로 훨씬 더 적은 코드와 적은 데이터 오버헤드로 동일한 작업을 할 수 있다.

이 책의 구성

1장, ‘클라이언트에서 JSON 읽고 쓰기’에서는 자바스크립트와 C++, C#, 자바, 펄, 파이썬을 포함한 다양한 클라이언트 환경에서 J SON을 읽고 쓰기 위한 예제를 제공한다.
2장, ‘서버에서 JSON 읽고 쓰기’에서는 클로저와 F#, Node.js, PHP, 루비 같은 전통적인 서버 측 언어에서 JSON을 처리하는 방법을 알아본다. 물론 이들 언어로 클라이언트 측 애플리케이션을 작성할 수도 있다. 따라서 1장과 2장으로 나눈 예제의 구분은 다소 임의적이다. 그저 자신에게 알맞은 언어를 선택해 시작하기 바란다.
3장, ‘간단한 AJAX 애플리케이션에서 JSON 사용하기’에서는 브라우저에서 데이터를 교환하는 데 JSON을 어떻게 적용하는지 배운다.
4장, ‘제이쿼리와 앵귤러JS로 작성한 AJAX 애플리케이션에서 JSON 사용하기’에서는 인기 있는 프레임워크인 제이쿼리와 앵귤러에서 JSON을 사용하는 방법을 설명한다.
5장, ‘몽고DB에서 JSON 사용하기’에서는 인기 있는 NoSQL 데이터베이스인 몽고DB(MongoDB)에서 저장된 문서 형식에 JSON을 사용하는 방법과 웹 애플리케이션에서 REST 서비스로 몽고DB를 사용하는 방법을 예제로 보여준다.
6장, ‘카우치DB에서 JSON 사용하기’에서는 또 다른 인기 있는 NoSQL 데이터베이스인 카우치DB(CouchDB)에서 JSON을 사용하는 방법과 웹 애플리케이션에서 독립 REST 서비스로 카우치DB를 사용하는 방법을 보여준다.
7장, ‘타입세이프한 방법으로 JSON 사용하기’에서는 애플리케이션에서 프로그래밍 오류를 줄이기 위해 C#이나 자바, 타입스크립트 같은 언어에서 제공하는 강력한 타입과 JSON의 타입 프리 특성을 적용하는 방법을 살펴본다.
8장, ‘바이너리 데이터 전송에 JSON 사용하기’에서는 JSON이 텍스트 기반의 문서 포맷임에도 불구하고 필요한 경우 바이너리 데이터를 전송하는 데 어떻게 사용될 수 있는지 보여준다.
9장, ‘JSONPath와 LINQ로 JSON 쿼리하기’에서는 JSON 문서에서 필요한 데이터 조각을 얻기 위해 쿼리를 작성하는 방법에 대한 예제를 제공한다. 5장과 6장의 예제와 결합할 때 특히 효과적이다.
10장, ‘모바일 플랫폼에서의 JSON’에서는 안드로이드와 iOS, Qt를 사용하는 모바일 애플리케이션에서 JSON을 사용하는 예제를 제공한다.

저자/역자 소개

지은이의 말

자바스크립트 객체 표기법(JSON, JavaScript Object Notation)은 여러 도메인에서 급속도로 XML을 제치고 웹에서 구조화된 문서 교환을 위한 공통어가 돼가고 있다. 여기에는 다음과 같이 뚜렷한 세 가지 이유가 있다. 자바스크립트와 잘 맞으며, 간단하고 잘 동작한다. 하지만 JSON이 성공한 데는 또 다른 이유가 있다. 이 책에서 알 수 있듯이, 폭넓은 언어와 라이브러리에서 지원돼 다양한 시나리오에서 쉽게 사용할 수 있기 때문이다. 이 책은 JSON의 일반적인 사용법을 다룬 예제(recipe)를 제공한다. 책을 처음부터 끝까지 읽어 웹 애플리케이션과 독립형 애플리케이션을 구축하는 데 JSON이 어떻게 사용되는지 확인해도 좋다. 하지만 이 책은 쿡북(cookbook)으로 구성돼 있기 때문에 특정한 문제를 어떻게 JSON으로 해결할 수 있는지 기술하고 있는 장이나 예제로 바로 건너뛰어도 좋다. 먼저 특정 예제가 어디에 기술돼 있는지 확인하기 위해 서문과 함께 1, 2장을 훑어본 후, 여러분이 관심을 가지고 있는 예제로 바로 건너뛸 것을 추천한다.

지은이 소개

레이 리쉬패터(Ray Rischpater)

모바일 컴퓨팅 플랫폼 분야에서 20년 이상의 경험을 가진 엔지니어이자 작가다.
그동안 인터넷 기술과 자바 ME, 퀄컴 BREW, 애플 아이폰, 구글 안드로이드, 팜(Palm) OS, 뉴턴(Newton), 매직 캡(Magic Cap)뿐 아니라 여러 독자적인 플랫폼에서 다양한 애플리케이션 개발에 참여해왔다. 현재는 서니베일(Sunnyvale)에 있는 마이크로소프트에서 소프트웨어 개발 매니저로 일하고 있으며 마이크로소프트의 매핑(mapping)과 데이터 시각화(data visualization) 업무를 담당하고 있다.
소프트웨어 개발을 하지 않을 때에는 가족, 친구들과 함께 캘리포니아 샌 로렌조(San Lorenzo) 밸리 주변에서 하이킹과 사진 촬영을 즐긴다. 또한 시간이 허락되면 아마추어 라디오로 공공서비스를 제공하고자 힘쓰고 있다. 그의 허가 받은 아마추어 스테이션은 KF6GPE다.
저술한 책으로는 『Application Development with Qt Creator, 2nd Edition』(packt, 2014)과 『Microsoft Mapping』(카르멘오(Carmen Au) 공저, Apress, 2013)’이 있다. 또한 블로그(http://www.lothlorien.com/kf6)를 통해 비정기적으로 글을 쓴다.
산타 크루즈의 캘리포니아 대학에서 순수 수학으로 학사 학위를 받았으며, IEEE와 ACM, ARRL의 회원으로 활동하고 있다

옮긴이의 말

JSON은 최근 웹 애플리케이션 개발 환경에서 가장 널리 쓰이는 데이터 교환 포맷이다. 이 포맷은 사람들이 읽고 쓰기에 용이하며, 동시에 기계가 분석하고 생성하기에도 용이하다. 이 책을 통해 알 수 있듯이 JSON은 클라이언트 환경과 서버 측의 웹 애플리케이션뿐만 아니라 스마트 가전, 스마트 헬스, 각종 센서 기기를 연결하는 IoT에서도 그 활용도가 높아지고 있다. JSON(JavaScript Object Notation)은 그 이름에서 알 수 있듯이(자바스크립트에 종속적이지는 않지만) 자바스크립트와 잘 맞는다. 또한 문법이 상당히 직관적이면서 가볍다. 이것이 JSON이 십여 년간 사용돼온 XML을 제치고 단시간에 웹에서의 표준 데이터 교환 포맷이 된 이유다.
사실 JSON 사용법이 어렵고 복잡한 것은 아니다. 그래서인지 JSON의 중요도와 활용도에 비해 이를 체계적으로 정리한 도서는 많지 않다. 이 책은 이런 JSON를 어떻게 활용하는지에 대한 구체적인 예제를 총망라한 쿡북 형식으로 구성돼 있다. 실전에서 JSON을 활용할 때 필요한 예제를 선택해 참고할 수 있을 것이다.
이 책은 자바스크립트와 C, C++, C#, 자바, 펄, PHP, 루비 같은 언어뿐만 아니라 몽고DB, 앵귤러JS, Node.js 같은 데이터베이스와 프레임워크에서 JSON을 사용하는 방법을 잘 설명하고 있다. 잘 알고 있듯이 이들은 MEAN 스택을 이루는 중요 구성요소들이다. 이 책을 통해 MEAN 스택에서 JSON을 어떻게 활용할 수 있는지에 대한 기본기도 닦을 수 있을 것이다.

옮긴이 소개

류영선

소프트웨어 엔지니어로서 오랫동안 웹 브라우저와 웹 서버를 개발했다. 그 경험을 바탕으로 현재는 W3C 및 다양한 국제 표준화 단체에서 웹과 관련된 표준화 업무를 담당하고 있다. 최근에는 PC에서 벗어나 모바일이나 DTV, 디지털 사이니지(Digital Signage), 웨어러블(Wearable), 오토모티브(Automotive) 등 다양한 IoT 디바이스에 웹 기술을 접목하는 오픈 웹 플랫폼(Open Web Platform)에 관심을 가지고 관련 기술을 연구하고 있다. 아울러 워크숍이나 세미나 강연 및 학술 기고를 통해 기술 전파에 힘쓰고 있다. 옮긴 책으로 에이콘출판사에서 펴낸 『반응형 웹 디자인』(2012)과 『실전 예제로 배우는 반응형 웹 디자인』(2014), 『HTML5 웹소켓 프로그래밍』(2014), 『WebRTC 프로그래밍』(2015), 『Three.js로 3D 그래픽 만들기』(2016), 『자바스크립트 디자인 패턴』(2016)이 있다.

목차

목차
  • 1장. 클라이언트에서 JSON 읽고 쓰기
    • 자바스크립트에서 JSON 읽고 쓰기
    • C++에서 JSON 읽고 쓰기
    • C#에서 JSON 읽고 쓰기
    • 자바에서 JSON 읽고 쓰기
    • 펄에서 JSON 읽고 쓰기
    • 파이썬에서 JSON 읽고 쓰기

  • 2장. 서버에서 JSON 읽고 쓰기
    • 클로저에서 JSON 읽고 쓰기
    • F#에서 JSON 읽고 쓰기
    • Node.js로 JSON 읽고 쓰기
    • PHP에서 JSON 읽고 쓰기
    • 루비에서 JSON 읽고 쓰기

  • 3장. 간단한 AJAX 애플리케이션에서 JSON 사용하기
    • 소개
    • XMLHttpRequest 객체 생성
    • 데이터를 비동기적으로 요청하기
    • 웹 서버에 JSON 전송하기
    • Node.js를 사용해 JSON 받기
    • 비동기 요청의 진행 상태 구하기
    • 반환된 JSON 파싱하기
    • Node.js를 사용한 웹 서비스 요청 발행하기

  • 4장. 제이쿼리와 앵귤러JS로 작성한 AJAX 애플리케이션에서 JSON 사용하기
    • 소개
    • 웹 페이지에 제이쿼리 종속성 추가하기
    • 제이쿼리를 사용해 JSON 요청하기
    • 제이쿼리를 사용해 웹 서버에 JSON 전송하기
    • 제이쿼리를 사용해 요청의 진행 상황 알아내기
    • 제이쿼리를 사용해 반환된 JSON 파싱하기
    • 웹 페이지에 앵귤러JS 종속성 추가하기
    • 앵귤러JS를 사용해 JSON 콘텐츠 요청하기
    • 앵귤러JS를 사용해 웹 서버에 JSON 전송하기
    • 앵귤러JS를 사용해 요청의 진행 상황 알아내기
    • 앵귤러JS를 사용해 반환된 JSON 파싱하기

  • 5장. 몽고DB에서 JSON 사용하기
    • 소개
    • 몽고DB 설정
    • Node.js용 몽고DB 데이터베이스 드라이버 설치
    • Node.js용 익스프레스 모듈 설치
    • Node.js로 몽고DB 데이터베이스에 연결하기
    • Node.js로 몽고DB에서 문서 생성하기
    • Node.js로 몽고DB에서 문서 검색하기
    • Node.js로 몽고DB 문서 업데이트하기
    • Node.js로 몽고DB 문서 삭제하기
    • REST로 몽고DB 검색하기
    • REST로 몽고DB 문서 생성하기
    • REST로 몽고DB 문서 업데이트하기
    • REST로 몽고DB 문서 삭제하기

  • 6장. 카우치DB에서 JSON 사용하기
    • 소개
    • 카우치DB와 크래들의 설치와 설정
    • Node.js와 크래들로 카우치DB 데이터베이스 연결하기
    • Node.js와 크래들로 카우치DB 데이터베이스 생성하기
    • Node.js와 크래들로 카우치DB 문서 생성하기
    • Node.js와 크래들로 카우치DB 데이터 뷰 설정하기
    • Node.js와 크래들로 카우치DB 문서 검색하기
    • Node.js와 크래들로 카우치DB 문서 업데이트하기
    • Node.js와 크래들로 카우치DB 문서 삭제하기
    • REST로 카우치DB 레코드 열거하기
    • REST로 카우치DB 검색하기
    • REST로 카우치DB 문서 업서트하기
    • REST로 카우치DB 문서 삭제하기

  • 7장. 타입세이프한 방법으로 JSON 사용하기
    • 소개
    • Json.NET을 사용해 객체를 역직렬화하기
    • Json.NET을 사용해 날짜와 시간 객체 처리하기
    • 자바 gson을 사용해 객체를 역직렬화하기
    • Node.js에서 타입스크립트 사용하기
    • 타입스크립트를 사용한 간단한 타입 어노테이션
    • 타입스크립트를 사용해 인터페이스를 선언하는 방법
    • 타입스크립트를 사용해 인터페이스 클래스를 선언하는 방법
    • json2ts를 사용해 JSON에서 타입스크립트 인터페이스 생성하기

  • 8장. 바이너리 데이터 전송에 JSON 사용하기
    • 소개
    • Node.js를 사용해 base64 문자열로 바이너리 데이터 인코딩하기
    • Node.js를 사용해 base64 문자열에서 바이너리 데이터 디코딩하기
    • 브라우저에서 자바스크립트를 사용해 바이너리 데이터를 base64 문자열로 인코딩하고 디코딩하기
    • Json.NET을 사용해 데이터를 BSON으로 인코딩하기
    • Json.NET을 사용해 BSON에서 데이터 디코딩하기
    • DataView를 사용해 ArrayBuffer에 접근하기
    • ArrayBuffer를 사용해 base64 인코딩하고 디코딩하기
    • 익스프레스 모듈을 사용해 구축한 Node.js 서버에서 객체 본문 콘텐츠 압축하기

  • 9장. JSONPath와 LINQ로 JSON 쿼리하기
    • 소개
    • JSONPath 도트 표기법을 사용해 JOSN 문서 쿼리하기
    • JSONPath 브래킷 표기법을 사용해 JSON 문서 쿼리하기
    • JSONPath 스크립트를 사용해 더 복잡한 쿼리 구성하기
    • 웹 애플리케이션에서 JSONPath 사용하기
    • Node.js 애플리케이션에서 JSONPath 사용하기
    • PHP 애플리케이션에서 JSONPath 사용하기
    • 파이썬 애플리케이션에서 JSONPath 사용하기
    • 자바 애플리케이션에서 JSONPath 사용하기
    • C# 애플리케이션에서 JSONPath와 SelectToken을 사용해 JSONPath 표현식 쿼리하기
    • C# 애플리케이션에서 LINQ와 Json.NET을 사용해 JSON 쿼리하기

  • 10장. 모바일 플랫폼에서의 JSON
    • 소개
    • 안드로이드에서 JSON 파싱하기
    • 안드로이드에서 JSON 생성하기
    • iOS의 오브젝티브-C에서 JSON 파싱하기
    • iOS의 오브젝티브-C에서 JSON 생성하기
    • 스위프트를 사용해 iOS에서 JSON 파싱하기
    • 스위프트를 사용해 iOS에서 JSON 생성하기
    • Qt를 사용해 JSON 파싱하기
    • Qt를 사용해 JSON 생성하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안