장바구니 담기 close

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

네티 인 액션

네티 인 액션

  • 노먼 마우러 , 마빈 알렌 울프탈 지음 | 최민석 옮김
  • |
  • 위키북스
  • |
  • 2016-04-15 출간
  • |
  • 336페이지
  • |
  • 188 X 240 mm
  • |
  • ISBN 9791158390327
★★★★★ 평점(10/10) | 리뷰(1)
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

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

수량
+ -
총주문금액
22,500

이 상품은 품절된 상품입니다

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

목차

[01부] 네티 개념과 아키텍처

▣ 01장: 네티 - 비동기식 이벤트 기반 네트워킹 프레임워크

1.1 자바의 네트워킹
___1.1.1 자바 NIO
___1.1.2 셀렉터
1.2 네티 소개
___1.2.1 네티는 누가 사용할까?
___1.2.2 비동기식 이벤트 기반 네트워킹
1.3 네티의 핵심 컴포넌트
___1.3.1 Channel
___1.3.2 콜백
___1.3.3 Future
___1.3.4 이벤트와 핸들러
___1.3.5 내용 정리
1.4 요약

▣ 02장: 첫 번째 네티 애플리케이션

2.1 개발 환경 설정
___2.1.1 JDK 내려받기와 설치
___2.1.2 IDE 내려받기와 설치
___2.1.3 아파치 메이븐 내려받기와 설치
___2.1.4 툴셋 구성
2.2 네티 클라이언트/서버 개요
2.3 Echo 서버 만들기
___2.3.1 ChannelHandler와 비즈니스 논리
___2.3.2 서버 부트스트랩
2.4 Echo 클라이언트 만들기
___2.4.1 ChannelHandler를 이용한 클라이언트 논리 구현
___2.4.2 클라이언트 부트스트랩
2.5 Echo 서버와 클라이언트의 빌드와 실행
___2.5.1 빌드
___2.5.2 Echo 서버와 클라이언트 실행
2.6 요약

▣ 03장: 네티 컴포넌트와 설계

3.1 Channel, EventLoop, ChannelFuture
___3.1.1 Channel 인터페이스
___3.1.2 EventLoop 인터페이스
___3.1.3 ChannelFuture 인터페이스
3.2 ChannelHandler와 ChannelPipeline
___3.2.1 ChannelHandler 인터페이스
___3.2.2 ChannelPipeline 인터페이스
___3.2.3 ChannelHandler에 대한 고찰
___3.2.4 인코더와 디코더
___3.2.5 추상 클래스 SimpleChannelInboundHandler
3.3 부트스트랩
3.4 요약

▣ 04장: 전송

4.1 사례 연구: 전송 마이그레이션
___4.1.1 네티 없이 OIO와 NIO 이용
___4.1.2 네티와 함께 OIO와 NIO 이용
___4.1.3 논블로킹 네티 버전
4.2 전송 API
4.3 포함된 전송
___4.3.1 NIO: 논블로킹 입출력
___4.3.2 Epoll: 리눅스용 네이티브 논블로킹 전송
___4.3.3 OIO: 기존 블로킹 입출력
___4.3.4 JVM 내부 통신용 로컬 전송
___4.3.5 임베디드 전송
4.4 전송 사용 사례
4.5 요약

▣ 05장: ByteBuf

5.1 ByteBuf API
5.2 ByteBuf 클래스: 네티의 데이터 컨테이너
___5.2.1 작동 방식
___5.2.2 ByteBuf 사용 패턴
5.3 바이트 수준 작업
___5.3.1 임의 접근 인덱싱
___5.3.2 순차 접근 인덱싱
___5.3.3 폐기할 수 있는 바이트
___5.3.4 읽을 수 있는 바이트
___5.3.5 기록할 수 있는 바이트
___5.3.6 인덱스 관리
___5.3.7 검색 작업
___5.3.8 파생 버퍼
___5.3.9 읽기/쓰기 작업
5.3.10 추가 작업
5.4 ByteBufHolder 인터페이스
5.5 ByteBuf 할당
___5.5.1 주문식 할당을 위한 ByteBufAllocator 인터페이스
___5.5.2 풀링되지 않는 버퍼
___5.5.3 ByteBufUtil 클래스
5.6 참조 카운팅
5.7 요약

▣ 06장: ChannelHandler와 ChannelPipeline

6.1 ChannelHandler 계층
___6.1.1 Channel 수명주기
___6.1.2 ChannelHandler 수명주기
___6.1.3 ChannelInboundHandler 인터페이스
___6.1.4 ChannelOutboundHandler 인터페이스
___6.1.5 ChannelHandler 어댑터
___6.1.6 리소스 관리
6.2 ChannelPipeline 인터페이스
___6.2.1 ChannelPipeline 수정
___6.2.2 이벤트 생성
6.3 ChannelHandlerContext 인터페이스
___6.3.1 ChannelHandlerContext 이용
___6.3.2 ChannelHandler와 ChannelHandlerContext의 고급 활용
6.4 예외 처리
___6.4.1 인바운드 예외 처리
___6.4.2 아웃바운드 예외 처리
6.5 요약

▣ 07장: EventLoop와 스레딩 모델

7.1 스레딩 모델의 개요
7.2 EventLoop 인터페이스
___7.2.1 네티 4의 입출력과 이벤트 처리
___7.2.2 네티 3의 입출력 작업
7.3 작업 스케줄링
___7.3.1 JDK 스케줄링 API
___7.3.2 EventLoop를 이용한 작업 스케줄링
7.4 구현 세부 사항
___7.4.1 스레드 관리
___7.4.2 EventLoop와 스레드 할당
7.5 요약

▣ 08장: 부트스트랩

8.1 부트스트랩 클래스
8.2 비연결 프로토콜과 클라이언트 부트스트랩
___8.2.1 클라이언트 부트스트랩
___8.2.2 Channel과 EventLoopGroup 호환성
8.3 서버 부트스트랩
___8.3.1 ServerBootstrap 클래스
___8.3.2 서버 부트스트랩
8.4 채널에서 클라이언트 부트스트랩
8.5 부트스트랩 중 여러 ChannelHandler 추가
8.6 네티 ChannelOption과 특성 이용
8.7 DatagramChannel 부트스트랩
8.8 종료
8.9 요약

▣ 09장: 단위 테스트

9.1 EmbeddedChannel 개요
9.2 EmbeddedChannel을
ChannelHandler 테스트
___9.2.1 인바운드 메시지 테스트
___9.2.2 아웃바운드 메시지 테스트
9.3 예외 처리 테스트
9.4 요약

[02부] 코덱

▣ 10장: 코덱 프레임워크

10.1 코덱이란?
10.2 디코더
___10.2.1 ByteToMessageDecoder 추상 클래스
___10.2.2 ReplayingDecoder 추상 클래스
___10.2.3 MessageToMessageDecoder 추상 클래스
___10.2.4 TooLongFrameException 클래스
10.3 인코더
___10.2.3 MessageToByteEncoder 추상 클래스
___10.2.3 MessageToMessageEncoder 추상 클래스
10.4 추상 코덱 클래스
___10.4.1 ByteToMessageCodec 추상 클래스
___10.2.3 MessageToMessageCodec 추상 클래스
___10.4.3 CombinedChannelDuplexHandler 클래스
10.5 요약

▣ 11장: 네티에서 제공하는 ChannelHandler와 코덱

11.1 SSL/TLS를 이용한 네티 애플리케이션 보안
11.2 네티 HTTP/HTTPS 애플리케이션 개발
___11.2.1 HTTP 디코더, 인코더, 코덱
___11.2.2 HTTP 메시지 집합체
___11.2.3 HTTP 압축
___11.2.4 HTTPS 이용
___11.2.5 웹소켓
11.3 유휴 연결과 시간 만료
11.4 구분 기호 및 길이 기반 프로토콜의 디코딩
___11.4.1 구분 기호 프로토콜
___11.4.2 길이 기반 프로토콜
11.5 대용량 데이터 기록
11.6 데이터 직렬화
___11.6.1 JDK 직렬화
___11.6.2 JBoss 마셜링을 이용한 직렬화
___11.6.3 프로토콜 버퍼를 통한 직렬화
11.7 요약

[03부] 네트워크 프로토콜

▣ 12장: 웹소켓

12.1 웹소켓 소개
12.2 예제 웹소켓 애플리케이션
12.3 웹소켓 지원 추가
___12.3.1 HTTP 요청 처리
___12.3.2 웹소켓 프레임 처리
___12.3.3 ChannelPipeline 초기화
___12.3.4 부트스트랩
12.4 애플리케이션 테스트
___12.4.1 암호화
12.5 요약

▣ 13장: UDP를 이용한 이벤트 브로드캐스팅

13.1 UDP 기본 사항
13.2 UDP 브로드캐스트
13.3 UDP 예제 애플리케이션
13.4 메시지 POJO: LogEvent
13.5 브로드캐스터 작성
13.6 모니터 작성
13.7 LogEventBroadcaster와 LogEventMonitor 실행
13.8 요약

[04부] 사례 연구

▣ 14장: 사례 연구 1부

14.1 드로플러: 모바일 서비스 구축
___14.1.1 초기 상황
___14.1.2 드로플러의 작동 방식
___14.1.3 빠른 업로드 환경 구축
___14.1.4 기술 스택
___14.1.5 성능
___14.1.6 요약: 든든한 도우미
14.2 파이어베이스: 실시간 데이터 동기화 서비스
___14.2.1 파이어베이스 아키텍처
___14.2.2 롱 폴링
___14.2.3 HTTP 1.1 keep-alive와 파이프라인
___14.2.4 SslHandler 제어
___14.2.5 파이어베이스 요약
14.3 어번 에어십: 모바일 서비스 구축
___14.3.1 모바일 메시징의 기본
___14.3.2 타사 푸시 전달
___14.3.3 이진 프로토콜
___14.3.4 직접 장치 전송
___14.3.5 네티의 탁월한 동시 연결 지원 능력
___14.3.6 요약: 방화벽의 경계를 넘어
14.4 요약

▣ 15장: 사례 연구 2부

15.1 페이스북에서의 네티: 니프티와 스위프트
___15.1.1 스리프트란?
___15.1.2 네티를 이용한 자바 스리프트의 상태 개선
___15.1.3 니프티 서버 설계
___15.1.4 니프티 비동기 클라이언트 설계
___15.1.5 스위프트: 자바 스리프트 서비스를 구축하는 더 빠른 방법
___15.1.6 결과
___15.1.7 페이스북 요약
15.2 트위터에서의 네티: 피네이글
___15.2.1 트위터의 성장통
___15.2.2 피네이글의 탄생
___15.2.3 피네이글의 작동 방식
___15.2.4 피네이글의 추상화
___15.2.5 오류 관리
___15.2.6 서비스 구성
___15.2.7 미래: 네티
___15.2.8 트위터 요약
15.3 요약

[부록] 메이븐 소개

A.1 메이븐이란?
___A.1.1 메이븐 설치와 구성
___A.1.2 메이븐의 기본 개념
A.2 POM 예제
___A.2.1 프로젝트 POM
___A.2.2 POM 상속과 집계
A.3 메이븐 명령줄
A.4 요약

도서소개

웹 애플리케이션 서버를 이용하면 HTTP나 RPC 서버를 제작하는 방법을 배울 필요가 없는 날이 온다고 생각하던 때가 있었다. 아쉽게도 이런 희망은 오래 지속되지 않았다. 우리가 다뤄야 하는 기능 변경의 양과 속도가 날로 증가하면서 기존의 3계층 아키텍처로 감당할 수 없는 수준이 됨에 따라 이제는 애플리케이션을 여러 조각으로 나눠서 다수의 시스템으로 구성된 대규모 클러스터로 분산해야 하는 상황에 이르렀다.

이러한 대규모 분산 시스템을 운영하려면 운영 비용과 대기 시간이라는 두 가지 흥미로운 문제를 고려해야 한다. 단일 노드의 성능을 30% 또는 100% 이상으로 개선하면 얼마나 많은 시스템을 줄일 수 있을까? 단일 웹 브라우저에서 다수의 시스템을 통해 십여 개의 내부 원격 프로시저 호출을 트리거할 때 최적의 지연 시간을 달성하려면 어떻게 해야 할까?

네티의 핵심 기여자 중 한 명인 노먼 마우러는 네티 프로젝트에 대한 최초의 책 『네티 인 액션』에서 네티로 고성능 저대기 시간 네트워크 애플리케이션을 구축하는 방법으로 이러한 문제의 해결책을 제시한다.

이 책을 마칠 때쯤에는 간소한 HTTP 서버부터 고도의 세부 설정이 가능한 RPC 서버까지 거의 모든 네트워크 애플리케이션을 구축할 수 있게 될 것이다.

무엇보다 『네티 인 액션』의 놀라운 점은 이 책이 네티의 구석구석을 모두 아는 핵심 기여자가 집필했다는 것만이 아니라 트위터, 페이스북, 파이어베이스 등 네티를 실무 시스템에 활용하고 있는 여러 기업의 실제 사례 연구를 담고 있다는 점이다. 이러한 사례 연구를 통해 이들 기업에서 네티 기반 애플리케이션의 역량을 최대한으로 끌어올리는 데 사용한 방법을 이해할 수 있게 될 것이다.

2001년 필자의 학부 시절 개인 프로젝트로 세상에 선보인 네티 (http://t.motd.kr/ko/archives/1930)는 프로젝트(http://netty.io/community.html)에 참여하는 노먼과 같은 열정적인 기여자들의 값진 노력에 힘입어 지금 이 순간에도 활발한 생명력을 보여주고 있다. 이 책이 '네트워크 프로그래밍의 미래를 향한' 길에 동참하도록 많은 독자에게 동기를 부여하고 프로젝트의 새로운 측면에 활기를 불어넣기를 기대한다.
- 이희승
네티 창시자

교환 및 환불안내

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