자바 네트워크 소녀 Netty - 정경석 지음
자바 네트워크 소녀 Netty

저자 : 정경석

발행일 : 2015년 10월 05일 출간

분류 : 컴퓨터/IT > 네트워크 > 네트워크일반 > 네트워크일반 KDC : 총류(000)

정가 : 25,000원

출판사
출판사연락처
출판사 주소
쪽수
348
ISBN
9788968482243
크기
183 * 235 * 14 mm / 634 g

도서분류

컴퓨터/IT > 네트워크 > 네트워크일반 > 네트워크일반
컴퓨터/IT > 프로그래밍/언어 > Java
컴퓨터/IT > 대학교재
대학교재 > 컴퓨터

도서소개

자바 네트워크 프로그래밍의 최고의 선택 Netty! 이 책은 안정성과 성능을 세계적으로 인정받아 카카오톡, 애플, 트위터, 페이스북, 네이버 라인 등에서 사용하는 자바 네트워크 프레임워크 네티를 네트워크 초보자 눈높이에 맞춰 설명한다. 아울러중고급 개발자에게 필요한 네티에 대한 깊은 설명은 물론이고 네티 API로 서버를 만드는 고급 과정까지 다룬다. 오랫동안 네티를 현업에서 사용한 저자는 네티로 네트워크 프로그래밍을 하려는 독자의 가려운 곳을 잘 알고 긁어준다. 네트워크 개발자에게 도움이 되는 더 좋은 책을 만들고자 네티를 창시한 이희승이 감수하고, 레디스 컨트리뷰터인 강대명 외 4명이 베타 리더로 참가했다.

추천사

이희승 (네티 창시자) 네티 프로젝트를 처음 릴리즈하고 발표한 지도 10여 년이 지났다. 처음 프로젝트를 시작했을 때에 이렇게 큰 성공을 거두리라고 기대하지 못했던 것이 사실이다. 그럼에도 그간 많은 공헌자의 도움으로 셀 수 없이 많은 크고 작은 변화를 거쳐 오늘날 대표적인 자바 가상 머신 기반의 네트워크 I/O 프레임워크로 자리 잡게 된 것은 참 놀라운 일이 아닐 수 없다. 폭발적이지는 않지만 꾸준히 성장을 거듭해 온 네티는 지금 이 순간도 많은 변화를 겪고 있다. HTTP/2와 같은 새로운 프로토콜이 등장하거나 DNS와 같은 오래된 프로토콜이 거대한 규모에서 쓰이게 되거나 하면서 그에 맞게 진화를 거듭하는 것이다. 하지만 항상 부족한 인원으로 이러한 변화를 계속해서 따라가다 보면 의외로 미흡한 부분이 곳곳에 남아있게 되는데, 문서화가 가장 대표적이라고 할 수 있다. 그런 면에서, 이제껏 네티를 접해본 적 없는 독자들도 실무에 적용하면서 최대한 쉽게 네티를 배울 수 있게 작성된 이 책이 단 한 사람의 열정과 노력으로 탄생했다는 사실에 나는 놀랄 수밖에 없었다. 이 책이 네티를 현업에 적용하는 데 도움이 되고, 네트워크 및 비동기 프로그래밍의 재미와 심오함을 일깨우는 계기가 되기를 기원해본다. 강대명 (카카오 스토리 백엔드 개발자) 네티는 전 세계 수 많은 개발자들이 사용하고 있는 자바 네트워크 프레임워크 입니다. 그러나 네티의 사용처와 명성에 비해서 네티를 설명하는 책은 전세계를 뒤져도 손에 꼽을 정도로 적으며 심지어 한국어로 된 책은 없었습니다. 네티의 기본적인 사용법은 별로 어렵지 않지만 그 내부를 제대로 이해하기는 어려운 편입니다. 그래서 자바 네트워크 소녀 네티는 네티의 내부구조에 대해서 먼저 설명한 다음 세부적인 사용방법을 다루고 있습니다. 처음 네티를 접하시는 분은 네티의 이벤트 모델과 바이트 버퍼를 꼭 정독하시면 좋을듯 합니다. 특히 네티의 아버지인 이희승씨께서 직접 감수를 해주셔서, 더욱 정확한 내용을 담고 있습니다. 네티를 배우고자 하시는 분에게는 최고의 선택이 될듯 합니다. 유재성 ((주)퓨전데이타 차장) 네티에 몇 번 도전했다 실패한 아픈 경험이 있어서 그런지 한국어 서적에 대한 갈망이 무척이나 컸다. 이런 와중에 집필 소식을 들으니 반갑기 그지없다. 이 책은 네티를 사용하여 네트워크 프로그래밍에 입문하시는 분들에게 알맞도록 쉽게 설명되어 있다. 인기 있는 IoT 분야를 비롯하여 자바를 이용한 네트워크 프로그래밍에 관심 있다면 반드시 구매해야 할 서적이 아닐까 싶다. 임지혜 (에어라이브 모바일 개발팀 대리) 설명, 그림, 예제 코드의 순서로 읽으면 네티 애플리케이션의 흐름이 자연스럽게 이해된다(꼼꼼한 설명은 덤이다). 이 책을 읽다 보면 응용 기술서적이 아니라 일반 공학서적을 읽는 듯한 착각이 들 정도로 다양한 분야의 설명이 포함되어 있어서 초급에서 중급으로 넘어가는 나 같은 개발자에게 많은 도움이 된다. 네트워크와 네티 기본기가 필요하다면 꼭 읽어야 하는 책이다. 김세욱 (알 스퀘어 CTO) 우선 한국어판 네티 서적이라 무척이나 반갑다. 이 책은 네트워크 프로그래밍에 필요한 기본 개념과 네티를 사용한 풍부한 예제들을 통해 쉽고 빠르게 네트워크 프로그래밍을 배우려는 사람들에게 길잡이 역할을 해준다. 이미 네트워크 프로그래밍에 친숙한 개발자라면 네티를 통해 자바 디자인 패턴에 대한 이해를 높일 수 있을 것이다. 더 적은 고민으로 더 좋은 제품을 고민하는 자바 네트워크 개발자라면 반드시 읽어봐야할 책이 아닐까싶다. 임기택 (프리랜서 프로그래머) 네트워크 프로그래밍에 필요한 기본개념들과 네티의 흐름을 알기 쉽게 설명하고 있어 초보자도 서버 프로그래밍에 대해 부담없이 접근할 수 있다. 네티의 주요 기능에 대해 순차적 처리 로직을 상세히 설명하고 있으며, 특히나 보안 채널 적용 방법은 실제 아키텍쳐 구성에 도움이 되는 유용한 내용이다. 또한 API 서버를 구현하는 방법을 알려주는 9장을 통해 실제 사용 가능한 수준의 네티 서버를 손쉽게 구현해볼 수 있다.

상세이미지


저자소개

저자 정경석 저자 정경석은 1999년 말부터 웹 서비스를 개발했다. 인터넷 뱅킹 및 모네타 카드 웹, 한국은행 대량이체 시스템, 모네타 교통칩 카드 발급 시스템, 나라사랑카드 선불 과금 시스템, 씨티은행 모바일 뱅킹 시스템, S Suggest, 삼성 앱스 등의 개발에 참여했다. 백엔드 플랫폼 개발자로서 하루 수천만에서 수억 건에 이르는 요청을 처리하는 다양한 대용량 서비스를 구축 및 운영해왔으며 2015년 현재 AireLive의 메시징 서비스와 검색 서비스를 개발하고 운영 중이다. 저서_ 『이것이 레디스다』 실전 레디스 그림 김경환 감수 이희승 감수자 이희승은 일명 네티의 아버지. 자바 가상 머신 기반의 대표적 네트워크 애플리케이션 프레임워크인 네티 프로젝트와 아파치 미나 프로젝트를 창시한 소프트웨어 엔지니어다. 연세대학교 1학년에 재학 중이던 1999년 말, (주)아레오 커뮤니케이션즈(현 (주)스탠다드 네트웍스)에서 자바 프로그래밍 언어를 이용한 5개 이동통신사와의 단문 메시지 전송을 국내 최초로 상용화한 이래, 분산화된 대용량 단문 메시지 전송 게이트웨이, RPC 서버와 같은 고성능 네트워크 애플리케이션을 꾸준히 개발해왔다. 아레오 커뮤니케이션즈, 첫눈, NHN, 레드햇, 트위터를 거쳐 현재는 라인플러스에서 근무하며 곧 공개될 비동기 RPC 라이브러리와 분산 서비스 설정/상태 저장소를 팀원들과 함께 개발하고 있다. 일상과 업무, 가족과 나 사이에 끝없이 번뇌하며 가족의 소중함을 절감하는 한 사람의 인간이다.

목차

1부 네티 소개 1장 네티 맛보기 __1.1 네티 준비 __1.2 네티 개발 환경 설정 __1.3 Discard 서버 __1.4 에코 서버 __1.5 마치며 2장 네티의 주요 특징 __2.1 동기와 비동기 __2.2 블로킹과 논블로킹 __2.3 이벤트 기반 프로그래밍 __2.4 마치며 __2부 네티 기본 2부 네티 상세 3장 부트스트랩 __3.1 부트스트랩의 정의 __3.2 부트스트랩의 구조 __3.3 ServerBootstrap __3.4 마치며 4장 채널 파이프라인과 코덱 __4.1 이벤트 실행 __4.2 채널 파이프라인 __4.3 이벤트 핸들러 __4.4 코덱의 구조 __4.5 기본 제공 코덱 __4.6 사용자 정의 코덱 __4.7 마치며 5장 이벤트 모델 __5.1 이벤트 루프 __5.2 네티의 이벤트 루프 __5.3 네티의 비동기 I/O 처리 __5.4 마치며 6장 바이트 버퍼 __6.1 자바 NIO 바이트 버퍼 __6.2 네티 바이트 버퍼 __6.3 마치며 3부 네티 응용 7장 네티와 채널 보안 __7.1 보안 대상과 범위 __7.2 네트워크 데이터 캡쳐 __7.3 네트워크 보안 __7.4 SSL 인증서 __7.5 네티에 채널 보안 적용하기 __7.6 마치며 8장 네티와 서드파티 연동 __8.1 메이븐 __8.2 스프링 __8.3 JUnit __8.4 마치며 9장 실전 예제 네티로 구현한 API 서버 __9.1 API 서버 요구사항 __9.2 API 서버를 위한 데이터 설계 __9.3 API 서버 __9.4 API 통합 테스트 __9.5 API 서버 보안과 다중 서비스 포트 설정 __9.6 마치며

서평

출판사 서평/리뷰 ★ 이 책의 대상층 이 책의 독자들에 대한 몇 가지 가정을 했다. 첫째, 이미 자바에 대한 기본 지식이 있다고 가정했다. 물론 조슈아 블로흐의 『이펙티브 자바』나 더그 리의 『자바 병렬 프로그래밍』과 같은 책을 읽었다고 가정하는 것은 아니다. 단지 자바 기본서에서 다루는 문법과 주요 클래스의 사용법 정도만 알고 있으면 된다. 따라서 꼭 필요하지 않으면 자바 자체에 대해 설명하지 않는다. 둘째, 네트워크 프로그램을 처음 배운다고 가정했다. 이런 이유로 책의 네트워크 프로그램을 작성할 때 알아야 하는 필수 필수 지식을 담고자 지면을 할애했다. 이미 아는 부분이라면 해당 설명을 건너뛰어 읽어도 무방하다. ★ 이 책의 개발 환경 이 책의 예제는 윈도우와 이클립스 개발 환경을 기반으로 개발하고 테스트했다. 리눅스 환경은 가상 머신에 설치하여 사용했다. 이 책에서 사용하는 프로그램은 다음과 같다. - 이클립스 - Eclipse Luna SR2(4.4.2) - 네티 - 4.0.31.Final - 운영체제 - CentOS 6 (2.6.32-504.16.2.el6.x86_64) - Maven - 3.2.5 - Java - JDK 1.8.0_05 ★ 이 책의 구성 이 책은 크게 세 부분으로 나뉜다. 1~2장에서는 네티 소스 코드에 수록된 예제 애플리케이션을 살펴보고 네티의 특징을 일반적인 네트워크 애플리케이션과 비교하여 살펴본다. 이 같은 접근 방법은 초보 자바 개발자도 네티를 사용하여 네트워크 애플리케이션을 작성할 수 있다는 자신감을 심어주며 할 수 있다는 흥미를 제공한다. 3~6장은 네티가 제공하는 다양한 기능과 특징을 다룬다. 7~9장은 네티를 실무에서 사용할 때 있을 법한 시나리오를 가정하여 애플리케이션을 작성하는 예제를 다룬다. 책의 도입부인 1~2장에서는 네티의 기본 예제인 Discard 서버 예제를 독자가 이해하기 쉽도록 간단하게 수정하여 살펴보고 클라이언트 애플리케이션이 서버에 접속했을 때 처리해야 하는 부분을 설명한다. 다음으로 에코 서버 예제로 클라이언트 애플리케이션과 서버 애플리케이션이 서로 커뮤니케이션하는 방법을 확인하며 네티 사용법을 차근차근 살펴본다. 3~6장은 책의 본편으로써 네티의 주요 기능인 부스스트랩과 채널 파이프라인, 이벤트 모델, 바이트 버퍼 등의 구조와 특징을 다룬다. 각 컴포넌트를 다룰 때는 구조를 먼저 설명한 뒤 그림을 사용하여 한 번 더 살펴보고 나서 예제를 사용하여 최종 사용법을 익힌다. 마지막으로 7~9장은 네티를 응용하여 애플리케이션을 작성하는 방법을 설명한다. 특히 9장에서는 네티로 API 서버를 만든다. 이를 통해 다양한 서드파티 프레임워크와 네티가 어떻게 상호작용하는지 살펴본다. 9장에서 작성한 애플리케이션은 실무에서 사용 가능한 수준의 설계를 포함한다. -1장 네티 맛보기 네티를 처음 접하는 개발자에게 간단한 네티 애플리케이션을 작성하고 테스트하는 방법을 설명한다. 서버 네트워크 애플리케이션과 클라이언트 애플리케이션을 순서대로 작성하는 방법을 알아본다. 또한 매우 적은 양의 코드로 작성된 네티 애플리케이션이 얼마나 높은 성능을 제공하는지 알아본다. -2장 네티의 주요 특징 네트워크 애플리케이션이 제공하는 기본 특성을 설명하고 네티가 어떻게 이런 특징을 제공하는지 살펴본다. -3장 부트스트랩 네티로 작성하는 네트워크 애플리케이션에서 가장 기본적으로 설정해야 하는 부트스트랩 컴포넌트에 대한 설명과 예제를 제공한다. 부트스트랩은 서버 부트스트랩과 클라이언트 애플리케이션을 위한 부트스트랩으로 나뉘는데 각 부트스트랩이 제공하는 특징과 구조를 살펴본다. -4장 채널 파이프라인과 코덱 채널 파이프라인과 코덱은 일반적인 소켓 애플리케이션에서 작성해야 하는 업무 로직을 추상화한 계층이다. 채널 파이프라인이 동작하는 방식과 체널 파이프라인에 등록되는 코덱의 관계를 먼저 살펴보고 코덱이 동작하는 방식을 살펴본다. -5장 이벤트 모델 네티가 제공하는 이벤트 모델이 어떤 장점을 제공하는지 살펴보고 각 이벤트 모델 간의 전환 방법을 살펴본다. 특히 이벤트 모델을 제공하기 위한 이벤트 루프에 대해서 자세히 다룬다. -6장 바이트 버퍼 네티의 바이트 버퍼는 자바의 그것보다 더 쉬운 사용법과 빠른 성능을 제공한다. 어떤 이유로 네티의 바이트 버퍼가 더 쉽게 사용 가능한지 자바의 바이트 버퍼와 비교하여 살펴본다. 또한 네티가 제공하는 바이트 버퍼 풀에 관한 내용도 포함한다. -7장 네티와 채널 보안 네트워크 애플리케이션에서 구현 부분을 제외하면 가장 중요한 부분인 보안에 대해서 살펴본다. 네티가 제공하는 보안 채널에 관한 내용과 오픈 SSL을 사용하여 인증서를 생성하는 방법을 알아본다. 암호화와 관련된 알고리즘에 대한 설명도 포함한다. -8장 네티와 서드파티 연동 대부분의 프레임워크는 독립적으로 사용할 때보다 다른 프레임워크와 함께 사용할 때 더 좋은 편의성을 제공한다. 특히 자바 애플리케이션을 개발하는 개발자라면 필수로 사용하는 스프링과 JUnit 등의 프레임워크와 연동하는 방법을 살펴보고 네티 애플리케이션을 프로젝트 생명주기 관리 도구인 메이븐과 통합하는 방법을 살펴본다. -9장 실전 예제 네티로 구현한 API 서버 책의 앞부분에서 학습한 내용을 기반으로 실무에서 사용 가능한 수준의 API 서버를 작성한다. API 서버의 작성은 서버 애플리케이션 설계에 관한 내용을 포함한다.
목록
장바구니 담기