Top

중급 개발자를 위한 MEAN 스택 공략 [MongoDB, Express, AngularJS, Node.js 풀스택 애플리케이션 구축]

  • 원서명MEAN Web Development (ISBN 9781783983285)
  • 지은이아모스 하비브(Amos Q. Haviv)
  • 옮긴이박재호
  • ISBN : 9788960777217
  • 35,000원
  • 2015년 06월 19일 펴냄
  • 페이퍼백 | 400쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

요약

최근 풀스택 엔지니어라는 용어가 유행하면서 웹 애플리케이션을 개발하는 수단으로서 자바스크립트 기반의 MEAN 스택에 대한 관심이 그 어느 때보다 높아지고 있다. 이 책은 MEAN(MongoDB, Express, AngularJS, Node.js)을 사용해 애플리케이션을 완성하는 방법을 개별 구성 요소의 설명과 함께 심도 있게 소개한다. 예제를 위한 예제에서 벗어나 완성도 높은 애플리케이션 개발에 꼭 필요한 다양한 인증 방법과 익스프레스와 잘 어울리는 EJS 템플릿 엔진을 사용해 실전에 가까운 예제를 제공한다. mean.io와 mean.js를 만든 사람이 집필한 책답게 MEAN에 대한 설명이 이해하기 쉽고 명확할뿐더러 예제 프로젝트 아키텍처 수립 방식과 구성 요소의 분할과 연결 방법에서도 배울 점이 많을 것이다. 이 책을 읽고 나면 MEAN 개발과 관련된 지식 수준과 자신감이 한 단계 높아지리라 믿는다.

이 책에서 다루는 내용

■ 익스프레스(Express) 애플리케이션 설정과 실행
■ 애플리케이션 데이터를 저장하고 인출하기 위한 MongoDB 사용
■ 익스프레스 애플리케이션을 MongoDB에 연결하고 몽구스(Mongus) 모델을 사용
■ 사용자 인증을 관리하고 패스포트를 사용한 다양한 로그인 옵션 제공
■ MEAN 프로젝트에서 AngularJS 애플리케이션의 구조화와 활용
■ Socket.io를 사용한 클라이언트와 서버 사이의 실시간 통신
■ 애플리케이션의 익스프레스와 AngularJS 엔티티 테스트
■ 인기 있는 외부 도구를 사용한 MEAN 애플리케이션의 효율적인 개발

이 책의 대상 독자

MEAN 스택을 사용해 현대적인 웹 애플리케이션을 구축하는 방법을 배우는 데 관심이 많은 웹 또는 풀스택 자바스크립트 개발자에게 적합하다.

이 책의 구성

1장. ‘MEAN 소개’에서는 MEAN 스택을 소개하고 전제 조건에 맞춰 운영체제별로 다양한 소프트웨어 설치 방법을 보여준다.

2장. ‘노드 시작’에서는 노드의 기초와 웹 애플리케이션 개발을 위한 노드 사용 방식을 설명한다.

3장. ‘익스프레스 웹 애플리케이션 구축’에서는 MVC 패턴을 중심으로 익스프레스 애플리케이션 생성과 구조화 방법을 알아본다.

4장. ‘MongoDB 소개’에서는 MongoDB의 기본과 애플리케이션 데이터를 저장하기 위한 MongoDB 사용 방법을 알아본다.

5장. ‘몽구스 소개’에서는 익스프레스 애플리케이션을 MongoDB 데이터베이스와 연결하기 위한 몽구스 사용 방법을 보여준다.

6장. ‘패스포트를 사용한 사용자 인증 관리’에서는 사용자의 인증 관리와 다양한 로그인 옵션 제공 방법을 설명한다.

7장. ‘AngularJS 소개’에서는 익스프레스 애플리케이션과 연계한 AngularJS 애플리케이션 구현 방법을 알아본다.

8장. ‘MEAN CRUD 모듈 생성’에서는 MEAN 애플리케이션 엔티티 작성과 사용 방법을 설명한다.

9장. ‘Socket.io을 사용한 실시간 기능 추가’에서는 클라이언트와 서버 사이의 실시간 통신 기능 작성과 사용 방법을 알아본다.

10장. ‘MEAN 애플리케이션 테스트’에서는 MEAN 애플리케이션의 다양한 부문을 자동으로 테스트하는 방법을 알아본다.

11장. ‘MEAN 애플리케이션 자동화와 디버깅’에서는 MEAN 애플리케이션의 더욱 효율적인 개발 방법을 설명한다.

저자/역자 소개

지은이의 말

1995년 봄으로 돌아가보면, 당시 웹 브라우저는 오늘날 웹 브라우저와 상당히 달랐다. (팀 버너스리(Tim Berners-Lee)가 작성한 첫 인터넷 브라우저인) 월드 와이드 웹이 등장한 지 4년이 지났고, 모자이크의 첫 버전이 출시된 지 2년이 지났으며, 인터넷 익스플로러 1.0은 몇 달 후에야 나올 상황이었다. 월드 와이드 웹은 인기를 끌기 시작했고, 비록 몇몇 대기업이 이 분야에 관심을 보이긴 했지만, 그 당시 파괴적 혁신을 이끄는 주체는 넷스케이프라는 작은 회사였다.
이미 넷스케이프의 인기 있는 브라우저인 넷스케이프 내비게이터는 두 번째 버전을 위한 작업이 진행되고 있었으며, 클라이언트 엔지니어링 팀과 공동 창립자인 마크 안드레센(Marc Andreessen)은 내비게이터 2.0에 프로그래밍 언어를 내장해야 마땅하다고 결정했다. 이 작업을 할당받은 소프트웨어 엔지니어인 브랜든 아이크(Branden Eich)는 1995년 5월 6일부터 15일까지 열흘 동안 이 작업을 완료했다. 언어 이름은 모카(Mocha)에서 출발해 라이브스크립트(LiveScript)를 거쳐 결국 자바스크립트(JavaScript)가 되었다. 넷스케이프 내비게이터 2.0은 1995년 9월에 출시되었으며, 우리가 오늘날 웹 브라우저라고 인지하는 형태로 변신했다. 1996년 8월에 인터넷 익스플로러 3.0이 자바스크립트의 독자적인 구현을 소개했고, 1996년 11월에 넷스케이프는 표준화 목적으로 자바스크립트를 ECMA에 제출했다고 발표했다. 1997년 6월 ECMA-262 명세가 발표되었고, 자바스크립트는 웹을 위한 업계 표준 프로그래밍 언어가 되었다.
여러 해 동안, 자바스크립트는 아마추어를 위한 프로그래밍 언어로 폄하되었다. 자바스크립트의 아키텍처, 파편화된 구현, 당시의 ‘아마추어’급 개발자 등으로 인해 전문적인 프로그래머들은 자바스크립트를 폄하해 왔다. 하지만 때마침 Ajax가 도입되고, 구글이 지메일과 구글 맵스 애플리케이션을 2000년대 중반에 출시하자, Ajax 기술을 사용해 웹 사이트를 웹 애플리케이션으로 바꿀 수 있다는 사실이 불현듯 확고해졌다. 이는 새로운 웹 개발자 세대들이 자바스크립트 개발을 한 단계 끌어올리게 하는 계기가 되었다.
제이쿼리(jQuery)나 프로토타입(Prototype)과 같은 유틸리티 라이브러리로 대표되는 1세대로 시작한 모던 웹 개발 방식은 구글이 훌륭한 크롬(Chrome) 브라우저와 V8 자바스크립트 엔진을 2008년 말에 출시하면서 곧바로 탄력을 받기 시작했다. JIT 컴파일 기능을 탑재한 V8 엔진은 자바스크립트 성능을 엄청나게 개선했다. 이는 자바스크립트 개발에 신기원을 열었다. 2009년은 자바스크립트 분야에 경이적인 해였다. 노드(Node.js)와 같은 플랫폼이 갑자기 등장하면서 개발자들은 자바스크립트를 서버에서 구동할 수 있게 됐다. MongoDB와 같은 데이터베이스가 인기를 얻으면서 JSON 저장소 사용을 단순하게 만들었고, AngularJS와 같은 프레임워크는 강력한 신형 브라우저를 활용하기 시작했다. 등장한 지 거의 20년이 지난 오늘날, 자바스크립트는 쓰이지 않는 곳이 없다. 작은 스크립트를 수행하는 ‘아마추어’ 프로그래밍 언어로만 인식되어온 자바스크립트는 이제 전 세계에서 가장 인기 있는 프로그래밍 언어 중 하나로 자리잡았다. 재능있는 엔지니어들의 현신적인 참여와 함께 오픈소스 협업 도구의 출현은 자바스크립트 커뮤니티를 세상에서 가장 풍부한 공동체로 손꼽히게 만들었으며, 여러 기여자가 뿌린 씨앗은 이제 폭발적인 창의력으로 활짝 피어나고 있다.
실질적인 영향력은 거대하다. 한때 각자 맡은 분야의 전문가로서 파편화된 팀을 이뤘던 개발자들은 이제 더 린(lean)하고 더 애자일한 소프트웨어를 개발할 수 있는 능력을 갖춘 단일 팀을 구성했고 전 계층을 아우르는 단일 언어를 사용하게 되었다.
풀스택 자바스크립트 프레임워크도 많이 등장했다. 훌륭한 팀이 만든 것도 있고, 중요한 문제를 해결한 프레임워크도 나왔지만, 어느 것도 MEAN 스택만큼 개방적이고 모듈화된 것은 없었다. MEAN 스택의 개념은 단순하다. 데이터베이스로 MongoDB를, 웹 프레임워크로 익스프레스(Express)를, 프론트엔드 프레임워크로 AngularJS를, 플랫폼으로 노드를 택한다. 그리고 모던한 소프트웨어 개발에 필요한 유연성을 보장하는 현대적인 접근 방식으로 이 모두를 하나로 결합할 것이다. MEAN의 접근 방식은, 모듈 하나가 쓸모가 없어지면 더 잘 맞는 모듈로 매끄럽게 대체할 수 있는, 안정적이며 최신으로 유지되는 오픈소스 모듈을 둘러싼 공동체에 의존한다.
자바스크립트 혁명에 참여한 여러분을 환영한다. 이 책에서는 여러분이 풀스택 자바스크립트 개발자로 성장하기 위해 필요한 도움을 아끼지 않을 것이다.
이 책에서는, 환경을 설정하고 최고의 모듈을 사용해 다양한 MEAN 구성 요소를 하나로 연결하는 방법을 설명할 것이다. 코드를 깨끗하면서 단순하게 유지하는 우수 관례와 일반적인 함정을 회피하는 방법을 소개할 것이다. 인증 계층을 만들고 첫 엔티티를 추가하는 방법도 살펴볼 것이다. 자바스크립트 비차단(nonblocking) 아키텍처를 지렛대로 삼아 서버와 클라이언트 애플리케이션 사이의 실시간 통신을 구현하는 방법을 설명할 것이다. 마지막으로 적절한 테스트로 코드를 검토하는 방법과 개발 과정을 자동화하기 위해 사용할 도구가 무엇인지를 보여줄 것이다.

지은이 소개

아모스 하비브(Amos Q. Haviv)

소프트웨어 개발자이자 기술 컨설턴트이며, MEAN.IO와 MEAN.JS의 창립자다. 거의 10년에 걸쳐 풀스택 개발자로 활동해왔으며, 여러 스타트업과 엔터프라이즈 회사를 위해 일해왔다. 현재 닷넷프레임워크(.NET Framework), 파이썬, 스칼라, 오브젝티브C, 자바스크립트를 포함한 다양한 플랫폼, 프레임워크, 프로그래밍 언어로 작업하고 있다.
지난 3년 동안 AngularJS와 같은 MVC 프론트엔드는 물론이고 노드와 MongoDB를 포함하는 풀스택 자바스크립트 솔루션으로 작업해왔다. 2013년, MEAN 애플리케이션을 위한 인기 있는 기본 틀을 제공하기 위해 MEAN.IO를 만들었고, 현재 http://meanjs.org에서 MEAN 솔루션을 개발 중이다. 또한 소모임과 컨퍼런스에서 고급 웹 기술에 대한 강의를 맡고 있으며, 다양한 회사에서 개발 팀을 지도한다.

옮긴이의 말

요즘 한창 사람들의 관심이 집중되고 있는 다재다능한 풀스택 엔지니어가 되려면 프론트엔드부터 백엔드까지 전반적인 기술을 아우르는 방대한 주제를 이해해야 하므로 폭넓게 학습해야 한다. 기술은 계속 발전하고 있으며 알아야 할 내용은 끝이 없기 때문에 어떻게 시작할지 막막하기만 한 것이 현실이다. 다행히 MEAN이라는 스택이 등장해서 개발자들에게 한 가닥 희망을 주고 있다. MEAN은 MongoDB, Express, AngularJS, Node.js의 첫 글자를 따서 만들었으며, 과거 웹 개발에 유명했던 LAMP(Linux, Apache, MySQL, PHP(또는 Perl))에 비견할만한 지위를 갖추고 있다.
MEAN의 가장 중요한 특성은 바로 모든 구성 요소가 공통 언어로 자바스크립트를 사용한다는 점이다. 일단 자바스크립트만 알고 있으면, 프론트엔드부터 백엔드까지 상이한 프로그래밍 언어 문제로 곤란을 겪는 일은 없을 것이다.
여러 구성 요소에서 프로그래밍 언어가 통일되어 있더라도 모든 것을 처음부터 다시 쌓아 올려야 한다면 문제가 될 것이다. 다행히도 MEAN은 노드에서 기본으로 제공하는 NPM이라는 백엔드 패키지 관리자와 바우어(Bower)라는 프론트엔드 패키지 관리자를 제공해 외부 라이브러리를 자유롭게 활용하게 도와준다. MEAN용으로 개발된 엄청나게 많은 오픈소스 개발 도구와 라이브러리가 존재하므로, 개발자를 든든하게 뒷받침해준다. 매번 처음부터 새로 만들지 않고 검증된 기성 부품을 잘 활용해 원하는 서비스와 제품을 만들면 되기 때문에 생산성이 엄청나게 높아진다. 모든 것을 최대한 단순하게 가져간다는 노드의 철학은 작은 것이 아름답다는 유닉스의 철학과 일맥 상통하므로 다양한 유틸리티와 라이브러리를 연결하는 과정에서 전체는 부분의 합보다 크다는 상승 작용을 느낄 수 있을 것이다.
이 책은 자바스크립트와 MEAN 스택에 대한 기본 지식이 있는 개발자에게 적합한 구성을 택하고 있다. 먼저 MEAN을 구성하는 개별 구성 요소를 공략한다. 노드, 익스프레스 웹 애플리케이션, MongoDB, AngularJS를 사용한 개발 방식을 소개한다. 또한 익스프레스 애플리케이션과 MongoDB를 연결하는 몽구스와 실제 상용 환경에서 요구하는 사용자 인증 관리와 소셜 로그인을 위한 패스포트에 대해 추가적으로 설명한다. 그러고 나서 앞서 설명한 개별 구성 요소를 모두 연결해 CRUD 모듈 생성 방법을 설명한다. 이런 서술 방식은 MEAN 개별 구성 요소에 대한 진입 장벽을 낮춘 다음에 실제로 여러 구성 요소를 합치기 때문에 MEAN 스택 학습 시간을 상당히 줄여주는 효과가 있다. 전반적인 개발 역량을 끌어올린 다음에 Socket.io를 사용한 실시간 기능 추가와 테스트, 자동화, 디버깅으로 마무리한다. 웹 브라우저 단에서 데이터베이스 단까지 전체를 다루며, 구현에서 테스트에 이르는 개발 과정을 아우르기 때문에 이 책 한 권이면 MEAN 스택을 단기간에 독파할 수 있을 것이다.
이 책에 앞서 독자 여러분들께 선보인 『MEAN 스택을 사용한 모던 웹 개발 입문』(에이콘출판, 2015)과 함께 읽어보면 도움이 될 것이다. 이 책과는 조금 다른 관점으로 MEAN을 바라볼 수 있을 것이다. 아무쪼록 MEAN 스택을 사용해 생산성을 높이고 성능과 확장성도 덤으로 얻는 좋은 성과를 얻기 바란다. 독자 여러분의 행운을 빈다!

옮긴이 소개

박재호

포항공과대학교 컴퓨터공학과 학부와 컴퓨터공학과 대학원을 졸업했다. 블로그 ‘컴퓨터 vs 책(http://jhrogue.blogspot.com)’을 운영하고 있다. 에이콘출판사에서 펴낸 『조엘 온 소프트웨어』, 『초난감 기업의 조건』, 『리눅스 시스템 관리 완벽 가이드』, 『코드로 읽는 리눅스 디바이스 드라이버』, 『악성코드와 멀웨어 포렌식』, 『아파치 Solr 4 구축과 관리』, 『전문 검색과 분석을 위한 Elasticsearch 서버』, 『MEAN 스택을 사용한 모던 웹 개발 입문』 등을 번역했다.

목차

목차
  • 1 MEAN 소개
    • 3계층 웹 애플리케이션 개발
    • 자바스크립트의 진화
    • MEAN 소개
    • MongoDB 설치
      • 윈도우에서 MongoDB 설치
        • 수동으로 MongoDB 시작
        • 윈도우 서비스로 MongoDB 시작
      • 맥 OS X와 리눅스에서 MongoDB 설치
        • 바이너리로 MongoDB 설치
        • 패키지 관리자를 사용한 MongoDB 설치
      • MongoDB 셸 사용
    • 노드 설치
      • 윈도우에서 노드 설치
      • 맥 OS X에서 노드 설치
      • 리눅스에서 노드 설치
      • 노드 시작
    • NPM 소개
      • NPM 사용
      • NPM 설치 과정
      • package.json 파일을 사용한 의존성 관리
    • 정리

  • 2 노드 시작
    • 노드 소개
      • 자바스크립트 이벤트 구동 프로그래밍
      • 노드 이벤트 구동 프로그래밍
    • 자바스크립트 클로저
    • 노드 모듈
      • CommonJS 모듈
      • 노드 핵심 모듈
      • 노드 외부 모듈
      • 노드 파일 모듈
      • 노드 폴더 모듈
    • 노드 웹 애플리케이션 개발
      • 커넥트 모듈 만나기
        • 커넥트 미들웨어
        • 커넥트 미들웨어의 순서 이해
        • 커넥트 미들웨어 마운트
    • 정리

  • 3 익스프레스 웹 애플리케이션 구축
    • 익스프레스 소개
    • 익스프레스 설치
    • 첫 익스프레스 애플리케이션 생성
    • 애플리케이션, 요청, 응답 객체
      • 애플리케이션 객체
      • 요청 객체
      • 응답 객체
    • 외부 미들웨어
    • MVC 패턴 구현
      • 애플리케이션 폴더 구조
        • 수평 폴더 구조
        • 수직 폴더 구조
        • 파일 이름 관례
        • 수평 폴더 구조 구현
    • 익스프레스 애플리케이션 구성
      • 환경 구성 파일
    • 뷰 생성
      • 뷰 시스템 구성
      • EJS 뷰 생성
    • 정적 파일 서비스
    • 세션 구성
    • 정리

  • 4 MongoDB 소개
    • NoSQL 소개
    • MongoDB 소개
    • MongoDB의 핵심 기능
      • BSON 형식
      • MongoDB와 임의 질의
      • MongoDB 색인
      • MongoDB 복제 집합
      • MongoDB 샤딩
    • MongoDB 셸
    • MongoDB 데이터베이스
    • MongoDB 콜렉션
    • MongoDB CRUD 연산
      • 새로운 다큐먼트 생성
      • insert( )를 사용한 다큐먼트 생성
      • update( )를 사용한 다큐먼트 생성
      • save( )를 사용한 다큐먼트 생성
    • 다큐먼트 읽기
      • 모든 콜렉션 다큐먼트 검색
      • 동등 구문 사용
      • 질의 연산자 사용
      • AND/OR 질의 생성
    • 기존 다큐먼트 갱신
      • update( )를 사용한 다큐먼트 갱신
      • save( )를 사용한 다큐먼트 갱신
    • 다큐먼트 삭제
      • 모든 다큐먼트 삭제
    • 정리

  • 5 몽구스 소개
    • 몽구스 소개
      • 몽구스 설치
      • MongoDB에 연결
    • 몽구스 스키마 이해
      • 사용자 스키마와 모델 생성
      • User 모델 등록
      • save()를 사용한 새로운 사용자 생성
        • find( )를 사용한 여러 사용자 다큐먼트 검색
        • find( )를 사용한 고급 질의
      • findOne()을 사용한 단일 사용자 다큐먼트 읽기
      • 기존 사용자 다큐먼트 갱신
      • 기존 사용자 다큐먼트 삭제
    • 몽구스 스키마 확장
      • 기본값 정의
      • 스키마 변경자 활용
        • 미리 정의된 변경자
        • 맞춤식 설정 변경자
        • 맞춤식 인출 변경자
      • 가상 속성 추가
      • 색인을 사용한 질의 최적화
    • 맞춤식 모델 메소드 정의
      • 맞춤식 정적 메소드 정의
      • 맞춤식 인스턴스 메소드 정의
    • 모델 검증
      • 미리 정의된 검증기
      • 맞춤식 검증기
    • 몽구스 미들웨어 활용
      • pre 미들웨어 활용
      • post 미들웨어 활용
    • 몽구스DBRef 활용
    • 정리

  • 6 패스포트를 사용한 사용자 인증 관리
    • 패스포트 소개
      • 패스포트 설치
      • 패스포트 구성
    • 패스포트 전략 이해
      • 패스포트의 지역 전략 사용
        • 패스포트의 지역 전략 모듈 설치
        • 패스포트의 지역 전략 구성
      • User 모델 변경
      • 인증 뷰 생성
      • User 컨트롤러 변경
        • 플래시 오류 메시지 출력
      • 사용자 라우트 연결
    • 패스포트 OAuth 전략 이해
      • OAuth 전략 설정
        • OAuth 사용자 생성 처리
        • 패스포트의 페이스북 전략 사용
        • 패스포트의 트위터 전략 등록
        • 패스포트의 구글 전략 등록
    • 정리

  • 7 AngularJS 소개
    • AngularJS 소개
    • AngularJS의 핵심 개념
      • AngularJS의 핵심 모듈
        • angular 전역 객체
      • AngularJS 모듈
        • 애플리케이션 모듈
        • 외부 모듈
        • 외부 개발자 모듈
      • 양방향 데이터 결합
      • 의존성 주입
        • AngularJS에서 의존성 주입
      • AngularJS 지시자
        • 핵심 지시자
        • 맞춤식 지시자
      • AngularJS 애플리케이션 부트스트랩
        • 자동 부트스트랩
        • 수동 부트스트랩
    • AngularJS 설치
      • 바우어 의존성 관리자 소개
      • 바우어 의존성 관리자 구성
      • 바우어를 사용한 AngularJS 설치
      • AngularJS 구성
    • AngularJS 애플리케이션 구조화
    • AngularJS 애플리케이션 부트스트랩
    • AngularJS MVC 엔티티
      • AngularJS 뷰
      • AngularJS 컨트롤러와 영역
    • AngularJS 라우팅
      • ngRoute 모듈 설치
      • URL 정책 구성
      • AngularJS 애플리케이션 라우트
    • AngularJS 서비스
      • AngularJS 기본 포함 서비스
      • AngularJS 서비스 생성
      • AngularJS 서비스 사용
    • AngularJS 인증 관리
      • user 객체 출력
      • Authentication 서비스 추가
      • Authentication 서비스 사용
    • 정리

  • 8 MEAN CRUD 모듈 생성
    • CRUD 모듈 소개
    • 익스프레스 구성 요소 설정
      • 몽구스 모델 생성
      • 익스프레스 컨트롤러 설정
        • 익스프레스 컨트롤러의 오류 처리 메소드
        • 익스프레스 컨트롤러의 create( ) 메소드
        • 익스프레스 컨트롤러의 list( ) 메소드
        • 익스프레스 컨트롤러의 read( ) 미들웨어
        • 익스프레스 컨트롤러의 update( ) 메소드
        • 익스프레스 컨트롤러의 delete( ) 메소드
        • 인증 미들웨어 구현
        • 인가 미들웨어 구현
      • 익스프레스 라우트 배선
      • 익스프레스 애플리케이션 구성
    • ngResource 모듈 소개
      • ngResource 모듈 설치
      • $resource 서비스 사용
    • AngularJS MVC 모듈 구현
      • AngularJS 모듈 서비스 생성
      • AngularJS 모듈 컨트롤러 설정
        • AngularJS 컨트롤러의 create( ) 메소드
        • AngularJS 컨트롤러의 find( )와 findOne( ) 메소드
        • AngularJS 컨트롤러의 update( ) 메소드
        • AngularJS 컨트롤러의 delete( ) 메소드
      • AngularJS 모듈 뷰 구현
        • create-article 뷰
        • view-article 뷰
        • edit-article 뷰
        • list-articles 뷰
      • AngularJS 모듈 라우트 배선
    • 모듈 구현 마무리
    • 정리

  • 9 Socket.io를 사용한 실시간 기능 추가
    • 웹소켓 소개
    • Socket.io 소개
      • Socket.io 서버 객체
        • Socket.io 핸드셰이크
        • Socket.io 구성 미들웨어
      • Socket.io 클라이언트 객체
      • Socket.io 이벤트
        • 이벤트 처리
        • 이벤트 전송
      • Socket.io 이름공간
        • Socket.io 서버 이름공간
        • Socket.io 클라이언트 이름공간
      • Socket.io 룸
        • 룸 가입과 탈퇴
        • 룸으로 이벤트 전송
    • Socket.io 설치
      • Socket.io 서버 구성
      • Socket.io 세션 구성
        • connect-mongo와 cookie-parser 모듈 설치
        • connect-mongo 모듈 구성
        • Socket.io 세션 구성
    • Socket.io 채팅 구축
      • 채팅 서버의 이벤트 처리기 설정
      • Socket 서비스 생성
      • 채팅 컨트롤러 생성
      • 채팅 뷰 생성
      • 채팅 라우트 추가
      • 채팅 구현 마무리
    • 정리

  • 10 MEAN 애플리케이션 테스트
    • 자바스크립트 테스트 소개
      • TDD, BDD, 단위 테스트
      • 테스트 프레임워크
      • 단정 라이브러리
      • 테스트 실행기
    • 익스프레스 애플리케이션 테스트
      • 모카 소개
      • Should.js 소개
      • 슈퍼테스트 소개
      • 모카 설치
      • Should.js와 슈퍼테스트 모듈 설치
      • 테스트 환경 구성
      • 첫 모카 테스트 작성
        • 익스프레스 모델 테스트
        • 익스프레스 컨트롤러 테스트
      • 모카 테스트 실행
    • AngularJS 애플리케이션 테스트
      • 자스민 프레임워크 소개
      • AngularJS 단위 테스트
        • 카르마 테스트 실행기 소개
        • 카르마 명령행 도구 설치
        • 카르마의 의존성 설치
        • 카르마 테스트 실행기 구성
        • AngularJS 구성 요소 흉내내기
        • AngularJS 단위 테스트 작성
        • 첫 단위 테스트 작성
        • AngularJS 단위 테스트 실행
        • AngularJS E2E 테스트
        • 프로트랙터 테스트 실행기 소개
        • 프로트랙터 테스트 실행기 설치
        • 프로트랙터 테스트 실행기 구성
        • 첫 E2E 테스트 작성
        • AngularJS E2E 테스트 실행
    • 정리

  • 11 MEAN 애플리케이션 자동화와 디버깅
    • 그런트 작업 실행기 소개
      • 그런트 작업 실행기 설치
      • 그런트 구성
        • 그런트를 사용한 애플리케이션 실행
        • 그런트를 사용한 애플리케이션 테스트
        • 그런트를 사용한 애플리케이션 린트
        • 그런트를 사용한 파일 변경 감시
    • node-inspector로 익스프레스 디버깅
      • node-inspector의 그런트 작업 설치
      • node-inspector의 그런트 작업 구성
      • 디버그 그런트 작업 실행
    • 배터랑으로 AngularJS 디버깅
      • 배터랑 사용
        • 배터랑 모델
        • 배터랑 성능
        • 배터랑 의존성
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2015. 7.29

[p.192 코드 16~23행]

2016. 1. 11 수정사항

[p.101: 4행(js 삭제)]
server.routes.js') -> server.routes')

[p.220: 코드부(" "추가)]

[p. 221: 상단 코드(" "추가)]

[p. 221: 하단 코드(" "추가)]