장바구니 담기 close

장바구니에 상품을 담았습니다.

MEAN 스택을 사용한 모던 웹 개발 입문

MEAN 스택을 사용한 모던 웹 개발 입문

  • 제프 디키
  • |
  • 에이콘출판
  • |
  • 2015-02-17 출간
  • |
  • 288페이지
  • |
  • 188 X 235 X 17 mm /707g
  • |
  • ISBN 9788960776753
★★★★★ 평점(10/10) | 리뷰(1)
판매가

28,000원

즉시할인가

25,200

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
25,200

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 요약 ★

전통적으로 웹 애플리케이션은 백엔드가 모든 프론트엔드 코드를 만들어내게 아키텍처를 수립해왔다. 하지만 이런 아키텍처를 기반으로 하면 관리와 확장이 어려운 복잡한 프로젝트가 만들어지고 만다. 이 책은 프론트엔드를 마치 모바일 클라이언트처럼 다루는 방식으로 웹 애플리케이션을 작성하는 새로운 방식을 설명한다. 구체적으로 MEAN 자바스크립트 플랫폼을 활용해 관리와 확장이 손쉬운 현대적인 웹 애플리케이션 작성부터 배포와 테스트에 이르기까지 전 개발주기를 설명한다. 웹 개발의 변천사에 이어 MEAN 스택의 장점을 소개한 다음에 MEAN을 구성하는 개별 요소에 대해 설명하고 나서 완벽한 자바스크립트 기반의 애플리케이션 개발로 뛰어든다. 이 책을 읽으면서 MEAN을 사용한 개발 환경 설정, 빌드, 테스트, 배포에 대한 기본기를 탄탄하게 다져보자!

★ 이 책에서 다루는 내용 ★

■ 자세한 설명, 풍부한 그림, 명쾌한 예제
■ MEAN 개발자로부터 얻는 통찰력 있는 우수 관례
■ 확장 가능한 고속 애플리케이션을 빠르게 만드는 방법 강조

★ 이 책의 대상 독자 ★

이 책은 웹 애플리케이션 구현의 변천사를 배우고 싶은 웹 개발자를 위한 책이다. 이 책은
독자에게 기초적인 자바스크립트 지식이 있다고 가정한다. 노드나 AngularJS에 대한 지식
은 도움이 되지만 필수 조건은 아니다.

★ 저자 서문 ★

나는 2004년부터 웹 개발자로 일해왔으며, 주요 웹 플랫폼 대다수에서 전문적인 개발을 진행해왔다. 애플리케이션 제작을 더 편하게 만들기 위한 새로운 기술 탐험을 좋아한다.
AngularJS와 같은 MVC 프레임워크로 만든 애플리케이션은 지금까지 웹 공동체에서 목격한 패러다임 변화 중에 가장 급진적이었다. 많은 프레임워크와 도구들이 나타났다 사라졌지만, 클라이언트 쪽의 MVC 애플리케이션은 근본적으로 다르다.
AngularJS와 노드를 사용해 출시한 애플리케이션의 품질에 감명을 받아왔다. AngularJS와 노드는 단순하며 어떤 경우에는 다소 소박하기도 하다. 하지만 이런 단순성에는 코드 기반을 유지하고 기능을 반복적으로 개선하기 위한 환상적인 능력이 따라온다.
MEAN 스택으로 만든 애플리케이션은 점점 인기가 높아지고 있지만, 많은 개발 팀은 여전히 서버에서 생성된 페이지와 관계형 데이터베이스에 편안함을 느낀다.
MEAN 애플리케이션을 개발한 행운을 토대로 여러 개발자들과 MEAN을 사용한 구축 지식을 공유하고 싶다.
애플리케이션 구축의 새로운 방법을 탐험하는 과정을 즐기기 바란다. 이런 주제에 대한 논의를 좋아하기에, 트위터에서 대화를 계속 나눌 수 있으면 좋겠다.

★ 옮긴이의 말 ★

자바스크립트 하면 웹브라우저부터 떠올리기 마련이다. 하지만 점점 영역을 넓혀서 요즘 자바스크립트는 임베디드 장비부터 애플리케이션 서버와 데이터베이스에 이르기까지 다양한 분야에서 맹활약 중이다. 일례로 TESSEL(http://www.tessel.io)은 자바스크립트를 구동하는 마이크로컨트롤러이며 노드 호환이 가능한 개발 환경을 갖춰 npm 패키지 형태로 다양한 디바이스 프로그래밍을 가능하게 만든다.
bonescript(http://beagleboard.org/support/bonescript)는 비글본(Beaglebone) 보드에 최적화된 Node.js 라이브러리로 아두이노(Arduino) 함수 호출 방식으로 임베디드 프로그램을 작성하게 도와준다. 풀 스택(full stack)을 기치로 내걸어 웹부터 데이터베이스까지 모든 프로그래밍을 자바스크립트로 가능하게 만들었으며, 이제 임베디드 단말까지 자바스크립트로 프로그래밍이 가능한 세상이 도래했다. 이런 변화는 개발자에게 상당히 큰 의미를 부여한다. 과거에는 임베디드 프로그램은 C, 웹 서비스/애플리케이션 개발은 PHP나 루비 등의 인터프리터 또는 기업용 환경에 적합한 자바, 웹 브라우저 프로그래밍은 자바스크립트(그리고 HTML5와 CSS), 데이터베이스 질의는 SQL 등으로 명확하게 나뉘어졌지만 이제는 모두 자바스크립트로 가능하기 때문이다. C와 비교할 수 없는 범용성을 자랑하는 자바스크립트라는 언어가 등장했으므로 프로그래밍 언어 학습에 따른 부담이 줄어들었다.
자, 그렇다면 서비스 개발자 입장에서 편재적인 자바스크립트를 사용해 웹브라우저부터 애플리케이션 서버를 거쳐 데이터베이스에 이르기까지 빠른 시간 내에 애플리케이션을 개발하려면 어떻게 해야 할까? 대답은 바로 MEAN이다. MEAN은 몽고DB(MongoDB), 익스프레스(Express), AngularJS, 노드(Node.js)의 첫 글자를 따서 만들었으며, 과거 웹 개발에 유명했던 LAMP(리눅스Linux, 아파치Apache, MySQL, PHP(또는 펄Perl))에 비견할만한 지위를 갖추고 있다. MEAN과 LAMP의 공통점은 구성 요소가 모두 오픈소스라는 점이고 차이점은 여러 가지 언어가 복잡하게 얽힌 LAMP와 달리 MEAN에서는 처음부터 끝까지 자바스크립트만 사용해서 프로그램이 가능하다는 점이다.
이 책은 (자바스크립트에 대한 기초 지식은 어느 정도 알고 있지만) MEAN 스택을 처음 접하는 사람에게 적합한 구성을 택하고 있다. 트위터 피드와 유사한 소셜 앱을 구축하려는 큰 목표를 중심으로 단계별로 글 쓰기, 글 읽기, 데이터베이스 설정, 인증과 로그인, 웹소켓으로
상호 대화성 높이기, NPM(서버 단)과 바우어(클라이언트 단) 패키지 관리 시스템을 사용한 의존성 관리, 빌드 자동화, 통합 테스트, 서버와 클라이언트 단위 테스트 방법을 설명한다. 그리고 마지막에는 PaaS와 IaaS에 배포하는 방법으로 마무리한다. 웹 브라우저 단에서 데이터베이스 단까지 전체를 다룰 뿐만 아니라, 구현부터 배포에 이르기까지 반드시 필요한 다양한 도구와 기법을 설명하고 있으므로 빠른 시간 내에 자바스크립트를 사용한 서버와 클라이언트 구현이 필요한 개발자에게 많은 도움이 될 것으로 확신한다.
이 책을 읽고 나서 MEAN에 대한 감을 잡으면 각각의 기술에 대해 세부적으로 파고들 필요가 있다. 비동기식 프로그래밍, 사건 구동 방식, MVVM(Model-View-ViewModel), 의존성 주입, 의존성 관리와 같은 복잡한 개념으로 인해 학습 곡선이 상당히 가파르기 때문이다. 다행스럽게도 최근에는 노드뿐만 아니라 AngularJS에 대한 저서와 번역서들도 많이 출간되고 있기 때문에 필요한 정보를 얻기에 어려움이 없을 것이다. 아무쪼록 MEAN 스택을 사용해 생산성을 높이고 성능과 확장성도 덤으로 얻는 좋은 성과를 얻기 바란다. 새로운 개발 세상에 온 독자 여러분을 환영한다!

목차

1장. 새로운 모던 웹 아키텍처의 변화
__정적인 앱의 등장
____Ajax로 강화된 자바스크립트
____점진적인 향상
____스파게티 자바스크립트
____모바일 API
__무거운 클라이언트 세상으로
____모던 웹 아키텍처의 동작 방식
____모던 웹 아키텍처의 장점

2장. 자바스크립트가 모던 앱을 위한 좋은 선택인 이유
__AngularJS란 무엇인가
____AngularJS는 제이쿼리와 어떻게 다른가
__노드란 무엇인가
____스타트업 VS 기업
____기업 환경에서 노드
____노드의 성능
____이벤트 아키텍처
____콜백 동작 방식
____모듈과 NPM
____노드 설치
____평범한 HTTP 서버 만들기
__익스프레스란 무엇인가
____익스프레스 설치
____노드를 위한 데이터베이스
__몽고DB란 무엇인가
____문서 중심
____BSON
____자동 샤딩을 사용한 수평 확장
____스키마 부재
____몽고DB 설치
____몽고DB 사용
____다큐먼트 삽입
____다큐먼트 질의

3장. 소셜 네트워크 프로젝트 소개
__최신 글을 보여주기 위한 정적 모형 페이지 생성
__페이지를 AngularJS화 하기
__새로운 글 추가
__정리

4장. 노드 API 구축
__기본적인 종단점
__API로 글 올리기
__몽구스로 몽고DB 모델 생성
__POST 종단점에서 몽구스 모델 사용
__정리

5장. 노드와 AngularJS 통합
__$http
____프라미스란
__$http를 사용해 API로 글 읽기
__노드를 사용한 posts.html 제공
__$http를 사용해 API로 글 저장하기
__글 순서 고치기
__server.js 정리
____/api/posts 분리하기
____이름공간으로 라우터 경로 지정
____sendfile 종단점 분리
__AngularJS 정리
____정적 자산 제공
____AngularJS를 서비스로 분리하기
__정리

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 아래에서 소셜 앱 서비스하기
__무중단 배포
__다중 서버 이주
____부하 분산
____중앙집중화된 데이터베이스
____사설 네트워크
__정리
__결론

저자소개

저자 제프 디키(Jeff Dickey)는 샌 프란시스코와 로스앤젤레스에서 여러 해에 걸쳐 스타트업 경력을 쌓았으며 전체를 다룰 줄 아는 풀 스택(full-stack) 웹 개발자다. 제프는 프로젝트를 성공리에 완수하고, 대규모 시스템을 유지 보수하며, 개발 팀을 이끌어왔다. 주요 웹 플랫폼 대다수에서 10년 이상 쌓은 경험을 토대로, 애플리케이션 제작에 필요한 최신 기술을 끊임없이 탐구하고 있다. 현재는 허로쿠(Heroku)에서 첫 CLI 개발자로 일하고 있다. 또한 제너럴 어셈블리(General Assembly)에서 백엔드 웹 개발 코스도 가르친다.

도서소개

[풀 스택 엔지니어로 이끌어주는 MEAN 스택을 사용한 모던 웹 개발 입문]은 웹 애플리케이션 구현의 변천사를 배우고 싶은 웹 개발자를 위해 프론트엔드를 마치 모바일 클라이언트처럼 다루는 방식으로 웹 애플리케이션을 작성하는 새로운 방식을 설명한다. 구체적으로 MEAN 자바스크립트 플랫폼을 활용해 관리와 확장이 손쉬운 현대적인 웹 애플리케이션 작성부터 배포와 테스트에 이르기까지 전 개발주기를 설명한다. 웹 개발의 변천사에 이어 MEAN 스택의 장점을 소개한 다음에 MEAN을 구성하는 개별 요소에 대해 설명하고 나서 완벽한 자바스크립트 기반의 애플리케이션 개발로 뛰어든다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.