이미 소장하고 있다면 판매해 보세요.
|
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 아래에서 소셜 앱 서비스하기 __무중단 배포 __다중 서버 이주 ____부하 분산 ____중앙집중화된 데이터베이스 ____사설 네트워크 __정리 __결론 |
박재호의 다른 상품
|
★ 이 책에서 다루는 내용 ★
■ 자세한 설명, 풍부한 그림, 명쾌한 예제 ■ 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 스택을 사용해 생산성을 높이고 성능과 확장성도 덤으로 얻는 좋은 성과를 얻기 바란다. 새로운 개발 세상에 온 독자 여러분을 환영한다! |