3. 이 책의 목표
▸ “네트워크 프로그램을 처음 만드는 초보 개발자와 체계적으로 지식을
습득하려는 기존 개발자가 네티로 손쉽게 그리고 완성도 있게 네트워
크 프로그램을 만들 수 있었으면 좋겠다.” (지은이의 말 中)
▸ “이 책을 접하는 독자가 결과뿐만 아니라 튼튼한 내공에 열을 올리는
이 책의 컨셉에 동의해 주기를 희망 …” (역시 지은이의 말 中)
네티로 네트워크 프로그램 잘 짜기
기본개념 잘 닦기
4. 책의 구성
▸ 1부 네티 소개
▸ 1-2장은 네티의 공식예제와 함께 네티와 일반적인 네트워크 애플리
케이션을 비교하며 특징을 살펴보기
▸ 2부 네티 상세
▸ 네티 핵심(부트스트랩, 채널 파이프라인, 코덱, 이벤트 모델, 바이트
버퍼)을 자세히 들여다 보기
▸ 3부 네티 응용
▸ 오픈 SSL, 메이븐, Junit, Spring, Redis까지 넣어서 응용해보기!
‘자바 네트워크 소녀 NETTY’ 12-13P를 참조
5. 1장 네티 맛보기
▸ 네트워크 프로그램의 Hello World격인 대표적 예제: Discard 서버 와
Echo서버를 구현해 본다.
▸ 간단한 예제로 네티의 맛을 살짝 보게 해준다.
▸ 예제 소스
▸ https://github.com/krisjey/netty.book.kor/tree/master/
example/src/java/com/github/nettybook/ch1
▸ 책에서 소개하는 웹프레임워크 성능 평가 자료
▸ https://goo.gl/v8UVyC
6. 2장 네티의 주요 특징 (1)
▸ 이 장의 키워드
▸ 동기와 비동기
▸ 블로킹과 논블로킹 소켓
▸ 이벤트 기반 프로그래밍
▸ 위 키워드에 대해 자세히 알고 있다면 패스해도 OK!
▸ 조금이라도 불안하다면 2장에서 기본기를 튼튼히 하고 넘어가자
8. 그저 특정 프레임워크의 API를 배우는 수준이라면 배
움의 효용가치가 낮지만 이 책의 3-6장은 고급 자바
개념과 설계, 운영 지식등을 얻어갈 수 있는 내용들
이 곳곳에 포진해 있음
2부를 열기 전에…
9. 3장 부트스트랩 (1)
▸ 부트스트랩은 네티 기반 애플리케이션의 가장 기본
▸ 네티로 작성한 네트워크 애플리케이션의 동작 방식과 환경을 설정하는
도우미 클래스
▸ 부트스트랩 클래스는 Builder 패턴을 활용하여 메서드 체이닝 방식으
로 작성
10. 3장 부트스트랩 (2)
▸ 소켓 입출력 모드를 설정시 다양한 모드를 지원
▸ 일반적인 소켓, Local, Epoll, SCTP, UDT …
▸ SCTP랑 UDT는 무슨 프로토콜?
▸ “SCTP는 TCP의 연결지향 및 전송보장 특성과 UDP의 메시지 지
향 특성을 모두 갖추고 있다…” 하면서 SCTP, UDT도 Note에서
설명
▸ 주요 소켓 옵션에 대한 설명도 놓치지 않고 있다.
다시 한번 확인하자: 기본개념 잘 닦기
11. 4장 채널 파이프라인과 코덱
▸ 네티의 이벤트 실행 방식과 채널, 이벤트, 채널 파이프라인의 관계에 대
한 설명
▸ 이 장을 읽으면서 소켓기반의 네트워크 통신의 과정을 어떻게 모델링
하여 프레임워크를 만들었는지 디자인 패턴에 대한 노하우까지 엿 볼
수 있었음
▸ 원리가 궁금하면 책에서…
12. 5장 이벤트 모델
▸ 네티의 핵심 내부 구조 “이벤트 루프”와 함께 네티의 이벤트의 발생 및
실행 순서에 대한 내용을 다룸
▸ 멀티스레드 관련된 코멘트들도 유익
▸ 더 자세한 노하우는 5장을 읽어보자!
‘자바 네트워크 소녀 NETTY’ 140P를 참조
“종종 다중 스레드의 장점을 얻기 위해서 스레드 개수를
너무 많이 설정하거나 스레드 개수를 제한하지 않는 실수를 한다.”
“다중 스레드 아키텍처는 자원의 효율적 사용이라는 장점도 있지만
컨텍스트 스위칭 비용과 스레드 경합이라는 단점도 존재한다”
13. 6장 바이트 버퍼
▸ 네티는 자바가 제공하는 바이트 버퍼 대신 자체 바이트 버퍼를 사용
▸ 네티의 바이트 버퍼만 설명하지 않고 자바 NIO의 바이트 버퍼도 다룸
▸ 서점에 가서 책 175-176p를 꼭 읽어보시라!
네티의 바이트 버퍼는
버퍼 풀을 활용한 버퍼의 재사용을 통하여
성능 향상의 도움!
“네티가 제공하는 바이트 버퍼의 구조와 동작 방식을 정확하게 이해하는 것이
높은 성능을 내는 네티 네트워크 애플리케이션을 개발하는 시작점이다.”
‘자바 네트워크 소녀 NETTY’ 181P를 참조
14. 3부 네티 응용
▸ 3부는 이 책의 보너스와 같은 알짜 지식이 이어짐: 키워드만 나열해 보면…
▸ 7장 “네티와 채널 보안”에서 다루는 내용
▸ http 데이터 캡쳐, 피들러 사용, 와이어 샤크, 대칭/비대칭 암호화 방식, SSL/TLS,
SSL 인증서와 OpenSSL
▸ 8장 “네티와 서드파티 연동”에서 다루는 내용
▸ 메이븐, 스프링 컨텍스트, Junit (EmbeddedChannel 하나면 네티 애플리케이션
테스트 가능)
▸ 9장 네티로 구현한 API 서버
▸ RESTful API 설계 원칙, HSQLDB, Redis, postman
15. 9장 [실전 응용] 네티로 구현한 API 서버
▸ 네티를 어떻게 활용할 수 있는지 확인할 수 있는 예제
▸ 사용자 인증처리를 위한 REST API서버 구현을 네티로 어떻게 하는지
볼 수 있다.
▸ 소스 실행 시 유의사항
pom.xml에서 mainClass
위치를 바꿔 주어야 함
16. 마무리: 이 책의 장점
▸ 두께는 얇지만 네트워크 프로그램에 필요한 설명을 상세히 다룬다!
▸ 실습 과정의 생략이 없다. 실습 과정 중 잘못 따라할 수 있는 부분까지
감안해서 설명한다.
▸ 소스 다운 받아 바로 실행 가능한 응용예제에서 다양한 도구 및 기술을
활용하고 있어 하나라도 건질 수 있는 지식이 늘어난다.
▸ Wireshark, 피들러, 메이븐, 스프링, OpenSSL, Redis, Junit
17. ▸ 제목: 자바 네트워크 소녀 네티
▸ 책 URL: http://www.hanbit.co.kr/book/look.html?
isbn=978-89-6848-224-3
▸ 저자: 정경석
책 정보