서브메뉴

본문

Node.js, MongoDB와 AngularJS를 이용한 웹 개발 (MEAN 스택을 이용한 강력한 인터랙티브 웹 앱 프로그래밍)
Node.js, MongoDB와 AngularJS를 이용한 웹 개발 (MEAN 스택을 이용한 강력한 인터랙티브 웹 앱 프로그래밍)
저자 : 브래드 데일리
출판사 : 에이콘출판
출판년 : 2014
ISBN : 9788960776616

책소개

[Node.js, MongoDB와 AngularJS를 이용한 웹 개발]은 책은 Node.js, 몽고DB(MongoDB), 앵귤러JS(AngularJS)를 이용하여 강력한 인터랙티브 웹사이트와 웹 애플리케이션을 개발하고자 하는 이들을 위한 책이다. 책에는 Node.js와 익스프레스(Express)를 이용해서 규모 조절성(scalability)이 뛰어나고 역동적인 웹 서버를 구현하는 방법, 몽고DB를 사용해 웹 애플리케이션 데이터를 저장하는 방법, Node.js 자바스크립트 코드에서 몽고DB에 접근하고 상호작용을 하는 방법, 사용자 정의 앵귤러JS 지시자를 선언해 HTML 언어를 확장하는 방법, 풍부한 UI를 제공하는 동적 브라우저 뷰를 구축하는 방법 등을 다루고 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

★ 요약 ★

이 책은 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 인터랙션을 구현하기 위한 몇 가지 방법도 다룬다.

★ 저자 서문 ★

이 책을 펴든 모든 분을 환영한다. 이 책은 여러분을 웹 개발 프로젝트의 서버와 서비스뿐만 아니라 브라우저에서 작동하는 클라이언트에 이르기까지, 자바스크립트를 사용하는 세상으로 데리고 갈 것이다. 웹 개발 세상에서 최근 부각되고 있는 가장 흥미진진하고 혁신적인 기술들 중 일부인 Node.js, 몽고DB(MongoDB), 그리고 앵귤러JS(AngularJS)를 통합한 구현 방식을 다룬다.

이 책은 웹 서버와 웹 서버에 대한 서비스부터 브라우저 기반의 상호작용 가능한 웹 애플리케이션에 이르기까지, 강력하고 상호 작용 가능한 웹사이트와 웹 애플리케이션을 개발하는 방법을 가르쳐줄 것이다. 여기서 다루는 기술들은 모두 오픈 소스를 바탕으로 삼고 있으며, 자바스크립트를 서버와 브라우저 양쪽 구성 요소를 위해 사용할 수 있게 한다.

이 책의 일반적인 독자들은, 쉽게 규모를 조절할 수 있고 성능도 좋은, 웹사이트를 구축하기 위해 Node.js와 몽고DB를 완전히 익히고자 할 것이다. 또한 앵귤러JS의 혁신적인 MVC 패턴을 이용해서 잘 설계되고 구조화된 웹 페이지와 웹 애플리케이션을 구현하고자 할 것이다. 전반적으로 Node.js, 몽고DB, 앵귤러JS는 쉽게 구현할 수 있고, 놀라운 웹 2.0 애플리케이션을 구현 가능하게 하는 완전히 통합된 웹 개발 스택을 제공한다.

★ 옮긴이의 말 ★

스위스 제네바 소재 유럽입자물리연구소에 근무하던 팀 버너스리(Tim Berners-Lee)가 1989년부터 개발하기 시작한 월드와이드웹(World Wide Web)은 다양한 형태로 된 데이터와 정보에 어디에서든지 접근할 수 있게 해준 서비스로, 현재까지 지속해서 진화하며 발전하고 있다. 월드와이드웹은 고에너지 물리(High Energy Physics) 학계의 정보 교환 프로젝트 모델이었지만, 지금은 다양한 데이터를 누구든지 공유하고 주고받을 수 있는 정보 제공 매개체 겸 소비매개체로서 중요한 역할을 담당하고 있다.

월드와이드웹을 바탕으로 삼아 다양한 서비스를 제공하는 일에는 웹 애플리케이션 개발이 매우 중요하다. 웹 애플리케이션 구축 시 서버 프로그램은 자바로 구현하고, 클라이언트 프로그램은 HTML과 자바스크립트와 CSS 등을 이용해 구현하면서, MySQL과 같은 관계형 데이터베이스를 사용하는 것이 일반적인 방법이다. 이와 같은 조합이 분명히 강력한 해법이기는 하지만, 간단한 웹을 구현하더라도 SQL과 자바와 자바스크립트와 CSS 등을 모두 사용할 줄 알아야 한다는 단점이 있다.

또한, 같은 데이터를 담은 객체들의 형식이 서로 달라서 객체 간에 변환 작업을 반드시 수행해야 하다 보니 오버헤드가 발생하고 이로 인해 성능도 낮아질 수밖에 없다. 이를 해결하기 위해 등장한 솔루션 중 하나가 바로 MEAN(MongoDB, Express, AngularJS, Node.js)이라는 스택이다. 이 조합을 해법으로 삼은 경우에는 같은 언어(JavaScript)와 같은 데이터 객체(JSON)를 사용하게 되므로 웹 애플리케이션 개발 시 진입 장벽이 낮아진다. 이 책은 이러한 MEAN 스택을 좀 더 쉽게 이해할 수 있게 하는 한편으로 이 조합을 이용해 실제 웹 애플리케이션을 구축할 수 있게 한다.

이 책에는 웹 프로그래밍을 위한 핵심 요소 기술들이 잘 설명되어 있고 예제도 많이 수록되어 있다. 이 책으로 독자들은 많은 활용 사례를 확보할 수 있을 것으로 예상된다. 이와 같은 각 사례를 바탕으로 삼아 자신만의 것으로 확장하는 방법을 고민해 보아야 할 것이다.
[교보문고에서 제공한 정보입니다.]

목차정보

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 애플리케이션 컴포넌트 만들기
__프로젝트 내용
__사용된 라이브러리
__프로젝트 디렉토리 구조
__프로젝트 모델 정의
__애플리케이션 서버 만들기
__뷰를 지원할 루트 구현
__탭 뷰 구현
__날씨 서비스 뷰 구현
__드래그 가능한 엘리먼트 만들기
__동적 데이터 액세스 구현
__애플리케이션 초기화
__요약
[교보문고에서 제공한 정보입니다.]