Node.js, MongoDB와 AngularJS를 이용한 웹 개발 [MEAN 스택을 이용한 강력한 인터랙티브 웹 앱 프로그래밍]
- 원서명Node.js, MongoDB, and AngularJS Web Development (ISBN 9780321995780)
- 지은이브래드 데일리(Brad Dayley)
- 옮긴이테크 트랜스 그룹 T4
- ISBN : 9788960776616
- 45,000원
- 2014년 12월 30일 펴냄 (절판)
- 페이퍼백 | 732쪽 | 188*250mm
- 시리즈 : 웹 프로페셔널
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
이 책에서 사용된 예제 파일은 저자의 깃허브에서 받아보실 수 있습니다.
https://github.com/bwdbooks/nodejs-mongodb-AngularJS-web-development
요약
이 책은 Node.js, 몽고DB(MongoDB), 앵귤러JS(AngularJS)를 이용하여 강력한 인터랙티브 웹사이트와 웹 애플리케이션을 개발하고자 하는 이들을 위한 책이다. 이 책에서는 MEAN 스택의 구성 요소(서버 측 구현을 위한 Node.js와 클라이언트 측의 앵귤러JS, 그리고 데이터베이스의 몽고DB) 소개와 같은 기초적인 내용부터 시작해서 애플리케이션 요구에 부합하는 데이터 모델 설계 방법을 다룬다. 몽고DB의 Node.js 애플리케이션과의 통합 또는 앵귤러JS와 Node.js 통합, 앵귤러JS 지시어와 서비스 생성, Node.js의 익스프레스(Express) 모듈 사용 방법 등의 내용들을 다룬다. 추가적으로 실제 웹 애플리케이션 개발 예제를 다룸으로써 독자들의 이해를 돕고자 많은 노력을 하였다.
이 책에서 다루는 내용
■ Node.js와 익스프레스(Express)를 이용해서 규모 조절성(scalability)이 뛰어나고 역동적인 웹 서버를 구현하는 방법
■ 자바스크립트로 서버 측 웹 서비스를 구축하는 방법
■ 몽고DB를 사용해 웹 애플리케이션 데이터를 저장하는 방법
■ Node.js 자바스크립트 코드에서 몽고DB에 접근하고 상호작용을 하는 방법
■ 정적 웹 루트(route)와 동적 웹 루트를 선언하는 방법과 이를 지원하기 위한 서버 측 스크립트를 구현하는 방법
■ 사용자 정의 앵귤러JS 지시자를 선언해 HTML 언어를 확장하는 방법
■ Node.js 웹 서버와 상호 작용할 수 있는 클라이언트 측 서비스를 구현하는 방법
■ 풍부한 UI를 제공하는 동적 브라우저 뷰를 구축하는 방법
■ 인증된 사용자 계정을 웹 사이트나 웹 애플리케이션에 추가하는 방법
■ 웹 페이지에 중첩된 코멘트 컴포넌트를 추가하는 방법
■ 물건을 사기 시작할 때부터 구매가 끝날 때까지 내내 쓰이는 장바구니를 구현하는 방법
이 책의 대상 독자
이 책은 HTML을 기본적으로 이해하고 있으며, 현대 프로그래밍 언어로 프로그램을 짜본 경험이 있는 사람들을 대상으로 한다. 자바스크립트을 이미 아는 사람이라면 좀 더 쉽게 소화할 수 있겠지만, 이 책에서 이미 자바스크립트의 기초를 다루므로 반드시 알고 시작할 필요는 없다.
이 책의 구성
I부, ‘개요’에서는 Node.js, 몽고DB, 그리고 앵귤러JS의 상호작용 개념과 이 세 개가 완벽한 웹 개발 스택을 형성한 방식을 알아본다. 2장은 Node.js와 앵귤러JS 코드를 구현할 때 필요한 자바스크립트 언어의 기본 내용을 제공하는 자바스크립트 기초 안내서 역할을 한다.
II부, ‘Node.js 학습’에서는 Node.js 모듈을 설치하고 구현해 보는 방식으로 Node.js 언어 플랫폼을 다룬다. 이 부분에서는 사용자 정의 Node.js 모듈뿐만 아니라 웹 서버와 서버 측 스크립트를 구현하는 데 필요한 기본 프레임워크를 제공한다.
III부, ‘몽고DB 학습’에서는 몽고DB 데이터베이스를 설치하는 방법과 Node.js 애플리케이션과 통합하는 방법을 다룬다. 애플리케이션 요구에 부합되는 데이터 모델을 설계하는 방법과 Node.js 애플리케이션의 몽고DB에 접근하고 상호작용하는 방법도 설명한다.
IV부, ‘익스프레스 모듈 사용’에서는 Node.js의 익스프레스 모듈을 애플리케이션의 웹 서버로 사용하는 방법을 설명한다. 데이터 수집용 동적 루트와 정적 루트를 설정하는 방법뿐만 아니라 보안, 캐시 처리, 그리고 그 밖의 웹 서버 기초 사항들을 구현하는 방법을 학습하게 된다.
V부, ‘앵귤러JS 학습’에서는 앵귤러JS 프레임워크 아키텍처와 앵귤러JS를 Node.js 스택에 통합하는 방법을 다룬다. 이 파트는 사용자 정의 HTML 지시어와 브라우저에서 사용할 수 있는 클라이언트 측 서비스 생성을 다룬다.
VI부, ‘웹 애플리케이션 컴포넌트 개발 실무’에서는 웹 애플리케이션의 인증된 사용자 계정, 코멘트 부분, 그리고 장바구니를 제공하기 위해 Nodejs, 몽고DB, 앵귤러JS를 사용한 실용 예제 몇 개를 다뤄본다. 또한 웹 애플리케이션에서 웹 2.0 인터랙션을 구현하기 위한 몇 가지 방법도 다룬다.
목차
목차
- 1부 개요
- 1장. Node.js-to-AngularJS 스택 소개
- 기본 웹 개발 프레임워크 이해
- Node.js-to-AngularJS 스택 컴포넌트 이해
- 요약
- 다음 장에서 다룰 내용
- 2장. 자바스크립트 기본 학습
- 변수 선언
- 자바스크립트 데이터 형식
- 연산자 사용
- 루프 구현
- 함수 생성
- 변수 범위
- 자바스크립트 객체 사용
- 문자열 조작
- 배열 사용
- 에러 처리 부분 추가
- 요약
- 다음 장에서 다룰 내용
- 2부 Node.js 학습
- 3장. Node.js 입문
- Node.js 이해
- Node.js 설치
- Node.js 패키지 사용
- Node.js 애플리케이션 작성
- 데이터를 콘솔에 쓰기
- 요약
- 다음 장에서 다룰 내용
- 4장. Node.js에서 이벤트, 리스너, 타이머, 콜백을 사용
- Node.js 이벤트 모델 이해하기
- 이벤트 큐에 작업을 추가
- 콜백 구현
- 요약
- 다음 장에서 다룰 내용
- 5장. Node.js의 데이터 입출력 처리
- JSON으로 하는 작업
- 버퍼 데이터를 대상으로 Buffer 모듈을 사용
- 스트림 데이터 사용을 위한 Stream 모듈 사용하기
- zlib를 사용한 데이터 압축 및 해제
- 요약
- 다음 장에서 다룰 내용
- 6장. Node.js에서 파일시스템에 접근
- 동기적 파일 시스템 호출 vs. 비동기적 파일 시스템 호출
- 파일 열기 및 닫기
- 파일 쓰기
- 파일 읽기
- 기타 파일 시스템 작업
- 요약
- 다음 장에서 다룰 내용
- 7장. HTTP 서비스를 Node.js로 구현
- URL 처리
- 질의 문자열과 폼 전달인자 처리
- 요청, 응답, 서버 객체 이해
- Node.js에서 HTTP 클라이언트와 HTTP 서버를 구현
- HTTPS 서버와 HTTPS 클라이언트를 구현
- 요약
- 다음 장에서 다룰 내용
- 8장. Node.js에서 구현하는 소켓 서비스
- 네트워크 소켓 이해
- TCP 서버와 소켓 객체 이해하기
- TCP 소켓 서버와 클라이언트 구현
- TLS 서버와 TLS 클라이언트를 구현
- 요약
- 다음 장에서 다룰 내용
- 9장. Node.js의 다중 프로세서를 사용한 애플리케이션 확장
- process 모듈 이해
- 자식 프로세스 구현
- 프로세스 클러스터 구현
- 요약
- 다음 장에서 다룰 내용
- 10장. 추가 Node.js 모듈 사용
- os 모듈 사용하기
- util 모듈 사용
- 요약
- 다음 장에서 다룰 내용
- 3부 몽고DB 학습
- 11장. NoSQL과 몽고DB 이해
- 왜 NoSQL인가?
- 몽고DB 이해
- 몽고DB 데이터 형식
- 데이터 모델 계획
- 요약
- 다음 장에서 다룰 내용
- 12장. 몽고DB 활용 입문
- 몽고DB 환경 구축
- 사용자 계정 관리
- 접근 제어 설정
- 데이터베이스 관리
- 컬렉션 관리
- 요약
- 다음 장에서 다룰 내용
- 13장. 몽고DB와 Node.js 연계 활용 입문
- Node.js에 몽고DB 드라이버를 추가
- Node.js에서 몽고DB로 접속
- 몽고DB Node.js 드라이버에 사용된 객체 이해
- 데이터베이스 접근과 조작
- 컬렉션 접근 및 조작
- 요약
- 다음 장에서 다룰 내용
- 14장. Node.js에서 몽고DB 문서 다루기
- 데이터베이스 변경 선택 사항 이해
- 데이터베이스 갱신 연산자 이해
- 컬렉션에 문서 추가
- 컬렉션에서 문서를 검색
- 컬렉션의 문서를 갱신
- 컬렉션의 문서를 원자적으로 수정
- 컬렉션에 문서를 저장
- 컬렉션에 문서 삽입을 위해 upsert를 사용
- 문서를 컬렉션에서 삭제
- 컬렉션에서 하나의 문서를 삭제
- 요약
- 다음 장에서 다룰 내용
- 15장. Node.js에서 몽고DB 문서에 접근
- 데이터 세트 소개
- 질의 객체 이해
- options 객체 이해
- 문서의 특정 세트 탐색
- 문서 세기
- 결과 세트 제한
- 결과 세트 정렬
- 고유한 필드 값 검색
- 결과 분류
- 결과를 집계해 맵리듀스 적용
- 요약
- 다음 장에서 다룰 내용
- 16장. 몽구스를 사용한 스키마 구조화와 검증
- 몽구스 이해
- 몽구스를 사용해 몽고DB 데이터베이스에 연결하기
- 스키마 정의
- 모델 컴파일
- Query 객체 이해
- 문서 객체 이해
- 몽구스를 사용한 문서 탐색
- 몽구스를 사용해 문서를 추가
- 몽구스를 사용해 문서를 갱신
- 몽구스를 사용해 문서를 삭제
- 몽구스를 사용해 문서를 집계
- 검증 프레임워크 사용
- 미들웨어 함수 구현
- 요약
- 다음 장에서 다룰 내용
- 17장. 고급 몽고DB 개념
- 인덱스 추가
- 제한 컬렉션 사용
- 복제 적용
- 샤딩 구현
- GridFS 저장 구현
- 몽고DB 데이터베이스 수리
- 몽고DB 백업
- 요약
- 다음 장에서 다룰 내용
- 4부 익스프레스 모듈 사용
- 18장. Node.js에서 익스프레스를 구현
- 익스프레스 시동
- 루트 환경 구성
- Request 객체 사용
- Response 객체 사용
- 템플릿 엔진 구현
- 요약
- 다음 장에서 다룰 내용
- 19장. 익스프레스 미들웨어 구현
- 미들웨어 이해
- query 미들웨어 사용
- 정적 파일 전달
- POST 본문 데이터 처리하기
- 쿠키 주고받기
- 세션 구현
- 기본 HTTP 인증 적용
- 세션 인증 구현
- 사용자 정의 미들웨어 생성
- 요약
- 다음 장에서 다룰 내용
- 5부 앵귤러JS 학습
- 20장. 앵귤러JS 입문
- 왜 앵귤러JS를 사용하는가?
- 앵귤러JS 이해
- 앵귤러JS 수명 주기 개요
- 앵귤러JS와 현 자바스크립트 및 제이쿼리의 결합
- 앵귤러JS를 Node.js 환경에 추가
- HTML 문서에서 하는 앵귤러JS 부트스트랩
- 전역 API 사용
- 기본 앵귤러JS 애플리케이션 만들기
- 요약
- 다음 장에서 다룰 내용
- 21장. 앵귤러JS 모듈과 의존성 주입 이해
- 모듈과 의존성 주입 개요
- 앵귤러JS 모듈 정의
- 의존성 주입 구현
- 요약
- 다음 장에서 다룰 내용
- 22장. 한 데이터 모델이 되게 범위를 구현
- 범위 이해
- 범위 계층구조 구현
- 이벤트 전달 및 브로드캐스팅
- 요약
- 23장. 뷰를 생성하기 위해 앵귤러JS 템플릿 사용하기
- 템플릿 이해
- 표현식 사용
- 필터 사용
- 사용자 맞춤형 필터 만들기
- 요약
- 다음 장에서 다룰 내용
- 24장. 앵귤러JS 뷰에서 지시자를 구현
- 지시자 이해하기
- 빌트인 지시자 사용하기
- HTML 확장을 위한 자신만의 지시자 만들기
- 요약
- 다음 장에서 다룰 내용
- 25장. 웹 애플리케이션에서 앵귤러JS 서비스를 구현
- 앵귤러JS 서비스 이해
- 빌트인 서비스 사용
- 맞춤형 서비스 만들기
- 요약
- 다음 장에서 다룰 내용
- 6부 웹 애플리케이션 컴포넌트 개발 실무
- 26장. 웹사이트에 사용자 계정 추가
- 사용한 라이브러리
- 프로젝트 디렉토리 구조
- 사용자 모델 정의
- 서버 생성
- 루트 구현
- 사용자 컨트롤러 루트 구현
- 사용자 뷰와 인증 뷰 구현
- 앵귤러JS 모듈과 컨트롤러 구현
- 소셜 미디어 계정을 인증 소스로 사용
- 요약
- 다음 장에서 다룰 내용
- 27장. 코멘트 스레드를 페이지에 추가
- 라이브러리 사용
- 프로젝트 디렉토리 구조
- 코멘트, 응답, 포토, 페이지 모델 정의
- 코멘트 서버 만들기
- 뷰지원을 위한 루트를 구현하고 코멘트를 추가
- 모델 기반 컨트롤러 루트 구현
- Photo 뷰와 Comment 뷰 구현
- 앵귤러JS 모듈과 컨트롤러를 구현해 코멘트 뷰를 지원
- 애플리케이션 초기화
- 요약
- 다음 장에서 다룰 내용
- 28장. 자신만의 장바구니 만들기
- 프로젝트 내용
- 사용된 라이브러리
- 프로젝트 디렉토리 구조
- 고객 모델, 제품 모델, 주문 모델을 정의
- 장바구니 서버 만들기
- 제품 요청, 장바구니 요청, 주문 요청 지원을 위한 루트 구현
- 모델 기반 컨트롤러 루트 구현
- 고객 모델 컨트롤러 구현
- 장바구니와 구매 내역 승인 뷰 구현
- 앵귤러JS 모듈과 컨트롤러를 장바구니 뷰 지원하기 위해 구현
- 애플리케이션 초기화
- 요약
- 다음 장에서 다룰 내용
- 29장. 대화형 웹 2.0 애플리케이션 컴포넌트 만들기
- 프로젝트 내용
- 사용된 라이브러리
- 프로젝트 디렉토리 구조
- 프로젝트 모델 정의
- 애플리케이션 서버 만들기
- 뷰를 지원할 루트 구현
- 탭 뷰 구현
- 날씨 서비스 뷰 구현
- 드래그 가능한 엘리먼트 만들기
- 동적 데이터 액세스 구현
- 애플리케이션 초기화
도서 오류 신고
정오표
정오표
[p.33. 아래에서 4번째 줄]
JASON
→
JSON
[p.45 : 노트 위 추가]
var newVar = null;
[p.64 : 3행]
배열의 요소 수를 정하려면
->
배열의 요소 수를 구하려면
[p.83: 8행]
5. 목록 3.2의 7-14줄의
->
5. 목록 3.3의 7-14줄의
[p.106 : 그림 4.9]
[p.107 : 그림 4.10]
[p.473. 중간 코드]
https://ajax.googleapis.com/ajax/libs/앵귤러JS/1.2.5/angular.min.js
→
https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js
[p.474. 중간 코드]
http://code.앵귤러JS.org/1.2.9/angular.min.js
→
http://code.angularjs.org/1.2.9/angular.min.js
[p.613 : 4행]
두 개이 주 세션으로
->
두 개의 주 세션으로