[50가지 예제로 배우는]
노드 프로그래밍
- 원서명Node Cookbook (ISBN 9781849517188)
- 지은이데이비드 마크 클레멘츠
- 옮긴이홍영택, 정대원
- ISBN : 9788960774544
- 35,000원
- 2013년 07월 31일 펴냄 (절판)
- 페이퍼백 | 424쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
50개의 간단한 예제 코드를 제공함으로써 서버 환경에서 발생하는 다양한 문제를 노드를 사용해서 해결하는 방법을 자세히 설명한다. 간단한 웹 서버를 만드는 것을 시작으로 웹 애플리케이션과 커맨드라인 애플리케이션을 구현하고 노드 모듈을 직접 작성하는 방법에 대해 알아본다. 또한 다양한 보안 이슈에 대해 알아보고 웹 소켓을 사용하는 방법, MySQL, MongoDB, Redis 같은 다양한 백엔드 데이터베이스와 SMTP와 같은 네트워크 프로토콜에 접근하는 방법을 살펴본다. 노드 모듈을 실제 배포하고 운영하는 방법에 대해 다룬다. 노드 프로그래밍은 물론이고 서버 프로그래밍 기초를 배우는 데도 좋은 시작점이 될 것이다.
[ 이 책에서 다루는 내용 ]
■ 노드 모듈을 직접 작성하고 배포하기
■ 다양한 데이터베이스에 연결
■ 데이터 스트림 처리
■ 파일 업로드와 POST 데이터 다루기
■ 익스프레스 프레임워크를 사용한 빠른 웹 개발
■ 보안, 암호화, 인증 기술
■ 무거운 연산을 처리하는 모범 사례
[ 이 책의 대상 독자 ]
자바스크립트에 대한 약간의 지식이 있고, 빠르고 효과적이며 확장 가능한 클라이언트-서버 솔루션을 구축하길 원하는 사람에게 추천한다. 이미 노드를 접한 경험이 있다면 개인 기술 발전에 도움이 될 것이며, 개발 경험이 없더라도 노드를 시작하는 좋은 출발점이 될 것이다.
[ 이 책의 구성 ]
1장. 웹 서버 만들기에서는 동적 콘텐츠와 정적 콘텐츠를 제공하는 방법과 메모리에 파일 캐시하기, 디스크로부터 큰 파일을 스트리밍하기, 웹 서버의 보안 처리를 다룬다.
2장. HTTP 객체 살펴보기에서는 POST 요청을 받아 처리하는 방법과 파일 업로드, 노드를 HTTP 클라이언트로 사용하기, 다운로드 속도를 조절하는 방법을 설명한다.
3장. 데이터 직렬화 처리에서는 애플리케이션에서 데이터를 브라우저로 전송하는 방법과 서드파티 API에 사용하기 위해 XML, JSON 포맷으로 변환하는 방법을 설명한다.
4장. 데이터베이스 인터페이스에서는 레디스(Redis)나 카우치디비(CouchDB), 몽고디비(MongoDB), MySQL, 또는 일반 CSV 파일 같은 영속적인(persistent) 데이터 저장소와의 연동 방법을 다룬다.
5장. 웹소켓을 사용해 AJAX 뛰어넘기에서는 최신 브라우저에서 제공하는 웹소켓을 사용해 실시간 애플리케이션을 만들고 롱폴링(long-polling)과 기타 방법들을 Socket.io를 사용해 대체하는 방법을 설명한다.
6장. 익스프레스를 사용한 쾌속 개발에서는 익스프레스(express)프레임워크를 활용해 빠르게 웹 개발을 진행한다. 또한 템플릿 언어와 LESS, 스타일러스(Stylus) 같은 CSS 엔진에 대해 알아본다.
7장. 보안, 암호화, 인증 구현에서는 강력한 암호 해시(Hash)를 생성하는 암호화 모듈을 사용하는 방법과 크로스사이트 요청 위조(cross-site request forgery) 공격으로부터 사용자를 보호하는 방법, SSL 보안 웹 서버를 설정하는 방법을 알아본다.
8장. 네트워크 패러다임 통합에서는 메일을 전송하는 방법, 메일 서버를 구축하는 방법, SMS 메시지 전송, 가상 호스트 구현, 원시 TCP와 관련된 내용들을 다룬다.
9장. 자신만의 노드 모듈 작성에서는 테스트 스위트(suite)를 생성하는 방법과 노드 모듈을 직접 작성하고 리팩토링하는 방법, 개선하고 확장하는 방법, 배포하는 방법을 다룬다.
10장. 노드 애플리케이션의 배포에서는 실제 서버에 애플리케이션을 배포한 후 장애 복구 기술을 사용해 서비스를 유지하고 지속적인 배포(continuous deployment)를 적용하는 워크플로우를 구현하거나 단순히 PaaS(Platform as a Service)에 배포하는 방법을 다룬다.
[ 이 책에서 다루는 내용 ]
■ 노드 모듈을 직접 작성하고 배포하기
■ 다양한 데이터베이스에 연결
■ 데이터 스트림 처리
■ 파일 업로드와 POST 데이터 다루기
■ 익스프레스 프레임워크를 사용한 빠른 웹 개발
■ 보안, 암호화, 인증 기술
■ 무거운 연산을 처리하는 모범 사례
[ 이 책의 대상 독자 ]
자바스크립트에 대한 약간의 지식이 있고, 빠르고 효과적이며 확장 가능한 클라이언트-서버 솔루션을 구축하길 원하는 사람에게 추천한다. 이미 노드를 접한 경험이 있다면 개인 기술 발전에 도움이 될 것이며, 개발 경험이 없더라도 노드를 시작하는 좋은 출발점이 될 것이다.
[ 이 책의 구성 ]
1장. 웹 서버 만들기에서는 동적 콘텐츠와 정적 콘텐츠를 제공하는 방법과 메모리에 파일 캐시하기, 디스크로부터 큰 파일을 스트리밍하기, 웹 서버의 보안 처리를 다룬다.
2장. HTTP 객체 살펴보기에서는 POST 요청을 받아 처리하는 방법과 파일 업로드, 노드를 HTTP 클라이언트로 사용하기, 다운로드 속도를 조절하는 방법을 설명한다.
3장. 데이터 직렬화 처리에서는 애플리케이션에서 데이터를 브라우저로 전송하는 방법과 서드파티 API에 사용하기 위해 XML, JSON 포맷으로 변환하는 방법을 설명한다.
4장. 데이터베이스 인터페이스에서는 레디스(Redis)나 카우치디비(CouchDB), 몽고디비(MongoDB), MySQL, 또는 일반 CSV 파일 같은 영속적인(persistent) 데이터 저장소와의 연동 방법을 다룬다.
5장. 웹소켓을 사용해 AJAX 뛰어넘기에서는 최신 브라우저에서 제공하는 웹소켓을 사용해 실시간 애플리케이션을 만들고 롱폴링(long-polling)과 기타 방법들을 Socket.io를 사용해 대체하는 방법을 설명한다.
6장. 익스프레스를 사용한 쾌속 개발에서는 익스프레스(express)프레임워크를 활용해 빠르게 웹 개발을 진행한다. 또한 템플릿 언어와 LESS, 스타일러스(Stylus) 같은 CSS 엔진에 대해 알아본다.
7장. 보안, 암호화, 인증 구현에서는 강력한 암호 해시(Hash)를 생성하는 암호화 모듈을 사용하는 방법과 크로스사이트 요청 위조(cross-site request forgery) 공격으로부터 사용자를 보호하는 방법, SSL 보안 웹 서버를 설정하는 방법을 알아본다.
8장. 네트워크 패러다임 통합에서는 메일을 전송하는 방법, 메일 서버를 구축하는 방법, SMS 메시지 전송, 가상 호스트 구현, 원시 TCP와 관련된 내용들을 다룬다.
9장. 자신만의 노드 모듈 작성에서는 테스트 스위트(suite)를 생성하는 방법과 노드 모듈을 직접 작성하고 리팩토링하는 방법, 개선하고 확장하는 방법, 배포하는 방법을 다룬다.
10장. 노드 애플리케이션의 배포에서는 실제 서버에 애플리케이션을 배포한 후 장애 복구 기술을 사용해 서비스를 유지하고 지속적인 배포(continuous deployment)를 적용하는 워크플로우를 구현하거나 단순히 PaaS(Platform as a Service)에 배포하는 방법을 다룬다.
목차
목차
- 1장 웹 서버 만들기
- 소개
- 경로 설정
- 정적 파일 제공
- 빠른 전송을 위해 메모리에 콘텐츠 캐싱
- 스트리밍으로 성능 최적화
- 파일 시스템 해킹 공격에 대한 보안 처리
- 2장 HTTP 객체 살펴보기
- 소개
- POST 데이터 처리
- 파일 업로드 처리
- 노드를 HTTP 클라이언트로 사용
- 다운로드 스로틀링 구현
- 3장 데이터 직렬화 처리
- 소개
- 객체를 JSON으로 변환하고 되돌리기
- 객체를 XML로 변환하고 되돌리기
- AJAX를 사용해 브라우저와 서버 전송
- 실제 데이터 처리: 최신 유행 트윗 가져오기
- 4장 데이터베이스 인터페이스
- 소개
- CSV 파일 작성
- MySQL 서버에 접속하고 SQL 전송
- 몽고디비에 데이터 저장과 조회
- 몽고스킨에 데이터 저장과 조회
- 크래들로 카우치디비에 데이터 저장
- 크래들로 카우치디비 변경 스트림에 접근
- 레디스에 데이터 저장과 조회
- 레디스로 발행/구독 구현
- 5장 웹소켓을 사용해 AJAX 뛰어넘기
- 소개
- 웹소켓 서버 작성
- socket.io를 사용해 웹소켓 대체 연결
- socket.io를 사용해 콜백 함수 전송
- 실시간 위젯 작성
- 6장 익스프레스를 사용한 쾌속 개발
- 소개
- 익스프레스 스케폴딩 작성
- 환경설정과 적용
- 동적 경로 설정
- 익스프레스 템플릿
- 익스프레스 CSS 엔진
- 세션 초기화와 사용
- 익스프레스 웹 애플리케이션 작성
- 7장 보안, 암호화, 인증 구현
- 소개
- HTTP 기본 인증 구현
- 암호화된 패스워드 해싱
- 다이제스트 인증 구현
- HTTPS 웹 서버 설정
- 크로스사이트 요청 위조 방지
- 8장 네트워크 패러다임 통합
- 소개
- 이메일 전송
- TCP 통신
- SMTP 서버 구현
- 가상 호스팅 패러다임 구현
- 9장 자신만의 노드 모듈 작성
- 소개
- 테스트 기반 모듈 API 정의
- 함수 스타일로 모듈 작성
- 함수를 프로토타입으로 리펙토링
- 모듈 API를 확장
- npm에 모듈 배포
- 10장 노드 애플리케이션의 배포
- 소개
- 서버 환경에 배포
- 자동 충돌 복구
- 지속적인 배포
- PaaS에 서비스 호스팅
도서 오류 신고
정오표
정오표
p.188 예제
socket.on(''helloback, function (from) { → socket.on('helloback', function (from) {