제대로 배우는 Node.js 프로그래밍
저자 셸리 파워즈
역자 안재우
출간일 2013년 6월 7일 (금)
정가 28,000원
페이지 460
판형 190 x 245
ISBN 978-89-94774-40-4 (93560)
원서정보 Learning Node
책 소개
Learning Node
“손이 닿는 가까이에 두고 항상 참고해야 할 훌륭한 Node.js 입문서다.”
- Mike Amundsen, 《Building Hypermedia APIs with HTML5 and Node》(O’Reilly)의 저자
이 책은 Node.js의 성격에 잘 들어맞는 책이라고 할 수 있다. 무슨 얘기인가 하면, Node.js는 백마디 글을 읽는 것보다 직접 코드를 작성해보는 것이 가장 바람직하다고 생각한다. 특히 NPM을 통해 필요한 모듈들을 찾아서 다운로드해보는 과정도 직접 겪어봐야 Node.js가 소프트웨어 개발에서 주는 장점들을 제대로 이해할 수 있다. 이 책은 Node.js에 대해 이론적인 내용을 주저리주저리 늘어놓는 대신, 수많은 예제들과 실제 가장 많이 사용되는 모듈들을 다루는 데 초점을 맞추고 있다.
-역자의 글 중에서
Node를 사용해서 브라우저에서의 웹 개발 기술을 서버로 가져가서, 자바스크립트 기반 플랫폼 상에서 빠르고 고도의 확장성을 가지는 네트워크 애플리케이션을 작성하는 방법을 배운다. 실습 위주의 가이드를 통해 Node의 핵심 기반을 빨리 숙달하고, 여러 가지 내장 모듈과 커뮤니티에서 만든 모듈들에 대한 경험을 얻으며, 클라이언트 프로그래밍과 서버 프로그래밍 간의 차이점과 유사점을 배우게 된다.
Node의 이벤트 주도 비동기 I/O 모델을 사용하여 접근빈도가 높지만 단순한 연산을 수행하는 데이터 집중적인 애플리케이션을 빠르게 개발해보자. 자바스크립트를 다루는 데 무리가 없다면, 이 책은 Node를 사용한 서버 개발의 이점을 얻을 수 있도록 도와주는 수많은 프로그래밍 및 배포 예제를 제공해준다.
l 비동기 개발에 대한 Node의 독특한 접근방법을 살펴본다.
l Express 프레임워크와 Connect 미들웨어로 Node 애플리케이션 예제를 만들어본다.
l Redis와 MongoDB 같은 NoSQL 솔루션을 사용해보고 Node의 관계형 데이터베이스 모듈들을 살펴본다.
l PDF 파일을 다루고 HTML5 미디어를 서비스하며, Canvas로 그래픽을 생성해본다.
l WebSocket을 사용하여 브라우저와 서버 간에 양방향 통신을 구성해본다.
l 애플리케이션을 디버깅하고 테스트하는 심도 있는 사례들을 배운다.
l 클라우드나 자신의 시스템에 Node 애플리케이션을 배포한다.
독자대상
초중급
저자소개
셸리 파워즈(Shelley Powers)는 자바스크립트 최초 릴리즈부터 최근의 그래픽 및 디자인 도구에 이르기까지 12년이 넘게 웹 기술을 다루면서 책을 써왔다. 최근에 O’Reilly에서 출판한 책들에서는 시맨틱 웹, Ajax, 자바스크립트, 웹 그래픽 등을 다루었다. 열정적인 아마추어 사진사이며, 최신의 실험 내용을 많은 웹 사이트에 적용하는 것을 즐기는 웹 개발 광이기도 하다.
역자소개
안재우
과거 닷넷엑스퍼트 수석컨설턴트로 10년이 넘도록 다양한 분야에서 컨설팅과 프로젝트를 수행한 경험을 가지고 있으며, 현재는 엔씨소프트에서 플랫폼 기술 기획을 담당하며 플랫폼의 영역을 넓히고 지속적인 품질 향상을 위해 노력하고 있다. 서버 기술과 아키텍처, ALM(ApplicationLifecycle Management)에 관심이 많다.
목차
Chapter 1. Node.js: 처음 실행하기
Node 개발환경 구성
Node: 뛰어들기
비동기 함수와 Node 이벤트 루프
Node의 이점
Chapter 2. REPL을 통한 대화형 Node
REPL: 처음 살펴보기 & 정의되지 않은 수식
REPL의 이점: 하부 JavaScript에 대한 보다 깊은 이해를 제공
Chapter 3. Node의 코어
전역 개체(global, process)와 Buffer
타이머: setTimeout, clearTimeout, setInterval, clearInterval
서버, 스트림, 소켓
자식 프로세스
도메인 해석과 URL 처리
Utilities 모듈과 개체 상속
이벤트와 EventEmitter
Chapter 4. Node 모듈 시스템
require를 사용한 모듈 로딩과 기본 경로
외부 모듈과 Node 패키지 관리자
모듈 찾기
사용자 정의 모듈 만들기
Chapter 5. 제어 흐름, 비동기 패턴, 예외 처리
Promise 사용, Promise 대신 Callback 사용
순차 기능, 중첩 콜백, 예외 처리
비동기 패턴 및 제어 흐름 모듈
Chapter 6. 트래픽 라우팅, 파일 서비스, 미들웨어
간단한 정적 파일 서버 만들기
라우터
프록시
Chapter 7. Express 프레임워크
Express: 처음 시작하기
app.js 파일 자세히 살펴보기
에러 처리
Express/Connect의 협력 관계 살펴보기
라우팅
MVC의 도입
cURL로 Express 애플리케이션 테스트하기
Chapter 8. Express, 템플릿 시스템, CSS
Embedded JavaScript(EJS) 템플릿 시스템
Express와 템플릿 시스템(EJS) 사용
Jade 템플릿 시스템
CSS 단순화를 위한 Stylus 결합
Chapter 9. Node와 Redis를 사용한 구조화된 데이터
Node 및 Redis 시작하기
게임 순위표 만들기
메시지 큐 만들기
Express 애플리케이션에 Stats 미들웨어 추가
Chapter 10. Node와 MongoDB: 문서 중심 데이터
MongoDB Native Node.js Driver
Mongoose로 위젯 모델 구현
Chapter 11. Node 관계형 데이터베이스 바인딩
db-mysql로 시작하기
node-mysql을 사용한 네이티브 자바스크립트 MySQL 접근
Sequelize를 사용한 ORM 지원
Chapter 12. 그래픽 및 HTML5 비디오
PDF를 생성하고 다루기
PDFKit으로 PDF 생성
자식 프로세스에서 ImageMagick에 접근
HTTP로 HTML5 비디오 서비스하기
Canvas 컨텐츠 생성 및 스트리밍
Chapter 13. 웹 소켓과 Socket.IO
웹 소켓
Socket.IO 소개
Socket.IO 구성
채팅: 웹 소켓 “Hello, World”
Express와 함께 Socket.IO 사용
Chapter 14. Node 애플리케이션 테스트 및 디버깅
디버깅
단위 테스트
인수 테스트
성능 테스트: 벤치마크와 부하테스트
Nodemon으로 코드 갱신
Chapter 15. 게이트 단의 보안
데이터 암호화
Passport를 사용한 인증/허가
애플리케이션 보호와 공격 예방
샌드박스화된 코드
Chapter 16. Node 애플리케이션 확장 및 배포
Node 애플리케이션을 자신의 서버에 배포하기
클라우드 서비스로 배포
부록. Node, Git, GitHub
이 책의 구성
Node는 대부분의 웹 개발자들이 익숙한 언어인 자바스크립트로 작성되었다. 웹 소켓을 사용하거나 Express와 같은 프레임워크로 개발하는 것과 같이 새로운 기술을 사용하는 방법을 배우게 되지만, 이러한 개념들과 함께 새로운 언어를 배울 필요가 없다. 이러한 언어 친화성은 새로운 구성요소에 집중하는 것을 더욱 쉽게 만들어준다.
Node를 사용해본 적이 없다면 1장부터 시작해서 최소한 5장까지 읽기 바란다. 이 장들은 Node와 패키지 관리자(npm)를 설치하고 이를 사용하는 방법, 첫 번째 애플리케이션을 만들기, 모듈을 활용하는 방법을 다룬다. 5장에서는 Node와 관련된 스타일 문제 중 일부도 다루는데, 비동기 개발에 대한 Node의 고유한 접근방법을 어떻게 다루어야 하는지가 포함된다.
Node를 조금 살펴본 적이 있고 내장 Node 모듈 및 외부 모듈 일부와 REPL(read-eval-print-loop: 대화형 콘솔)을 사용해본 적이 있다면 1장~4장은 건너 뛰고 5장부터 시작하는 것을 권장한다.
이 책은 전체에 걸쳐 Connect 미들웨어를 활용하는 Express 프레임워크를 사용하는 것이 포함되어 있다. Express를 사용해본 적이 없다면 라우팅, 프록시, 웹 서버, 미들웨어의 개념을 다루고 Express를 소개하는 6장~8장을 살펴보는 것이 좋다. 특히 Model-View-Controller(MVC) 프레임 워크에서 Express를 사용하는 법이 궁금하다면 반드시 7장과 8장을 읽기 바란다.
기초를 다루는 장들 이후에는 어느 정도 건너뛰어도 된다. 예를 들어 키/값 쌍을 주로 다룬다면 9장에 있는 Redis에 대한 논의를 읽어보도록 하자. 문서 중심 데이터에 관심이 있다면 Node에서 MongoDB를 사용하는 방법을 소개하는 10장을 확인해보기 바란다. 관계형 데이터베이스로만 작업한다면 바로 11장으로 가면서 Redis와 MongoDB 관련 장은 건너뛰어도 된다. 하지만 데이터를 다루는 데 새로운 관점을 제공해줄 수도 있으므로 언젠가는 읽어보는 것이 좋다.
12장과 13장에서 Node를 특수한 용도로 사용하는 것을 본 이후에는 책의 마지막 부분으로 가게 된다. 다른 장들에서 예제를 어느 정도 다뤄봤다면 14장에서 Node 디버깅과 테스트에 대해 심화된 학습 내용을 배우는 데 시간을 투자해보자.
15장은 아마도 가장 어려운 내용 중 하나이지만 중요한 내용이기도 하다. 여기서는 보안과 허가 문제를 다룬다. 처음부터 15장을 읽는 것은 별로 권장하지 않지만 Node 애플리케이션을 일반적인 용도로 사용하기 전에 15장에 시간을 투자하는 것이 필수적이다.
16장은 마지막 장으로, 흥미나 경험에 관계없이 맨 마지막에 읽는 것이 좋다. 여기서는 프로덕션에서 사용하기 위해 애플리케이션을 어떻게 준비해야 하는지에 초점을 맞추고 있는데, Node 애플리케이션을 자신의 시스템에 배포하는 것뿐만 아니라 클라우드 서버 중 하나에서 Node 애플리케이션을 호스팅하는 방법도 포함된다. 또한 Node 애플리케이션이 Apache와 같은 다른 웹 서버와 함께 잘 동작하게 하는 방법을 포함한 Node 애플리케이션을 서버에 배포하는 방법과 애플리케이션이 크래시가 나더라도 살아나게 하고 시스템이 재부팅될 때 재시작하게 하는 방법도 다룬다.
나쁜 데이터 핸드북: 19인의 데이터 과학자가 알려주는 (0) | 2013.06.03 |
---|---|
리버스 디셉션: APT, 지능형 타깃 공격과 대응 (0) | 2013.05.15 |
HBase 인액션: 빅데이터를 위한 NoSQL 데이터베이스 (0) | 2013.04.12 |
댓글 영역