프로페셔널 Node.js
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
작가정보
저자(글) 페드로 테세이라
저자 페드로 테세이라는 오픈소스 프로그래머이자 여러 Node.js 모듈의 제작자다. 14년 전에 소프트웨어 공학으로 학위를 받은 후 컨설턴트, 프로그래머, 국제적으로 유명한 Node.js 커뮤니티 회원으로 활동하고 있다. 페드로는 The Node Firm의 창립 파트너이며, Node.js 플랫폼을 서비스하는 선두 기업인 Nodejitsu Inc의 선임 프로그래머다. 또 인기 있는 노드 터츠(Node Tuts) 스크린캐스트를 만든 장본인이기도 하다. 페드로가 10살 때 그의 아버지는 ZX 스펙트럼을 프로그래밍하는 법을 페드로에게 가르쳤다. 이후 페드로는 프로그래밍을 한 번도 쉰 적이 없다. 페드로는 독학으로 아버지가 갖고 있던 애플 IIc 프로그래밍을 익혔고 이후 PC 프로그래밍에 입문했다. 대학에서는 유닉스와 오픈소스 세계를 처음 접하고 크게 매료된다. 직장에서는 비주얼 베이직, C, C++, 자바, PHP, 루비, 자바스크립트를 사용해 대규모 통신회사, 은행, 호텔 체인 등을 위한 시스템과 제품을 개발했다. 페드로는 노드가 처음 개발됐을 때부터 Node.js의 열렬한 지지자였으며, 많은 애플리케이션과 Fugue, Alfred.js, Carrier, Nock 등과 같은 유명한 모듈을 개발했다.
번역 유윤선
역자 유윤선은 인디 개발자이자 프리랜서 번역가로 활동 중이다. 이따금 http://joshy21.com/weblog에 번역과 상관없는 글을 올리고 있다. 역서로는 《NoSQL 프로그래밍》, 《프로 스프링 3》, 《라이프해커》, 《시작하세요! 아이폰 5 프로그래밍》, 《안드로이드 레시피》, 《시작하세요! Unity 3D 게임 프로그래밍》, 《시작하세요! 안드로이드 게임 프로그래밍》, 《시작하세요! 아이폰 4 프로그래밍》, 《플래시 빌더 4 & 플렉스 4 바이블》, 《쉽고 빠르게 익히는 CSS3》, 《스프링 시큐리티 3》, 《시작하세요! 아이패드 프로그래밍》, 《오브젝티브 C 개발 레시피》, 《프로 제이쿼리 완벽 마스터》, 《5일 만에 아이폰 앱 개발하기》, 《WebGL 개발 입문》, 《플래시 게임 마스터》, 《Adobe AIR 인 액션》, 《스프링 3 레시피》, 《액션스크립트 3.0 완벽가이드》 등이 있다.
목차
- [1부] 소개 및 설정
▣ 01장_ 노드 설치
윈도우에서의 노드 설치
맥 OS X에서의 설치
소스코드를 활용한 노드 설치
- 노드 버전의 선택
- 노드 소스코드 내려받기
- 노드 빌드
- 노드 설치
- 노드 실행
노드 패키지 매니저의 설정 및 활용
- NPM을 활용한 패키지 설치, 업데이트, 제거
정리
▣ 02장_ 노드 소개
이벤트 주도 프로그래밍 방식의 이해
노드와 자바스크립트에서 비동기적 애플리케이션 개발이 쉬운 이유
- 클로저란?
- 클로저가 비동기적 프로그래밍에 도움되는 이유
정리
[2부] 노드 핵심 API
▣ 03장_ 모듈 로딩
노드가 모듈을 로드하는 방식
모듈 내보내기
- 모듈의 로딩
정리
▣ 04장_ 바이너리 데이터의 조작, 인코딩, 디코딩을 위한 버퍼 활용
버퍼의 생성
버퍼의 바이트 가져오기 및 설정
버퍼 잘라내기
버퍼 복사
버퍼 디코딩
정리
▣ 05장_ 이벤트 이미터 패턴을 활용한 이벤트 바인딩 단순화
표준 콜백 패턴의 이해
이벤트 이미터 패턴의 이해
이벤트 타입의 이해
이벤트 이미터 API의 활용
- .addListener() 또는 .on()을 활용한 콜백 바인딩
- 여러 이벤트 리스너의 바인딩
- .removeListener()를 활용한 이벤트 이미터의 이벤트 리스너 제거
- .once()를 통한 일회용 콜백 등록
- .removeAllListeners()를 활용한 모든 이벤트 리스너 제거
커스텀 이벤트 이미터의 개발
- Node 이벤트 이미터의 상속
- 이벤트 내보내기
정리
▣ 06장_ 타이머를 활용한 함수 호출 예약
SETTIMEOUT을 활용한 함수의 실행 지연
CLEARTIMEOUT을 활용한 함수의 실행 취소
함수의 반복 실행 예약 및 취소
PROCESS.NEXTTICK을 활용해 다음 이벤트 루프 반복까지 함수 실행 연기하기
이벤트 루프 블로킹
이벤트 루프 빠져나가기
SETINTERVAL 대신 SETTIMEOUT을 활용한 직렬화 강제 적용
정리
[3부] 파일, 프로세스, 스트림, 네트워크 통신
▣ 07장_ 파일 조회, 읽기, 쓰기
파일 경로의 조작
- 경로 정규화
- 경로 결합
- 경로 해석
- 두 절대 경로 사이에서 상대 경로 찾기
- 경로 구성 요소의 추출
- 경로의 존재 여부 판단
FS 모듈의 소개
- 파일 통계 정보 조회
파일 열기
파일 읽기
- 파일에 쓰기
- 파일 닫기
정리
▣ 08장_ 외부 프로세스의 생성 및 제어
외부 명령의 실행
자식 프로세스의 실행
- 자식 프로세스의 생성
- 자식 프로세스의 데이터 수신
- 자식 프로세스로의 데이터 전송
- 자식 프로세스 종료 시 알림 수신
신호 전달 및 프로세스 죽이기
정리
▣ 09장_ 데이터 스트림 읽기와 쓰기
읽기 가능 스트림의 활용
- 데이터 기다리기
- 스트림의 일시 정지 및 재개
- 스트림이 끝나는 시점의 판단
쓰기 가능 스트림의 활용
- 스트림에 데이터 쓰기
- 스트림의 드레인 시점 기다리기
복잡한 스트림 예제에 대한 고려
- 파일 시스템 스트림의 생성
- 네트워크 스트림의 이해
느린 클라이언트 문제를 피하고 서버 구하기
- 느린 클라이언트 문제의 이해
- 느린 클라이언트 문제의 해결
- stream.pipe()를 활용한 느린 클라이언트 문제 예방 및 읽기 가능 스트림과 쓰기 가능 스트림의 파이핑
정리
▣ 10장_ TCP 서버의 개발
TCP 서버의 생성
- Socket- 객체의 활용
- 유휴 소켓의 이해
- Keep-Alive 설정
- 지연 시간의 활용 또는 미사용
- 클라이언트 커넥션 리스닝
- 서버 닫기
- 에러 처리
간단한 TCP 채팅 서버의 개발
- 커넥션 수신
- 커넥션으로부터 데이터 읽기
- 모든 클라이언트 수집
- 데이터 전달
- 닫힌 커넥션의 제거
- TCP 채팅 서버 활용법
정리
▣ 11장_ HTTP 서버의 개발
HTTP.SERVERREQUEST 객체의 이해
HTTP.SERVERRESPONSE- 객체의 이해
- 헤더 쓰기
- 헤더의 변경 또는 설정
- 헤더의 제거
- 응답 바디 쓰기
HTTP 청크 응답 스트리밍
- 파일 파이핑
- 다른 프로세스의 출력 파이핑
서버 닫기
예제- 1:정적 파일을 제공하는 서버 개발
예제 2: HTTP 청크 응답과 타이머의 활용
정리
▣ 12장_ TCP 클라이언트의 개발
서버 연결
데이터의 전송 및 수신
커넥션 종료
에러 처리
명령행 TCP 클라이언트 예제의 개발
- 서버 연결
- 서버로의 명령행 데이터 전송
- 서버 메시지의 출력
- 커넥션이 끊길 때의 재연결
- 커넥션 닫기
- 클라이언트 한데 정리하기
정리
▣ 13장_ HTTP 요청의 수행
GET 요청하기
다른 HTTP 동사의 활용
- 응답 객체의 검사
- 응답 본문 가져오기
- 응답 본문 스트리밍
HTTP.AGENT를 활용한 소켓 풀링
서드파티 요청 모듈을 활용한 HTTP 요청 단순화
- request 모듈의 설치 및 사용
- 테스트 서버의 생성
- 리다이렉트 따르기
- 요청 옵션의 설정
- 요청 본문 인코딩
- 스트리밍
- 쿠키 보관함의 활용
정리
▣ 14장_ 데이터그램의 활용
UDP의 이해
UDP의 활용법 이해
데이터그램 서버의 개발
- 메시지 리스닝
- 서버 테스트
- 추가 메시지 정보의 검사
간단한 데이터그램 에코 서버의 개발
- 메시지 기다리기
- 전송자에게 메시지 재전송
- 에코 서버 정리
데이터그램 클라이언트의 개발
- 클라이언트의 개발
- 메시지 전송
- 소켓 닫기
간단한 데이터그램 명령행 클라이언트의 개발
- 명령행에서 읽기
- 서버로 데이터 보내기
- 서버로부터 데이터 받기
- 명령행 UDP 클라이언트 정리
데이터그램 멀티캐스트의 이해와 활용
- 멀티캐스트 메시지의 수신
- 멀티캐스트 메시지의 전송
- 데이터그램의 최대 크기
정리
▣ 15장_ TLS/SSL을 통한 TCP 서버 보호
개인 키와 공개 키의 이해
- 개인 키의 생성
- 공개 키의 생성
TLS 서버의 개발
- 서버 초기화
- 커넥션 리스닝
- 클라이언트로부터 데이터 읽기
- 클라이언트로 데이터 보내기
- 접속 종료
TLS 클라이언트의 개발
- 클라이언트 초기화
- 서버 접속
- 서버 인증서의 확인
- 서버로 데이터 보내기
- 서버로부터 데이터 읽기
- 접속 종료
예제 개발
- TLS 채팅 서버의 개발
- TLS 명령행 채팅 클라이언트의 개발
- 클라이언트 인증서의 확인
정리
▣ 16장_ HTTPS를 통한 HTTP 서버 보호
보안 HTTP 서버의 개발
- 서버 옵션의 설정
- 커넥션 리스닝
- HTTPS 클라이언트 인증서의 유효성 검증
HTTPS 클라이언트의 개발
- 클라이언트 초기화
- 요청 보내기
- HTTPS 서버 인증서의 검증
정리
[4부] 모듈 및 애플리케이션 개발과 디버깅
▣ 17장_ 모듈 및 애플리케이션 테스트
테스트 러너의 활용
- 테스트 작성
- 테스트 실행
ASSERTION 테스트 모듈의 활용
- assert 모듈의 활용
- 노드탭의 내장 Assertion 함수 활용
비동기적 모듈의 테스트
정리
▣ 18장_ 모듈 및 애플리케이션 디버깅
CONSOLE.LOG의 활용
노드의 내장 디버거 활용
노드 인스펙터의 활용
정리
▣ 19장_ 콜백 흐름의 제어
부메랑 효과의 이해
함수 선언을 통한 부메랑 효과 방지
비동기 흐름 제어 라이브러리의 활용
- 연속 실행
- 병렬 실행
- 캐스케이딩
- 큐
- 순회
- 매핑
- 리듀싱
- 필터링
- 감지
정리
[5부] 웹 애플리케이션 개발
▣ 20장_ HTTP 미들웨어의 개발 및 활용
커넥트 HTTP 미들웨어 프레임워크의 이해
커스텀 HTTP 미들웨어의 개발
- 비동기적 미들웨어의 개발
- 미들웨어 내에서의 콜백 등록
- 미들웨어 내에서의 에러 처리
커넥트의 내장 HTTP 미들웨어 활용
- 요청 로깅
- 에러 처리
- 정적 파일 서비스
- 쿼리 문자열 파싱
- 요청 본문의 파싱
- 쿠키 파싱
- 세션의 활용
- 다른 미들웨어
정리
▣ 21장_ Express.js를 활용한 웹 애플리케이션 개발
EXPRESS.JS 애플리케이션의 초기화
애플리케이션의 미들웨어 설정
요청 라우팅
- 요청 처리
- 세션 활용
- 라우트 미들웨어의 활용
정리
▣ 22장_ Socket.IO를 활용한 실시간 애플리케이션 개발
웹소켓의 동작 원리 이해
SOCKET.IO를 활용한 웹소켓 애플리케이션 개발
- 서버에서의 Socket.IO 설치 및 실행
- Socket.IO를 활용한 실시간 웹 채팅 개발
- 채팅 애플리케이션의 확장
- 접속 중단 감지
- 사용자 채팅방 분리
- 네임스페이스의 활용
- 레디스를 활용한 서버사이드 애플리케이션 배포
정리
[6부] 데이터베이스 연결
▣ 23장_ node-mysql을 활용한 MySQL 연결
라이브러리를 활용한 MySQL 데이터베이스 연결 및 통신
보안을 염두에 둔 데이터 추가
효과적인 데이터 조회
정리
▣ 24장_ 나노를 활용한 카우치디비 연결
나노 모듈의 설치
데이터베이스 연결 및 생성
도큐먼트 저장
카우치디비 뷰의 생성 및 활용
카우치디비 도큐먼트의 파일 첨부
정리
▣ 25장_ 몽구스를 활용한 몽고디비 연결
몽구스의 설치
몽구스가 모델을 활용해 데이터베이스 접근을 캡슐화하는 원리의 이해
몽고디비 연결
스키마 정의
모델 정의
- 밸리데이터 활용
- 수정자의 활용
- 게터의 활용
- 가상 어트리뷰트의 활용
- 기본값의 활용
- 인덱스의 정의
- DB Ref를 활용한 다른 도큐먼트 참조
- 인스턴스 메서드의 정의
- 스태틱 메서드의 정의
정리
출판사 서평
《프로페셔널 Node.js》에서는 노드의 설치부터 시작해 노드의 비동기적 프로그래밍 모델의 주요 원리를 살펴보고, 모듈 로딩, 바이너리 데이터 조작, 이벤트 이미터 패턴 활용법과 같은 핵심 API를 소개한다. 또 파일, 프로세스, 스트림, 네트워크 통신에 대한 자세한 설명과 풍부한 예제를 통해 독자들이 노드로 서버를 구현하는 데 꼭 필요한 지식(파일 처리, 프로세스의 생성 및 제어, 스트림 읽기/쓰기, TCP 서버 및 HTTP 서버의 생성 및 활용 등)을 익힐 수 있게 도와준다. 아울러 개발한 서버를 테스트하는 데 도움되는 툴과 모범 기법도 소개하고, 노드를 통한 웹 애플리케이션 및 Socket.IO를 활용한 실시간 애플리케이션 개발 방법, MySQL 및 NoSQL 데이터베이스와의 연동법에 대해서도 다루고 있다.
노드의 기본 원리에서부터 각 모듈을 활용하는 법, 커스텀 모듈을 정의하는 법 같은 기본적인 내용은 물론 노드를 활용할 때 염두에 둘 만한 모범 기법과 실시간 애플리케이션 개발이나 빅데이터와의 연동 같은 다양한 주제에 대해서도 빠짐없이 배울 수 있다. 더불어 풍부한 예제 코드와 친절한 설명을 통해 노드 플랫폼과 관련한 다양한 주제를 소화할 수 있게 도와준다.
<출판사 리뷰>
Node.js를 사용해 자바스크립트로 확장 가능한 소프트웨어를 개발하자!
Node.js는 자바스크립트로 빠르고 확장 가능한 네트워크 프로그램을 개발할 수 있는 인기 있는 프레임워크다. 하지만 Node.js를 배우기란 쉽지 않다. 이 책에서는 Node.js 플랫폼의 설치부터 모듈을 개발하고 로드하는 기본적인 방법, 버퍼를 활용해 바이너리 데이터를 조작·인코딩·디코딩하는 법, 이벤트 이미터 패턴을 활용해 이벤트 바인딩을 단순화하는 법 등을 차례로 소개한다. 타이머를 활용해 함수 실행을 예약하는 것부터 외부 프로세스를 생성하고 제어하는 법에 이르기까지 이 책에서는 독자들이 자신만의 모듈을 개발·테스트·구동하는 데 필요한 모든 내용을 알려준다.
★ 이 책에서 다루는 내용 ★
◎ 파일의 조회, 읽기, 쓰기
◎ 스트림, 파일 시스템, 네트워킹, 자동화된 단위 테스트
◎ 데이터 스트림을 읽고 쓰는 법
◎ TCP와 HTTP 서버 및 클라이언트 개발
◎ 데이터그램 활용, 모듈 테스트 및 디버깅, 콜백 흐름의 제어
◎ 커넥트, 익스프레스, Socket.IO를 활용한 실시간 웹 애플리케이션 개발
◎ MySQL, 카우치디비, 몽고디비 연결
기본정보
ISBN | 9788998139155 | ||
---|---|---|---|
발행(출시)일자 | 2013년 03월 28일 | ||
쪽수 | 492쪽 | ||
크기 |
188 * 240
* 23
mm
/ 940 g
|
||
총권수 | 1권 | ||
시리즈명 |
위키북스 오픈소스 웹 시리즈
|
||
원서명/저자명 | Professional Node.js : building Javascript based scalable software./Teixeira, Pedro |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립