장바구니 담기 close

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

Redis와 Nodejs를 사용한 웹 애플리케이션 개발

Redis와 Nodejs를 사용한 웹 애플리케이션 개발

  • 조슈아 조하난
  • |
  • 에이콘출판
  • |
  • 2015-06-30 출간
  • |
  • 360페이지
  • |
  • 188 X 235 X 21 mm /864g
  • |
  • ISBN 9788960777293
★★★★★ 평점(10/10) | 리뷰(1)
판매가

33,000원

즉시할인가

29,700

배송비

무료배송

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

수량
+ -
총주문금액
29,700

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

출판사서평

★ 이 책에서 다루는 내용 ★

■ 직접 익스프레스(Express) 모듈의 미들웨어 구축과 실행
■ Socket.IO와 익스프레스 모듈을 통합하고 동일한 인증 방식 사용
■ 비밀번호를 안전하게 로컬 스토어에 저장하는 방법
■ 메시지 큐를 사용해 애플리케이션을 여러 부분으로 나눠 관리
■ 레디스(Redis)로 서버들 간의 공유된 상태 만들기
■ 백본(Backbone)과 Socket.IO, 리액트(React)로 빠르고 동적인 실시간의 프론트엔드 구축
■ Grunt.js 태스크러너를 사용한 빌드 과정 자동화
■ 클라우드 서버로 애플리케이션을 실행하는 배치 스크립트 작성

★ 이 책의 대상 독자 ★

'확장성(scalability)'이라는 단어가 낯설게 들린다면, 이 책을 꼭 읽어보기 바란다. 프레임워크에 대한 설명은 사전지식을 요구하지 않기 때문에 Node.js를 사용해 본 적이 많지 않아도 상관 없다. 확장성 있는 Node.js 애플리케이션을 곧 만들게 될 것이다! 자바스크립트는 알고 있어야 한다.

★ 이 책의 구성 ★

1장, ‘익스프레스를 사용한 백엔드 개발’에서는 익스프레스를 사용해서 페이지를 보여 주는 것을 배운다. 익스프레스는 완전한 기능을 갖춘 웹 애플리케이션 프레임워크로 소량의 코드를 작성해도 여러 가지 기능을 쓸 수 있게 해준다. 또, 이를 확장해 만든 탄탄한 미들웨어 시스템도 갖추고 있다. 미들웨어는 템플릿과 세션뿐 아니라 폼 데이터도 작업할 수 있게 해준다. 1장에서 애플리케이션의 토대를 만들고, 2장부터는 활용할 것이다.

2장, ‘Socket.IO를 사용한 확장’에서는 웹소켓을 사용해 실시간 애플리케이션을 만드는 방법을 보여준다. 웹소켓은 사용자가 실시간으로 교신할 수 있게 해주는 동적 웹페이지 발전의 다음 단계다. 2장은 익스프레스 모듈로 만든 세션에 Socket.IO 모듈을 적용하는 예제를 보여준다.

3장, ‘사용자 인증’에서는 제대로 동작하는 로그인 페이지를 만드는 법을 보여 준다. 여기서 패스포트 프레임워크를 사용해 인증 함수를 만든다. 패스포트는 여러 프로바이더들과 연결할 커넥터를 만드는 데 주로 쓰인다. 커넥터들은 OAuth나 OAuth 2.0을 구현한다. 여러 OAuth 프로바이더들을 대상으로 커넥터를 직접 구현할 필요 없이 각 라이브러리가 처리한다. 로컬 패스워드를 안전하게 저장하는 방법도 알게 된다.

4장, ‘RabbitMQ로 메시지 큐잉하는 법’에서는 메시지 큐(Queue)를 다룬다. 메시지 큐는 확장성 있는 애플리케이션의 필수 사항으로, 애플리케이션을 분해해서 복잡성이나 스코프를 처리할 수 있게 해준다. 4장에서 이에 대한 예제를 다루게 된다. 또한 사용자 각자의 메시지 큐를 만들어서 함수에 연결하는 방법도 알려 준다.

5장, ‘애플리케이션 데이터 저장소로 레디스 사용하기’에서는 레디스에 정보를 저장하고 회수하는 방법을 배운다. 레디스 데이터 스토리지 엔진은 관계형 데이터베이스와 다르기 때문에 꼭 배워야 한다. 관계형 데이터베이스처럼 생각하면 문제가 발생할 수 있다. 애플리케이션을 만들 때 주로 쓰는 커맨드뿐만 아니라 레디스가 메시지 큐를 수행하는 방법에 대해 배운다.

6장, ‘바우어를 사용한 프론트엔트 의존성 관리’에서는 애플리케이션의 프론트엔드 개발을 시작하는 방법을 배운다. 프론트엔드가 없는 애플리케이션은 없다. 여기서 쓸 프레임워크에 대해 알아보고 왜 그 프레임워크를 사용했는지 알게 될 것이다.

7장, ‘DOM 이벤트를 위한 백본과 리액트 사용’에서는 프론트엔드의 중추 역할을 하는 백본을 다룬다. 브라우저에서 자바스크립트를 수행할 때 중요한 것 두 가지는 DOM 조작과 이벤트 응답이다. 실시간 이벤트의 리스너를 만드는 방법과 페이지와 상호 작용하는 방법을 배운다. 백본과 리액트로 지속 가능한 코드를 만들어 이를 수행한다.

8장, ‘애플리케이션 개발을 위한 자바스크립트 사용 사례’에서는 더 나은 자바스크립트 코드를 작성하는 법을 배운다. 스크립트 언어인 자바스크립트는 실수를 많이 해도 실행이 되는데, 이는 장점이기도 하고 단점이기도 하다. 하지만 세미콜론을 빼먹거나 런타임 오류가 발생하는 것은 알아야 한다. 이는 반복되는 빌드 시스템을 만들어 해결한다. 여러 모듈들을 보고 어떤 모듈은 코드에 적용하지 않을지 배운다.

9장, ‘배치와 확장성’에서는 로컬호스트 주소를 삭제하는 방법을 배운다. 배치할 때 실수로 어떤 단계를 빠트리는 경우가 많기 때문에 배치 스크립트를 제대로 만드는 것이 중요하다. 한 개 이상의 서버에 배치하는 법과 배치할 수 있는 여러 환경을 만드는 법을 배운다. 서버가 여러 개 있으면 수평 확장이 가능하므로 서버를 추가하기 쉬운 장점이 있다.

10장, ‘디버깅과 문제 해결’에서는 함수 호출 상태를 알아보는 방법에 대해 설명한다. console.log() 함수를 여러 군데 사용해 디버깅하기는 어렵기 때문이다. 또한 프론트엔드와 백엔드에서 메모리 누수를 탐지하는 법을 배운다. 크롬에서 자바스크립트 디버깅을 해 봤다면 10장에서 도움을 많이 받을 것이다.

목차

1장 익스프레스를 사용한 백엔드 개발
__Node.js와 노드 패키지 관리자
__노드에서 익스프레스 사용하기
__익스프레스에서 미들웨어 사용하기
____미들웨어 작성
__믹스에 템플릿 추가
____레이아웃
__익스프레스에서 세션 사용하기
____익스프레스에서 쿠키 사용하기
____세션 추가하기
____레디스를 세션 스토어로 사용하기
__폼 처리
____CSRF
__매우 간단한 인증
__앱의 설정 파일 설정
____라우트 매핑
____설정을 사용하도록 앱 수정하기
__애플리케이션을 확장하는 방법
__요약

2장 Socket.IO를 사용한 확장
__노드 패키지 버전
__간단한 Socket.IO 앱 만들기
____패키지 설치
____클라이언트 만들기
____파이썬을 사용해 사이트 서버 구축하기
____핑퐁
____상호 작용 만들기
____브라우저 부분 추가
____액크놀리지먼트
__메시지 브로드캐스팅
__디스컨넥트 이벤트 사용하기
__네임스페이스 만들기
____네임스페이스 클라이언트 만들기
__룸 추가
__네임스페이스 또는 룸 사용하기
____네임스페이스
________네임스페이스 찾기
____룸은 언제 사용하는가
____룸 찾기
__네임스페이스와 룸을 함께 사용하기
__Socket.IO와 익스프레스를 함께 사용하기
____설정에 Socket.IO 추가하기
____당신은 누구인가
________Socket.IO의 인증
__애플리케이션 이벤트 추가
__Socket.IO의 저장소로 레디스 사용하기
__Socket.IO 내부 동작
____WebSocket
__2장에서 중요한 아이디어
__요약

3장 사용자 인증하기
__노드 패키지 버전
__인증시스템 만드는 방법
__페이스북 애플리케이션 등록하는 방법
__페이스북을 인증하기 위해 Passport 모듈을 쓰는 방법
__구글로 인증하는 방법
__애플리케이션에 구글 인증 추가하기
__더 많은 OAuth 프로바이더 추가
__안전한 로컬 인증 추가
____등록 추가
____데이터베이스 추가하기
__패스워드 스토어 이론
__OAuth 프로세스
__요약

4장 RabbitMQ로 메시지 큐잉하는 법
__노드 패키지 버전
__RabbitMQ 설치
____Mac OS X에 인스톨하는 방법
________RabbitMQ 관리 플러그인
____리눅스에 인스톨하는 방법
____윈도우에 인스톨하는 방법
__처음으로 만든 메시지 큐
____매니지먼트 인터페이스
____메시지 보내기
____메시지를 큐에 저장하기
____다른 워커 추가
__응답 메시지 보내기
____StartServer 만들기
____워커 만들기
____실시간으로 카드 요금 청구 청구하기
__PacktChat에 메시지 큐 추가
____토픽 익스체인지
____워커 만들기
__RabbitMQ에서 큐에 메시지 저장
__요약

5장 애플리케이션 데이터 저장소로 레디스 사용하기
__노드 패키지 버전
__레디스 설치하는 방법
____Mac OS X에 설치하는 방법
____리눅스에 설치하는 방법
____윈도우에 설치하는 방법
__레디스에서 데이터 구조 사용하기
____간단한 레디스 애플리케이션 만드는 방법
__레디스 스키마
____해시 사용하기
____레디스에서의 키
__레디스의 지속성
____레디스 키 삭제하기
__메시지 큐로 레디스 사용하기
__레디스를 PacktChat에 추가하기
____레디스 구조 정하기
____레디스 함수 만들기
__레디스는 애플리케이션 상태를 위한 용도로 쓰인다
__요약

6장 바우어를 사용한 프론트엔트 의존성 관리
__노드 패키지 버전
__바우어 설치와 사용
__리액트 소개
__백본 소개
____백본 모델 사용
____백본 컬렉션 사용
__요약

7장 DOM 이벤트를 위한 백본과 리액트 사용
__바우어 패키지 버전들
__Socket.IO 마무리
__리액트 컴포넌트 만들기
____리액트 요약
__백본 모델
____모델과 Socket.IO 동기화
____모델 생성
____컬렉션 생성
__백본 라우터
__컬렉션과 뷰 합치기
__CSS와 레이아웃 수정
__새 워커 등록
__애플리케이션 사용 시도
__요약

8장 애플리케이션 개발을 위한 자바스크립트 사용 사례
__노드 패키지 버전
__테스트 환경 설정
____코드 커버리지에 이스탄불 응용
__다양한 환경 설정
____투웰브 팩터 앱
____config 파일 수정하기
____환경 파일 생성
____추가 환경 설정
__그런트 소개
____기본 그런트 파일 빌드
____테스트 자동화
____파일 전처리
____그런트를 사용한 폴더 비우기
____소스파일 JSHinting
____코드 통합
____코드 축소
____그런트 요약
__정적 파일과 CDN
____S3 버킷 생성
____파이썬과 가상환경 설치
__새로운 툴 스크립트 생성
__요약

9장 배치와 확장성
__EC2 서버 생성
____AWS EC2 요약
__앤서블은 무엇인가
____앤서블 설치
____앤서블 롤 사용
________RabbitMQ 설치
________애플리케이션 설치
________코드 배포
________다중 애플리케이션 서버 로드 밸런싱
________롤 자동화
____앤서블 요약
____새로운 환경 생성
__확장성
____확장성의 여러 가지 타입
________수평 확장
________수직 확장
__요약

10장 디버깅과 문제 해결
__노드 패키지
__크롬 개발자 도구 사용
____요소
____네트워크
____소스
____타임라인
____프로파일
____리소스
____감사
____콘솔
__요청 분석
__디버깅
____프론트엔드 디버깅
____백엔드 디버깅
____디버깅 요약
__애플리케이션 CPU 프로파일링
__힙 스냅샷 생성
____프론트엔드 메모리 누수
____메모리 누수 요약
__요약

저자소개

저자 조슈아 조하난(Joshua Johanan)은 현재 인디아나 주 사우스벤드에 거주 중인 웹 개발자이다. 5년의 웹 개발 경력이 있으며, PHP, 파이썬, 자바스크립트, C# 등으로 여러 사이트를 개발했고, 가장 선호하는 언어는 파이썬과 자바스크립트다. 이 언어들을 쓰면서, 젠드(Zend) 프레임워크, 장고(Django), 닷넷 MVC 등의 MVC 프레임워크를 사용하게 됐다. 이 책에서도 알 수 있듯이, 조슈아는 자바스크립트를 활용해, 백엔드에는 Node.js를 사용하고, 프론트엔드에는 백본(Backbone), 리액트(React), 제이쿼리(jQuery), 순수 자바스크립트 등 여러 가지 라이브러리를 사용했다. 현재 건강 보험 기관에서 C#으로 웹 사이트를 개발하는 일을 한다. 화려한 최신 브라우저 기술을 쓸 수는 없지만, 유지보수와 확장성에 관한 개발 능력은 요구된다.
이 책은 첫 번째 저서이지만 http://ejosh.co/de에서 조하난이 정기적으로 올리는 글을 볼 수 있다.

도서소개

이 책에서는 최근 많은 주목을 받고 있는 Node.js와 레디스(Redis)를 사용해 실제 웹 애플리케이션을 개발하기 위한 노하우를 전수하고 있다. 성공적인 웹 서비스를 개발하고 운영하기 위해 필수적인 운영 시스템의 확장성을 보장하기 위한 방법을 최신의 프레임워크인 Node.js를 사용해 웹 애플리케이션을 밑바닥에서부터 개발하는 실제 예를 통해 이슈와 해결 방법을 설명하고 있다. 또한 최근에 주목 받고 있는 메모리 기반 키-값 스토리지인 레디스에 대해서도 설명하고 있으며 이 외에도 웹 애플리케이션 개발에 필요한 여러 모듈과 툴을 소개하고 있다.

교환 및 환불안내

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