노드JS와 몽고DB로 웹 개발 시작하기 [노드JS와 몽고DB로 유연하고 완전한 기능을 가진 웹 애플리케이션 개발 첫걸음]
- 원서명Web Development with MongoDB and NodeJS - Second Edition (ISBN 9781785287527)
- 지은이미툰 사티시(Mithun Satheesh), 브루노 조셉 드멜로(Bruno Joseph D’mello), 제이슨 크롤(Jason Krol)
- 옮긴이조승진
- ISBN : 9788960779990
- 30,000원
- 2017년 03월 31일 펴냄
- 페이퍼백 | 328쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
요약
노드JS와 몽고DB를 중심으로 빠르게 웹 개발을 할 수 있는 방법을 소개한다. 개발부터 테스트, 배포까지 실습하기에 가장 적합한 예제를 다루고 있어 빠른 프로토타입 개발을 원하는 독자들에게 가장 적합한 책이다. 다양한 예제를 통해 노드JS와 몽고DB 및 관련 기술을 익힐 수 있다.
이 책에서 다루는 내용
■ 노드JS와 몽고DB를 사용하기 위한 개발 환경 설정
■ 익스프레스JS 기반의 노드JS 웹 서버를 설정 및 작성
■ 핸들바 템플릿 엔진을 사용해 동적인 HTML 페이지 작성
■ 몽고DB와 몽구스 ODM을 사용해 데이터 영속화
■ 모카 프레임워크등과 같은 자동화된 테스트 도구를 사용해 코드 테스트
■ 헤로쿠, AWS, 마이크로소프트 애저와 같은 클라우드 환경에 배포하기
■ 한층 나은 웹 애플리케이션을 개발할 수 있도록 싱글 페이지 애플리케이션 프레임워크들을 둘러보기
이 책의 대상 독자
노드JS와 몽고DB를 사용해 완전한 기능을 가지는 웹 애플리케이션을 개발하고 구동하길 원하는 모든 수준의 자바스크립트 개발자를 위한 책이다.
이 책의 구성
1장, ‘풀스택 자바스크립트 세계에 오신 것을 환영합니다’에서는 백엔드 개발을 자바스크립트로 할 때의 장점과 노드JS에 대해 소개한다. 덧붙여, 이 책에서 개발할 애플리케이션의 전체적인 아키텍처를 설명한다.
2장, ‘일어나 달려가기’에서는 노드JS와 몽고DB를 위한 개발환경을 설정하는 방법을 설명한다. 또한 예제 앱을 구동해 모든 게 제대로 설정됐는지 검증한다.
3장, ‘노드와 몽고DB의 기초’에서는 자바스크립트, 노드JS, 몽고DB의 기초 개념을 알아본다. 노드JS와 그것을 둘러싼 다양한 개념들을 소개하고 몽고DB와 CRUD를 위한 기본 셸에 대해 알아본다.
4장, ‘익스프레스 소개’에서는 익스프레스와 다양한 컴포넌트를 알아보고, 프레임워크를 사용해 기본적인 애플리케이션을 개발할 때 어떻게 체계를 잡는지 살펴본다.
5장, ‘템플릿과 핸들바’에서는 템플릿 엔진과 핸들바의 개념을 소개한다. 또한 애플리케이션에서 템플릿 엔진으로 어떻게 핸들바를 사용하는지 보여준다.
6장, ‘컨트롤러와 뷰 모델’에서는 익스프레스의 컨트롤러와 뷰를 붙여넣은 예제 애플리케이션의 코드를 어떻게 구조화하는지 보여준다. 또한 코드를 여러 가지 모듈로 나누고 익스프레스 프레임워크를 도입해 간접적으로 MVC 개념에 대해 알려준다.
7장, ‘몽고DB로 데이터 저장’에서는 개발 중인 노드JS 애플리케이션에서 어떻게 몽고DB에 접속하는지 보여준다. 또한 몽구스(Mongoose)로 가장 잘 알려진 ODM의 개념에 대해서도 소개한다.
8장, ‘레스트풀 API 작성’에서는 레스트풀(RESTful) API를 소개하고, 애플리케이션의 레스트풀 래퍼의 중요성에 대해서도 언급한다. 그리고 애플리케이션을 어떻게 REST API 기반의 애플리케이션으로 변경하는지 알려준다.
9장, ‘코드 테스트’에서는 애플리케이션에서 테스트를 수행해야 하는 이유와 코드를 작성할 때 테스트를 용이하게 하기 위한 유의사항을 알려준다.
10장, ‘클라우드 기반 서비스에서의 배포’에서는 개발한 노드JS와 몽고DB 애플리케이션을 배포하기 위한 여러 가지 옵션들을 알아본다. 또한 시장에서 선택 가능한 다양한 PaaS 솔루션들을 비교해본다.
11장, ‘잘 알려진 프론트엔드 프레임워크와 싱글 페이지 애플리케이션’에서는 싱글 페이지 애플리케이션에 대해 논의하고, 사용 가능하고 잘 알려진 프론트엔드 프레임워크를 분석해본다. 사용 가능한 자동화 도구나 트랜스파일러 같은 측면에서 프론트엔드 개발을 바라보게 될 것이다.
12장, ‘유명한 노드JS 웹 프레임워크’에서는 애플리케이션을 개발할 때 사용했던 익스프레스 JS 외에, 노드JS에서 사용 가능한 다양한 웹 프레임워크를 다룬다. Meteor, Sails, Koa, Hapi, Flatiron 같은 다양한 웹 프레임워크를 분석한다.
목차
목차
- 1장. 풀스택 자바스크립트 세계에 오신 것을 환영합니다!
- 노드JS에 대한 간략한 소개
- V8 엔진이 가져오는 이점
- 노드JS는 싱글 스레드!
- 논블로킹 비동기 실행
- npm: 노드 패키지 매니저
- 자바스크립트 재사용과 공유
- 단순히 웹 서버를 구현하기 위한 것은 아니다!
- socket.io를 이용한 실시간 웹 애플리케이션
- 네트워킹과 파일 IO
- io.js의 유래
- 노드JS로 구현한 간단한 서버
- 언제 노드JS를 사용할 것인가?
- NoSQL 운동
- 몽고DB에 대해 간략한 설명
- 몽고DB의 기능
- 노드와 몽고DB의 실제 사용 사례
- 이 책을 통해 얻을 수 있는 것
- 요약
- 노드JS에 대한 간략한 소개
- 2장. 일어나 달려가기
- 노드JS 설치
- 맥 OS X
- 윈도우
- 리눅스
- 노드JS 설치 확인
- 온라인 문서들
- 몽고 DB 설치
- 맥 OS X에 설치하기
- 윈도우 7/8에 설치하기
- 리눅스에 설치하기
- 몽고DB 설치 확인하기
- 온라인 문서들 즐겨찾기
- 첫 번째 앱 작성
- 테스트 애플리케이션 작성
- 의존성 모듈 가져오기
- 애플리케이션 코드 추가하기
- 코드 이해하기
- 예제 애플리케이션 구동
- 데이터베이스 확인
- 요약
- 노드JS 설치
- 3장. 노드와 몽고DB의 기초
- 자바스크립트 입문
- 기초 문법
- 데이터 타입
- 변수의 스코프 이해하기
- 연산자와 흐름
- 객체 이해하기
- 배열 이해하기
- 함수 이해하기
- 익명 함수와 콜백
- JSON
- 노드JS의 기초
- 이벤트 드리븐
- 비동기 실행
- 모듈 시스템
- 노드JS 핵심
- NPM으로 모듈 설치
- 몽고DB의 기초
- 몽고 셸
- 데이터 삽입
- 쿼리
- 데이터 갱신
- 데이터 삭제
- 추가 자료
- 요약
- 자바스크립트 입문
- 4장. 익스프레스 소개
- 웹 애플리케이션 프레임워크
- 익스프레스JS란?
- 완전한 웹 애플리케이션 개발
- 웹 애플리케이션 디자인
- 파일 구조 잡기
- 애플리케이션의 시작점 만들기
- 애플리케이션 구동
- 미들웨어의 이해와 사용
- configure 모듈
- configure 모듈 활성화
- 라우터와 컨트롤러
- 커스텀 미들웨어
- 핸들바 뷰
- 요약
- 5장. 템플릿과 핸들바
- 템플릿 엔진
- 서버 측 템플릿과 클라이언트 측 템플릿
- 클라이언트 측 템플릿
- 서버 측 템플릿
- 뷰
- 레이아웃
- 파셜 뷰
- 핸들바의 기초
- 템플릿에 객체 바인딩
- 프레젠테이션 로직 삽입
- 핸들바 헬퍼
- 전역 헬퍼
- 뷰를 위한 헬퍼
- 뷰 그리기
- 요약
- 6장. 컨트롤러와 뷰 모델
- 컨트롤러
- 뷰 모델
- 홈 컨트롤러 수정
- 이미지 컨트롤러 수정
- 이미지 출력
- 이미지 업로드
- 코드 재사용을 위한 헬퍼
- 사이드바 모듈
- 통계 모듈
- 이미지 모듈
- 댓글 모듈
- 사이드바 기능 테스트
- UI 작업 이터레이션
- 요약
- 7장. 몽고DB로 데이터 저장
- 노드JS에서 몽고DB 사용하기
- 몽고DB 연결
- 도큐먼트 삽입
- 도큐먼트 반환
- 몽구스 소개
- 스키마
- 모델
- 내장 검증 기능
- 정적 메소드
- 가상 프로퍼티
- 몽구스와의 연결
- 스키마와 모델 정의
- 모델 인덱스 파일
- 컨트롤러에 CRUD 추가
- 홈 컨트롤러
- 이미지 컨트롤러
- 인덱스: 이미지 모델을 반환
- 생성: 이미지 모델을 새로 삽입
- 지금까지의 완성물 테스트하기
- ‘좋아요’ 버튼과 이미지 모델 갱신
- 댓글: 댓글 모델 삽입
- Wrapping it up
- 헬퍼
- 비동기 모듈 소개
- 댓글 헬퍼
- 사이드바 헬퍼
- 트러블슈팅
- 통계 헬퍼
- 뜨는 이미지 헬퍼
- 이미지 삭제 기능 추가
- 경로 추가
- 컨트롤러 핸들러 추가
- 핸들바 이미지 페이지 템플릿 수정
- jQuery 변경
- 리팩토링과 개선
- 요약
- 노드JS에서 몽고DB 사용하기
- 8장. 레스트풀 API 작성
- API란?
- 레스트풀 API란?
- 포스트맨 REST 클라이언트 소개
- 설치 방법
- 포스트맨 클라이언트
- JSONVIew 크롬 익스텐션
- 기본 API 서버 생성
- 견본 JSON 응답 생성
- GET 요청에 대한 응답
- 데이터 수신: POST와 PUT
- 데이터 삭제: DELETE
- 노드JS에서의 외부 API 소비
- request를 사용한 API 엔드포인트 소비
- 요약
- 9장. 코드 테스트
- 필요 도구들
- 모카 프레임워크로 테스트하기
- 차이JS를 사용해 테스트하기
- 차이 알아보기
- 시논JS를 사용한 스파이와 스텁
- 프록시콰이어를 이용한 모듈 스터빙
- 첫 번째 테스트 작성과 실행
- 테스트 헬퍼 작성
- 애플리케이션 테스트
- 경로 테스트
- 서버 테스트
- 모델 테스트
- 컨트롤러 테스트
- 모든 것을 스파이, 스텁!
- 요약
- 필요 도구들
- 10장. 클라우드 기반 서비스에서의 배포
- 전통적인 방법과 클라우드 호스팅 비교
- IaaS와 PaaS 비교
- 깃 소개
- 애플리케이션 배포
- Nodejistsu
- 헤로쿠
- 아마존 웹 서비스
- 몽고랩 계정과 데이터베이스 생성
- AWS 환경 구성과 생성
- 마이크로소프트 애저
- 디지털 오션
- 요약
- 전통적인 방법과 클라우드 호스팅 비교
- 11장. 잘 알려진 프론트엔드 프레임워크와 싱글 페이지 애플리케이션
- 싱글 페이지 애플리케이션이란?
- 프론트엔드 프레임워크를 왜 사용해야 하는가?
- 투두MVC 프로젝트
- 백본 JS
- 엠버JS
- 앵귤러 JS
- 프론트엔드 개발 도구들
- 자동화된 빌드 매니저
- 의존성 관리
- 이식성
- HTML 템플릿 엔진
- CSS 트랜스파일링
- 테스트와 테스트 주도 개발
- 팬텀JS 헤드리스 브라우저
- 요약
- 12장. 유명한 노드JS 웹 프레임워크
- Koa
- Meteor
- Sails
- Hapi
- Flatiron
- 요약
도서 오류 신고
정오표
정오표
[p.92 : 본문 9행]
erorhandler
->
errorhandler