[풀 스택 엔지니어로 이끌어주는]
MEAN 스택을 사용한 모던 웹 개발 입문
- 원서명Write Modern Web Apps with the MEAN Stack (ISBN 9780133930153)
- 지은이제프 디키(Jeff Dickey)
- 옮긴이박재호
- ISBN : 9788960776753
- 28,000원
- 2015년 02월 17일 펴냄 (절판)
- 페이퍼백 | 288쪽 | 188*235mm
- 시리즈 : 웹 프로페셔널
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
전통적으로 웹 애플리케이션은 백엔드가 모든 프론트엔드 코드를 만들어내게 아키텍처를 수립해왔다. 하지만 이런 아키텍처를 기반으로 하면 관리와 확장이 어려운 복잡한 프로젝트가 만들어지고 만다. 이 책은 프론트엔드를 마치 모바일 클라이언트처럼 다루는 방식으로 웹 애플리케이션을 작성하는 새로운 방식을 설명한다. 구체적으로 MEAN 자바스크립트 플랫폼을 활용해 관리와 확장이 손쉬운 현대적인 웹 애플리케이션 작성부터 배포와 테스트에 이르기까지 전 개발주기를 설명한다. 웹 개발의 변천사에 이어 MEAN 스택의 장점을 소개한 다음에 MEAN을 구성하는 개별 요소에 대해 설명하고 나서 완벽한 자바스크립트 기반의 애플리케이션 개발로 뛰어든다. 이 책을 읽으면서 MEAN을 사용한 개발 환경 설정, 빌드, 테스트, 배포에 대한 기본기를 탄탄하게 다져보자!
이 책에서 다루는 내용
■ 자세한 설명, 풍부한 그림, 명쾌한 예제
■ MEAN 개발자로부터 얻는 통찰력 있는 우수 관례
■ 확장 가능한 고속 애플리케이션을 빠르게 만드는 방법 강조
이 책의 대상 독자
이 책은 웹 애플리케이션 구현의 변천사를 배우고 싶은 웹 개발자를 위한 책이다. 이 책은 독자에게 기초적인 자바스크립트 지식이 있다고 가정한다. 노드나 AngularJS에 대한 지식 은 도움이 되지만 필수 조건은 아니다.
보충 자료
MEAN 스택을 사용한 IoT 개발 예제를 설명합니다.
■ MEAN 스택 기본 내용 소개
■ Node.js와 Express를 활용한 간단한 CRUD 서버 작성 방법(아주 단순하지만 (인증을 제외한 나머지) RESTful 서버의 기본 내용을 구현함)
■ MongoDB와 Mongoose ODM를 사용한 영속적인 자료 저장 방법
■ AngularJS를 사용한 아주 간단한 모니터링 도구 구현(하지만 의존성 주입, 양방향 자료 결합, 라우팅 활용 방법이 모두 들어 있음)
■ 보충자료의 모든 예제는 아래의 bitbucket(git 호스팅 서비스) 링크에 공개되어 있습니다.
목차
목차
- 1장. 새로운 모던 웹 아키텍처의 변화
- 정적인 앱의 등장
- Ajax로 강화된 자바스크립트
- 점진적인 향상
- 스파게티 자바스크립트
- 모바일 API
- 무거운 클라이언트 세상으로
- 모던 웹 아키텍처의 동작 방식
- 모던 웹 아키텍처의 장점
- 정적인 앱의 등장
- 2장. 자바스크립트가 모던 앱을 위한 좋은 선택인 이유
- AngularJS란 무엇인가
- AngularJS는 제이쿼리와 어떻게 다른가
- 노드란 무엇인가
- 스타트업 VS 기업
- 기업 환경에서 노드
- 노드의 성능
- 이벤트 아키텍처
- 콜백 동작 방식
- 모듈과 NPM
- 노드 설치
- 평범한 HTTP 서버 만들기
- 익스프레스란 무엇인가
- 익스프레스 설치
- 노드를 위한 데이터베이스
- 몽고DB란 무엇인가
- 문서 중심
- BSON
- 자동 샤딩을 사용한 수평 확장
- 스키마 부재
- 몽고DB 설치
- 몽고DB 사용
- 다큐먼트 삽입
- 다큐먼트 질의
- AngularJS란 무엇인가
- 3장. 소셜 네트워크 프로젝트 소개
- 최신 글을 보여주기 위한 정적 모형 페이지 생성
- 페이지를 AngularJS화 하기
- 새로운 글 추가
- 정리
- 4장. 노드 API 구축
- 기본적인 종단점
- API로 글 올리기
- 몽구스로 몽고DB 모델 생성
- POST 종단점에서 몽구스 모델 사용
- 정리
- 5장. 노드와 AngularJS 통합
- $http
- 프라미스란
- $http를 사용해 API로 글 읽기
- 노드를 사용한 posts.html 제공
- $http를 사용해 API로 글 저장하기
- 글 순서 고치기
- server.js 정리
- /api/posts 분리하기
- 이름공간으로 라우터 경로 지정
- sendfile 종단점 분리
- AngularJS 정리
- 정적 자산 제공
- AngularJS를 서비스로 분리하기
- 정리
- $http
- 6장. 걸프를 사용한 빌드 자동화
- 그룬트와 걸프 소개
- Gulp Hello World
- 걸프를 사용한 자바스크립트 빌드
- Uglifier
- 파일 변경에 따른 재빌드
- 소스 지도
- 걸프를 사용한 CSS 빌드
- 걸프 dev 작업
- Gulp-Nodemon
- 그 밖의 걸프 플러그인
- 정리
- 7장. 노드로 인증 구현
- 토큰 인증 소개
- JWT(JSON Web Token)
- 익스프레스와 함께하는 JWT
- 비밀번호 인증
- BCrypt 사용
- 몽고DB로 인증
- 정리
- 8장. 라우팅과 클라이언트 인증 추가
- 라우팅
- 로그인 폼 생성
- 익스프레스 인증
- AngularJS 이벤트
- 소셜 글 인증
- HTML5 pushstate
- 등록
- 로그아웃
- 기억하기
- user 외래 키
- 정리
- 9장. 웹소켓을 사용한 푸시 통지
- 웹소켓 소개
- 웹소켓 동작 방식
- 웹소켓을 어디에 사용해야 하는가
- 소셜 앱에서 웹소켓 구현
- ws 웹소켓에 연결
- 새로운 글 통지
- AngularJS에서 웹소켓 구현
- 웹소켓 아키텍처
- 재접속
- 보안
- 다중 프로세스/다중 서버 설계
- 클라이언트에서 온 이벤트 전달
- 동적 웹소켓 호스트 이름
- 정리
- 10장. 종단간 테스트 수행
- 프로트랙터 설정
- 자바스크립트 테스트 프레임워크
- 기본적인 프로트랙터 테스트 작성
- 프로트랙터 구성과 동작
- 프로트랙터 내부에서 노드 시작
- 프로트랙터 위치 탐지기
- navbar의 로그인 링크 누르기
- 프로트랙터로 실제 글을 올리기
- 프로트랙터 실행 후에 데이터베이스 삭제하기
- 프로트랙터 결과 비교
- chai-as-promised
- 종단간 테스트를 사용해야 할 시점
- 정리
- 11장. 노드 서버 테스트
- 완전하지 않은 단위 테스트
- 노드를 위한 모카
- post 컨트롤러
- SuperTest
- 기본 라우터
- SuperTest로 기반 라우터 사용
- 컨트롤러 테스트에서 모델 점검
- 컨트롤러에서 인증 테스트
- 코드 커버리지
- npm test 명령
- JSHint
- 정리
- 12장. AngularJS 테스트
- 카르마 사용
- 바우어 사용
- 카르마 설정
- 기본적인 카르마 서비스 테스트
- 카르마를 사용한 HTTP 테스트
- 카르마 컨트롤러 테스트
- 스파이 테스트
- 정리
- 13장. 허로쿠에 배포
- 서비스로서 플랫폼
- 허로쿠 동작 방식
- 앱을 위한 12가지 요소 방법론
- 애플리케이션을 허로쿠에 배포
- 허로쿠에서 몽고DB 사용
- 허로쿠에서 레디스
- 자산 컴파일
- 노드 클러스터
- 정리
- 14장. 디지털 오션에 배포
- 디지털 오션이란?
- 단일 서버 대 다중 서버 아키텍처
- 페도라 20
- 서버 생성
- 노드 설치
- 몽고DB 설치
- 레디스 설치
- 소셜 앱 서비스하기
- systemd 아래에서 소셜 앱 서비스하기
- 무중단 배포
- 다중 서버 이주
- 부하 분산
- 중앙집중화된 데이터베이스
- 사설 네트워크
- 정리
- 결론