책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 웹 서비스/웹 프로그래밍
· ISBN : 9788998139131
· 쪽수 : 740쪽
책 소개
목차
[1부] 자바스크립트 개요
▣ 01장: 자바스크립트의 개요
1-1 자바스크립트를 보는 시점
1-2 자바스크립트의 역사
_1-2-1 자바스크립트의 연도별 주요 뉴스
1-3 ECMAScript
_1-3-1 자바스크립트의 표준화
_1-3-2 보류된 ECMAScript 4
1-4 자바스크립트의 버전
1-5 자바스크립트 엔진
_1-5-1 클라이언트 사이드 자바스크립트 코드의 이식성
1-6 자바스크립트 실행 환경
_1-6-1 코어 언어
_1-6-2 호스트 객체
1-7 자바스크립트를 둘러싼 주변 환경
_1-7-1 라이브러리
_1-7-2 소스코드 압축
_1-7-3 통합 개발 환경
[2부] 자바스크립트의 언어 사양
▣ 02장: 자바스크립트 기초
2-1 자바스크립트의 특징
2-2 표기
_2-2-1 print 함수
2-3 변수의 기초
_2-3-1 변수 사용법
_2-3-2 var의 생략
_2-3-3 상수
2-4 함수의 기초
_2-4-1 함수란?
_2-4-2 함수 선언과 호출
_2-4-3 함수 리터럴
_2-4-4 함수는 객체
2-5 객체의 기초
_2-5-1 객체란?
_2-5-2 객체 리터럴 식과 객체의 이용
_2-5-3 프로퍼티 접근
_2-5-4 프로퍼티 접근(대괄호)
_2-5-5 메서드
_2-5-6 new
_2-5-7 클래스와 인스턴스
_2-5-8 클래스 기능의 정리
_2-5-9 객체와 타입
2-6 배열의 기초
▣ 03장: 자바스크립트 타입
3-1 타입이란?
_3-1-1 타입에 관한 자바와의 비교
_3-1-2 기본 타입과 참조 타입
3-2 내장 타입의 개요
_3-2-1 자바스크립트의 기본 타입
3-3 문자열 타입
_3-3-1 문자열 값 리터럴
_3-3-2 문자열 타입의 연산
_3-3-3 문자열 타입의 비교
_3-3-4 문자열 클래스(String 클래스)
_3-3-5 문자열 객체
_3-3-6 문자열 값과 문자열 객체의 혼동을 피하는 방법
_3-3-7 String 함수 호출
_3-3-8 String 클래스의 기능
_3-3-9 비파괴적 메서드
3-4 숫자 타입
_3-4-1 숫자 리터럴
_3-4-2 숫자 타입의 연산
_3-4-3 부동소수점 수의 일반적인 주의사항
_3-4-4 숫자 클래스(Number 클래스)
_3-4-5 Number 함수 호출
_3-4-6 Number 클래스의 기능
_3-4-7 경계값과 특별한 숫자
_3-4-8 NaN
3-5 불린 타입
_3-5-1 불린 값
_3-5-2 불린 클래스(Boolean 클래스)
_3-5-3 Boolean 클래스의 기능
3-6 null 타입
3-7 undefined 타입
_3-7-1 undefined 값
3-8 객체 타입
_3-8-1 함수 타입
3-9 타입 변환
_3-9-1 문자열 값에서 숫자로의 형변환
_3-9-2 숫자에서 문자열 값으로의 형변환
_3-9-3 형변환의 관용구
_3-9-4 불린 타입으로의 형변환
_3-9-5 그 밖의 형변환
_3-9-6 객체 타입에서 기본 타입으로의 형변환
_3-9-7 기본 타입에서 객체 타입으로의 형변환
▣ 04장: 문장, 식, 연산자
4-1 식과 문장의 구조
4-2 예약어
4-3 식별자
4-4 리터럴 표기
4-5 문장이란?
4-6 블록문(복합문)
4-7 변수 선언문
4-8 함수 선언문
4-9 식문장
4-10 빈 문장
4-11 제어문
4-12 if-else 문
4-13 switch-case 문
4-14 반복문
4-15 while 문
4-16 do-while 문
4-17 for 문
_4-17-1 for 문의 관용구
4-18 for in 문
_4-18-1 배열과 for in 문
_4-18-2 for in 문에서 주의할 사항
4-19 for each in 문
4-20 break 문
4-21 continue 문
4-22 라벨을 사용한 점프
4-23 return 문
4-24 예외
4-25 기타
4-26 주석
4-27 식
4-28 연산자
4-29 식의 평가
4-30 연산자의 우선순위와 결합 규칙
4-31 산술 연산자
4-32 문자열 연결 연산자
4-33 항등 연산자
4-34 비교 연산자
4-35 in 연산자
4-36 instanceof 연산자
4-37 논리 연산자
4-38 비트 연산자
4-39 대입 연산자
4-40 산술 대입 연산자
4-41 조건 연산자(삼항 연산자)
4-42 typeof 연산자
4-43 new 연산자
4-44 delete 연산자
4-45 void 연산자
4-46 콤마(,) 연산자
4-47 점 연산자와 대괄호 연산자
4-48 함수 호출 연산자
4-49 연산자와 형변환의 주의점
▣ 05장: 함수와 객체
5-1 변수의 선언
5-2 변수와 참조
_5-2-1 함수의 인자(값 주기)
_5-2-2 문자열과 참조
_5-2-3 객체와 참조와 관련된 용어 정리
5-3 변수와 프로퍼티
5-4 변수명의 해석
5-5 변수의 존재 확인
_5-5-1 프로퍼티의 존재 확인
5-6 객체란
_5-6-1 추상 데이터 타입과 객체지향
_5-6-2 인스턴스의 협조와 객체지향
_5-6-3 자바스크립트의 객체
5-7 객체의 생성
_5-7-1 객체 리터럴
_5-7-2 생성자와 new 식
_5-7-3 생성자와 클래스 정의
5-8 프로퍼티 접근
_5-8-1 프로퍼티 값의 변경
_5-8-2 점 연산자와 대괄호 연산자의 사용 구분
_5-8-3 프로퍼티의 열거
5-9 연관 배열로서의 객체
_5-9-1 연관 배열
_5-9-2 연관 배열로서의 객체와 관련된 주의점
5-10 프로퍼티의 속성
5-11 가비지 컬렉션
5-12 불변 객체
_5-12-1 불변 객체란?
_5-12-2 불변 객체의 유용함
_5-12-3 불변 객체의 기법
5-13 메서드
5-14 this 참조
_5-14-1 this 참조의 규칙
_5-14-2 this 참조의 주의점
5-15 apply와 call
5-16 프로토타입 상속
_5-16-1 프로토타입 체인
_5-16-2 프로토타입 체인의 구체적인 예
_5-16-3 프로토타입 상속과 클래스
_5-16-4 프로토타입 체인과 관련해서 자주 볼 수 있는 착각과 __proto__ 프로퍼티
_5-16-5 프로토타입 객체
_5-16-6 프로토타입 객체와 ECMAScript 5
5-17 객체와 타입
_5-17-1 타입 판정(constructor 프로퍼티)
_5-17-2 constructor 프로퍼티의 주의점
_5-17-3 타입 판정(instanceof 연산과 isPrototypeOf 메서드)
_5-17-4 타입 판정(덕 타이핑)
_5-17-5 프로퍼티의 열거(프로토타입 상속을 고려)
5-18 ECMAScript 5의 Object 클래스
_5-18-1 프로퍼티 객체
_5-18-2 접근 함수 속성
5-19 표준 객체
5-20 Object 클래스
5-21 전역 객체
_5-21-1 전역 객체와 전역 변수
_5-21-2 Math 객체
_5-21-3 Error 객체
▣ 06장: 함수와 클로저
6-1 함수 선언문과 함수 리터럴 식
6-2 함수 호출의 정리
_6-2-1 함수 선언문의 역행
6-3 인자와 지역 변수
_6-3-1 arguments 객체
_6-3-2 재귀 함수
6-4 스코프
_6-4-1 웹 브라우저와 스코프
_6-4-2 블록 스코프
_6-4-3 let과 블록 스코프
_6-4-4 중첩 함수와 스코프
_6-4-5 셰도잉
6-5 함수는 객체
_6-5-1 함수명과 디버그 용이성
6-6 Function 클래스
_6-6-1 Function 클래스의 상속
6-7 중첩 함수 선언과 클로저
_6-7-1 클로저의 표층적인 이해
_6-7-2 클로저의 구조
_6-7-3 클로저의 함정
_6-7-4 네임스페이스의 오염 방지
_6-7-5 클로저와 클래스
6-8 콜백 패턴
_6-8-1 콜백과 제어의 반전
_6-8-2 자바스크립트와 콜백
▣ 07장: 데이터 처리
7-1 배열
_7-1-1 자바스크립트의 배열
_7-1-2 배열의 요소 접근
_7-1-3 배열의 길이
_7-1-4 배열의 요소의 열거
_7-1-5 다차원 배열
_7-1-6 배열은 객체
_7-1-7 Array 클래스
_7-1-8 배열 객체의 의미
_7-1-9 배열의 관용구
_7-1-10 배열의 내부
_7-1-11 배열 스타일의 객체
_7-1-12 이터레이터
_7-1-13 제너레이터
_7-1-14 배열의 내포
7-2 JSON
_7-2-1 JSON 문자열
_7-2-2 JSON 객체
7-3 날짜 처리
_7-3-1 Date 클래스
7-4 정규표현식
_7-4-1 정규표현식이란?
_7-4-2 정규표현식의 용어
_7-4-3 정규표현식의 문법
_7-4-4 자바스크립트의 정규표현식
_7-4-5 정규표현식 프로그래밍
_7-4-6 문자열 객체와 정규표현식 객체
[3부] 클라이언트 사이드 자바스크립트
▣ 08장: 클라이언트 사이드 자바스크립트와 HTML
8-1 클라이언트 사이드 자바스크립트의 중요성
_8-1-1 웹 애플리케이션의 발달
_8-1-2 자바스크립트의 고속화
_8-1-3 자바스크립트의 역할
8-2 HTML과 자바스크립트
_8-2-1 웹 페이지를 표시할 때의 처리 흐름
_8-2-2 자바스크립트의 작성 방법과 실행 타이밍
_8-2-3 실행 타이밍 정리
8-3 실행 환경과 개발 환경
_8-3-1 실행 환경
_8-3-2 개발 환경
8-4 디버깅
_8-4-1 alert
_8-4-2 console
_8-4-3 onerror
_8-4-4 파이어버그, 웹 인스펙터, 오페라 드래곤플라이
8-5 크로스 브라우징 지원
_8-5-1 지원해야 할 브라우저
_8-5-2 구현 방법
8-6 Window 객체
_8-6-1 Navigator 객체
_8-6-2 Location 객체
_8-6-3 History 객체
_8-6-4 Screen 객체
_8-6-5 Window 객체로의 참조
_8-6-6 Document 객체
▣ 09장: DOM
9-1 DOM이란?
_9-1-1 DOM Level 1
_9-1-2 DOM Level 2
_9-1-3 DOM Level 3
_9-1-4 DOM의 작성
9-2 DOM의 기초
_9-2-1 태그, 요소, 노드
_9-2-2 DOM 조작
_9-2-3 Document 객체
9-3 노드의 선택
_9-3-1 ID에 의한 검색
_9-3-2 태그명에 의한 검색
_9-3-3 이름에 의한 검색
_9-3-4 클래스명에 의한 검색
_9-3-5 부모, 자식, 형제
_9-3-6 XPath
_9-3-7 Selectors API
9-4 노드의 생성/추가
9-5 노드의 내용 변경
9-6 노드의 제거
9-7 innerHTML/textContent
_9-7-1 innerHTML
_9-7-2 textContent
9-8 DOM 조작의 성능
▣ 10장: 이벤트
10-1 이벤트 구동형 프로그래밍
10-2 이벤트 핸들러/이벤트 리스너의 설정
_10-2-1 HTML 요소의 속성에 지정한다
_10-2-2 DOM 요소의 프로퍼티에 지정한다
_10-2-3 EventTarget.addEventListener()를 이용한다
_10-2-4 이벤트 핸들러/이벤트 리스너 안에서의 this
10-3 이벤트 트리거
10-4 이벤트의 전파
_10-4-1 캡처링 단계
_10-4-2 타겟 단계
_10-4-3 버블링 단계
_10-4-4 전파 취소
10-5 이벤트가 갖는 요소
10-6 표준 이벤트
_10-6-1 DOM Level 2에 정의돼 있는 이벤트
_10-6-2 DOM Level 3에 정의돼 있는 이벤트
10-7 독자 이벤트
▣ 11장: 실전 클라이언트 사이드 자바스크립트
11-1 스타일
_11-1-1 스타일 변경 방법
_11-1-2 위치 지정
_11-1-3 위치
_11-1-4 애니메이션
11-2 AJAX
_11-2-1 비동기 처리의 이점
_11-2-2 XMLHttpRequest
_11-2-3 기본적인 처리 흐름
_11-2-4 동기 통신
_11-2-5 타임아웃
_11-2-6 응답
_11-2-7 동일 출처 정책
_11-2-8 크로스 오리진 통신
_11-2-9 JSONP
_11-2-10 iframe 해킹
_11-2-11 window.postMessage
_11-2-12 XMLHttpRequest Level 2
_11-2-13 크로스 오리진 통신의 보안 문제
11-3 폼
_11-3-1 폼 요소
_11-3-2 폼 컨트롤 요소
_11-3-3 내용 검증
_11-3-4 입력 검증에 이용할 수 있는 이벤트
_11-3-5 폼을 사용해 페이지 이동을 발생시키지 않는 방법
▣ 12장: 라이브러리
12-1 라이브러리를 사용해야 하는 이유
12-2 jQuery의 특징
12-3 jQuery의 기본
_12-3-1 작성 예
_12-3-2 메서드 체인
12-4 $ 함수
_12-4-1 셀렉터에 매치되는 요소를 추출한다
_12-4-2 새로운 DOM 요소를 생성한다
_12-4-3 기존의 DOM 요소를 jQuery 객체로 변환한다
_12-4-4 DOM 구축 후의 이벤트 리스너를 설정한다
12-5 jQuery에 의한 DOM 조작
_12-5-1 요소의 선택
_12-5-2 요소의 작성 ? 추가 ? 치환 ? 제거
12-6 jQuery에 의한 이벤트 처리
_12-6-1 이벤트 리스너의 등록 ? 제거
_12-6-2 이벤트 전용 이벤트 리스너 등록 메서드
_12-6-3 ready() 메서드
12-7 jQuery에 의한 스타일 조작
_12-7-1 기본적인 스타일 조작
_12-7-2 애니메이션
12-8 jQuery에 의한 AJAX
_12-8-1 AJAX() 함수
_12-8-2 AJAX()의 래퍼 함수
_12-8-3 전역 이벤트
12-9 Deferred
_12-9-1 Deferred의 기본
_12-9-2 상태 이동
_12-9-3 후속 함수
_12-9-4 병렬 처리
12-10 jQuery 플러그인
_12-10-1 jQuery 플러그인의 이용
_12-10-2 jQuery 플러그인 작성
12-11 다른 라이브러리와의 공존
_12-11-1 $ 객체의 충돌
_12-11-2 $ 객체의 충돌 방지
12-12 라이브러리의 이용법
[4부] HTML5
▣ 13장: HTML5 개요
13-1 HTML5의 역사
_13-1-1 HTML5의 등장 배경
13-2 HTML5의 현주소
_13-2-1 브라우저의 지원 상황
_13-2-2 웹 애플리케이션 과 네이티브 애플리케이션
13-3 HTML5의 개요
▣ 14장: 웹 애플리케이션
14-1 히스토리 API
_14-1-1 히스토리 API란?
_14-1-2 해시 플래그먼트
_14-1-3 인터페이스
14-2 애플리케이션캐시
_14-2-1 캐시 관리
_14-2-2 캐시 매니패스트
_14-2-3 애플리케이션캐시 API
_14-2-4 온라인과 오프라인
▣ 15장: 데스크톱 연동
15-1 드래그 드롭 API
_15-1-1 드래그 드롭 API란?
_15-1-2 인터페이스
_15-1-3 기본적인 드래그 앤 드롭
_15-1-4 표시의 커스터마이징
_15-1-5 파일의 Drag-in/Drag-out
15-2 파일 API
_15-2-1 파일 API란?
_15-2-2 File 객체
_15-2-3 FileReader
_15-2-4 data URL
_15-2-5 FileReaderSync
▣ 16장: 스토리지
16-1 웹 스토리지
_16-1-1 웹 스토리지란?
_16-1-2 기본 조작
_16-1-3 storage 이벤트
_16-1-4 Cookie에 대해
_16-1-5 네임스페이스 관리
_16-1-6 버전 관리
_16-1-7 localStorage의 에뮬레이트
16-2 인덱스 데이터베이스
_16-2-1 인덱스 데이터베이스란?
_16-2-2 인프라스트럭처
_16-2-3 데이터베이스에 연결
_16-2-4 객체 저장소의 생성
_16-2-5 데이터의 추가?제거?참조
_16-2-6 인덱스 생성
_16-2-7 데이터 검색과 갱신
_16-2-8 데이터 정렬
_16-2-9 트랜잭션
_16-2-10 동기 API
▣ 17장: 웹소켓
17-1 웹소켓 개요
_17-1-1 웹소켓이란?
_17-1-2 기존의 통신 기슬
_17-1-3 웹소켓의 사양
_17-1-4 웹소켓의 동작 방식
17-2 기본 조작
_17-2-1 연결 수립
_17-2-2 메시지 송수신
_17-2-3 연결 종료
_17-2-4 연결 상태 확인
_17-2-5 바이너리 데이터의 송수신
_17-2-6 WebSocket 인스턴스의 프로퍼티 목록
17-3 웹소켓 실전
_17-3-1 Node.js의 설치
_17-3-2 서버 사이드의 구현
_17-3-3 클라이언트 사이드의 구현
_17-3-4 클라이언트 사이드의 구현 2
▣ 18장: 웹 워커
18-1 웹 워커 개요
_18-1-1 웹 워커란?
_18-1-2 웹 워커의 동작
18-2 기본 사용법
_18-2-1 워커의 생성
_18-2-2 메인 스레드 측의 메시지 송수신
_18-2-3 워커 측의 메시지 송수신
_18-2-4 워커의 제거
_18-2-5 외부 파일 읽기
18-3 웹 워커 실전
_18-3-2 워커 처리를 중단하다
18-4 공유 워커
_18-4-1 공유 워커란?
_18-4-2 공유 워커의 생성
_18-4-3 공유 워커의 메시지 송수신
_18-4-4 공유 워커의 제거
_18-4-5 공유 워커의 응용 예
[5부] 웹 API
▣ 19장: 웹 API의 기초
19-1 웹 API와 웹 서비스
_19-1-1 웹 API가 상정하는 시스템
19-2 웹 API의 역사
_19-2-1 스크레이핑
_19-2-2 시맨틱 웹
_19-2-3 XML
_19-2-4 Atom
_19-2-5 JSON
_19-2-6 SOAP
_19-2-7 REST
_19-2-8 간단한 정리
19-3 웹 API의 구성
_19-3-1 웹 API의 형태
_19-3-2 웹 API의 이용
_19-3-3 RESTful API
_19-3-4 API 키
19-4 사용자 인증과 허가
_19-4-1 웹 애플리케이션의 세션 관리
_19-4-2 세션 관리와 사용자 인증
_19-4-3 웹 API와 권한
_19-4-4 인증과 인가
_19-4-5 OAuth
▣ 20장: 웹 API의 실례
20-1 웹 API의 카테고리
20-2 구글 번역 API
_20-2-1 준비
_20-2-2 동작 개요
_20-2-3 웹 API를 이용하는 코드
_20-2-4 위젯(Google Translate Element)
20-3 구글 지도 API
_20-3-1 구글 정적 지도 API
_20-3-2 마이맵
_20-3-3 구글 지도 API의 개요
_20-3-4 구글 지도 API의 간단한 예
_20-3-5 이벤트
_20-3-6 지오로케이션 API와 지오코딩 API
20-4 야후! 플리커
_20-4-1 플리커 웹 API의 이용
_20-4-2 플리커 웹 API의 이용 예
20-5 트위터
_20-5-1 검색 API
_20-5-2 REST API
_20-5-3 트위터 자바스크립트 API인 @anywhere
_20-5-4 트위터 위젯
20-6 페이스북
_20-6-1 페이스북 애플리케이션의 변천
_20-6-2 페이스북의 자바스크립트 API
_20-6-3 페이스북 플러그인
20-7 오픈소셜
_20-7-1 오픈소셜의 기본 아키텍처
[6부] 서버 사이드 자바스크립트
▣ 21장: 서버 사이드 자바스크립트와 Node.js
21-1 서버 사이드 자바스크립트의 동향
21-2 CommonJS
_21-2-1 CommonJS란?
_21-2-2 CommonJS의 동향
_21-2-3 모듈 기능
21-3 Node.js
_21-3-1 Node.js 개요
_21-3-2 node 명령어
_21-3-3 npm과 패키지
_21-3-4 console 모듈
_21-3-5 util 모듈
_21-3-6 process 객체
_21-3-7 전역 객체
_21-3-8 Node.js 프로그래밍의 개요
_21-3-9 이벤트 API
_21-3-10 버퍼
_21-3-11 스트림
▣ 22장: 실전 Node.js 프로그래밍
22-1 HTTP 서버 처리
_21-1-1 HTTP서버 처리의 기본
_22-1-2 요청 처리
_22-1-3 응답 처리
_22-1-4 POST 요청 처리
22-2 HTTP 클라이언트 처리
22-3 HTTPS 처리
_22-3-1 openssl 명령어를 이용한 자체 서명 인증서의 발행 방법
_22-3-2 HTTPS 서버
22-4 Socket.IO와 웹소켓
22-5 저수준 네트워크 프로그래밍
_22-5-1 저수준 네트워킹 처리
_22-5-2 소켓이란?
_22-5-3 소켓 프로그래밍의 기본 구조
_22-5-4 소켓 프로그래밍의 구체적인 예
22-6 파일 처리
_22-6-1 예제 코드
_22-6-2 파일의 비동기 처리
_22-6-3 파일의 동기 처리
_22-6-4 파일 조작 계열 함수
_22-6-5 파일 읽기
_22-6-6 파일 쓰기
_22-6-7 디렉터리 조작
_22-6-8 파일의 변경 감시
_22-6-9 파일 경로
22-7 타이머
22-8 익스프레스
_22-8-1 URL 라우팅
_22-8-2 요청 처리
_22-8-3 응답 처리
_22-8-4 스캐폴드 생성
_22-8-5 MVC 아키텍처
_22-8-6 제이드 템플릿 언어
_22-8-7 몽고디비(데이터베이스)
_22-8-8 몽구스의 실전 예제
_22-8-9 익스프레스와 몽구스를 이용한 웹 애플리케이션