책 소개
요약
HTML5에서 데이터를 다루는 방법을 알기 쉽게 설명한 책이다. 이 책에서는 HTML5의 가장 기초적인 텍스트와 그래픽 데이터부터 서버와의 통신 및 간단한 멀티 미디어 사용법까지 다양한 내용을 알기 쉽게 풀이했으며 상세한 예제를 제공한다. 이 책을 읽고 나면 독자 여러분은 HTML5를 십분 활용한 멋진 웹 애플리케이션을 만들 수 있게 될 것이다.
이 책에서 다루는 내용
1장, ‘문자 데이터 표시’에서는 HTML5에서 문자를 표시하는 방법을 알아본다. 그리고 숫자 형식 변환, 수식 표시와 측정을 다룬다. 또한 표 데이터 표시와 매일 개발되는 기능 중 일부를 사용하는 마크다운 렌더링을 보여준다 . 2장, ‘그래픽 데이터 표시’에서는 플롯 차트 라이브러리를 사용해 차트를 만들어보며 최신 D3.js도 다뤄본다. 또한 마커와 경로를 포함한 지도도 다뤄본다.
3장, ‘데이터 애니메이션 표시’에서는 애니메이션 생성과 인터랙티브 시각화를 알아본다. 인터랙티브 시각화는 D3.js를 사용하지만 스크래치에서 시작하는 예제와 통지 API 기술 등을 사용한 예제도 있다.
4장, ‘HTML5 입력 컴포넌트 사용’에서는 간단한 텍스트 입력 사용부터 HTML5에서 추가된 새로운 입력 타입까지 알아본다. 또한 위치 또는 드래그 앤 드롭과 같이 좀 더 진보된 입력의 새로운 속성 사용법을 알아본다.
5장, ‘사용자 정의 입력 컴포넌트’에서는 4장에서 다룬 내용에 이어 새로운 기능이 추가된 사용자 정의 컨트롤 또는 데스크탑 애플리케이션에 있는 컴포넌트를 흉내 낸 컨트롤 등을 만들어본다. 또한 5장에서는 메뉴, 다이얼로그, 리스트 선택, 리치 텍스트 입력 같은 컨트롤을 생성하는 방법을 알아본다.
6장, ‘데이터 검증‘에서는 HTMl5에서 폼 검증을 하는 방법을 소개한다. 텍스트, 숫자를 검증하는 방법을 알아보고 이메일과 숫자를 검증하는 미리 만들어진 검증을 사용하는 방법도 알아본다. 또한 Node.js를 사용해 서버에서 검증하는 방법과 클라이언트와 서버를 연계해 검증하는 방법도 알아본다.
7장, ‘데이터 직렬화’에서는 클라이언트에서 자바스크립트로 JSON, base64, XML 형식으로 직렬화 하는 방법을 소개하며 거꾸로 직렬화된 데이터에서 자바스크립트 객체로 만드는 방법을 알아본다.
8장, ‘서버 통신’에서는 Node.js와 REST API를 배워본다. 또한 순수 자바스크립트로만 HTTP 콜을 만드는 자세한 정보를 알아보며 바이너리 파일을 다루는 방법과 통신 보안도 알아본다.
9장, ‘클라이언트 템플릿‘에서는 Handlebars, EJS, Jade 같은 클라이언트에서 사용하는 가장 인기 있는 템플릿 언어의 사용법을 알아본다. 추가로 언어의 사용법외에 파셜, 필터, 믹스인 같은 진보된 기능도 알아본다.
10장, ‘데이터 바인딩 프레임워크’에서는 다른 두 타입의 웹 프레임워크를 알아본다. 먼저 많은 종류의 클라이언트 측 MVC 프레임워크를 강력하게 표현하는 앵귤라(Angular)를 알아보고 임의의 도메인에서 기능의 폭을 조절할 수 있는 메테오(Meteor)를 알아본다.
11장, ‘데이터 저장소’에서는 HTML5에서 사용하는 새로운 클라이언트 저장소 API를 알아보며 파일을 다루는 새로운 API도 살펴본다. 이 새로운 기능을 활용하면 페이지를 새로고침해도 계속 데이터를 사용할 수 있으며 각 요청에 따라 정보를 전송하지 않는 클라이언트 정보를 저장할 수 있다.
12장, ‘멀티미디어’에서는 이전에는 외부 플러그인으로 수행한 기능인 브라우저에서 비디오와 오디오를 재생하는 방법을 알아본다.
부록 A, ‘Node.js 설치와 npm 사용법’에서는 Node.js를 설치하는 간단한 소개와 함께 npm 패키지 매니저 사용법을 알아본다.
부록 B, ‘커뮤니티와 리소스’에서는 HTML5 발전에 기여하는 단체에 대한 간략한 설명과 역사를 소개한다.
이 책의 대상 독자
이 책은 자바스크립트를 한 가지 방법 이상으로 사용해 본 개발자에게 적합하다. 또한 백엔드(backend) 코드를 많이 사용하고 있지만 HTML5와 자바스크립트와 관련한 실력을 키우고자 하는 사람들을 위한 책이며, 웹 페이지의 코드를 단순하게 복사해 붙여 쓰는 개발자가 실제 내부 구동 방식까지 알고 싶어할 때 적합한 책이다. 그리고 HTML5의 최신 기법과 기능을 습득해 자기계발을 하고 싶은 사람들에게도 유용하다. 이 책은 처음 시작하는 사람에게도 알맞고, HTML이나 자바스크립트 및 제이쿼리를 이미 다뤄본 개발자에게도 적합한 책이지만, 반드시 깊은 지식이 선행되어야 하는 것은 아니다.
이 책의 구성
- Flot 또는 HTML5 캔버스로 차트 만들기
- D3.js로 멋진 시각효과 만들기
- 애니메이션 효과가 있는 인터랙티브한 시각효과 만들기
- HTML5 입력 도움말 사용하기
- 사용자 정의 입력 컴포넌트 만들기
- HTML을 간단히 만드는 클라이언트 템플릿 만들기
- Angular.js 또는 메테오를 활용한 자동 데이터 바인딩 사용하기
- Node.js를 활용해 자동 데이터 바인딩 만들기
목차
목차
- 1장 텍스트 데이터 표시
- 소개
- 어림수 표시
- 패딩수 표시
- 미터법과 영국식 도량형 표시
- 사용자 시간대 날짜 형식 표시
- 경과 시간을 동적으로 표시
- 수식 표시
- 끝이 없는 스크롤 리스트 생성
- 정렬할 수 있는 페이지가 있는 테이블 생성
- 복수 선택 필터 생성
- 범위 필터 생성
- 결합된 복잡한 필터 생성
- HTML로 코드 표시
- 마크다운 렌더링
- 자동 업데이트 필드
- 2장 그래픽 데이터 표시
- 소개
- 꺽은선형 차트 만들기
- 막대형 차트 만들기
- 파이 차트 만들기
- 영역형 차트 만들기
- 혼합형 차트 표시
- 거품형 차트 만들기
- 위치를 표시한 지도 보이기
- 경로가 있는 지도 표시
- 게이지 표시
- 트리 표시
- 웹 글꼴로 나타내는 LED 점수판
- 3장 디퓨즈 셰이딩
- 소개
- 모션 차트 만들기
- 방향 그래프 표시
- 실시간 범위 차트 필터 만들기
- 이미지 캐러셀 만들기
- 차트 주밍과 패닝
- 웹 통지 API 사용
- 데이터 집합을 사용해 지구를 나타내는 지도를 생성
- 4장 HTML5 입력 컴포넌트 사용
- 소개
- text 입력 필드 사용
- textarea 사용
- 날짜 입력
- 시간 입력
- 전화번호 입력
- 범위 입력 필드
- 컬러 선택 입력
- 단일 선택 드롭다운 사용
- 다중 선택 리스트 사용
- 지리 위치 입력
- 클라이언트에서 파일 입력 사용
- 드래그앤드롭 파일 영역 사용
- 5장 사용자 정의 입력 컴포넌트
- 소개
- 기본 리치 텍스트 입력을 위한 contentEditable 사용
- 진화된 리치 텍스트 입력
- 드롭다운 메뉴 만들기
- 사용자 정의 대화 상자 만들기
- 입력 내역 자동 완성 기능 만들기
- 사용자 정의 단일 선택 리스트 만들기
- 다중 선택 리스트 만들기
- 지도를 사용한 지리적 위치 입력
- 6장 데이터 검증
- 소개
- 텍스트 길이 검증
- 숫자 범위 검증
- 내장 패턴을 사용한 검증
- 고급 내장 규칙과 사용자 정의 검증을 사용
- 패스워드 강도 계산
- 미국 우편번호 검증
- 서버 측 검증 기능을 비동기로 활용
- 클라이언트 검증 기능과 서버 검증 기능을 조합
- 7장 데이터 직렬화
- 소개
- JSON에서 자바스크립트 객체로 역직렬화
- JSON 문자열로 객체 직렬화
- base64 방식으로 인코딩된 바이너리 데이터 디코딩
- 바이너리 데이터나 텍스트를 base64로 인코딩
- 바이너리 데이터를 JSON으로 직렬화
- 쿠키의 직렬화 및 역직렬화
- 폼을 직렬화해 요청 문자열로 형성
- XML 문서를 DOMParser로 읽기
- 클라이언트에서 측에서 하는 XML 문서 직렬화
- 8장 서버 통신
- JSON을 가져오는 HTTP GET 생성
- 사용자 정의 헤더가 있는 요청 생성
- API 버전 작업
- JSONP로 JSON 데이터 가져오기
- 서버로부터 XML 데이터 읽기
- FormData 인터페이스 사용
- 서버로 바이너리 데이터를 전송
- Node.js로 SSL 연결 생성
- 에이잭스 푸시로 하는 실시간 업데이트
- 웹소켓으로 하는 실시간 메시지 교환
- 9장 클라이언트 템플릿
- 소개
- 핸들바를 사용한 객체 렌더링
- EJS를 사용한 객체 렌더링
- 제이드를 사용한 객체 렌더링
- 핸들바를 사용한 리스트 렌더링
- EJS를 사용한 리스트 렌더링
- 제이드를 사용한 리스트 렌더링
- 핸들바 헬퍼로 템플릿 간소화
- 핸들바 파셜로 템플릿을 재사용
- EJS 파셜로 템플릿을 재사용
- 제이드 필터 사용
- 제이드 믹스인 사용
- 제이드에서 레이아웃과 블럭을 사용
- 10장 데이터 바인딩 프레임워크
- 소개
- 데이터 바인딩으로 기본 앵귤러를 생성
- 리스트 렌더링과 앵귤러 컨트롤러
- 앵귤러의 라우팅, 필터, 백엔드 서비스
- 앵귤러 클라이언트 검증
- 앵귤러 지시자로 차트 컴포넌트 만들기
- Meteor.js 애플리케이션 구조
- 반응형 프로그래밍과 Meteor.js에 있는 데이터
- 라이브 HTML과 Meteor.js 사용자 정의 데이터
- Meteor.js 보안 메커니즘
- 11장 데이터 스토리지
- 소개
- 데이터 URI
- 세션 스토리지와 로컬 스토리지
- 파일에서 데이터 읽기
- IndexedDB 사용
- 스토리지 제한과 더 많은 용량 요구
- 브라우저 히스토리 다루기
- 12장 멀티미디어
- 소개
- 오디오 파일 재생
- 비디오 파일 재생
- 미디어 엘리먼트 사용자 정의 컨트롤
- 비디오에 자막 넣기
- 멀티미디어 임베딩
- HTML5 오디오를 사용해 텍스트를 음성으로 변환
- 부록 A Node.js 설치와 npm 사용
- 부록 B 커뮤니티와 리소스