책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(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을 사용하는 예제를 제공한다.
목차
목차
- 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 생성하기