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

More Related Content

What's hot

Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the RESTRoy Clarkson
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTMasterCode.vn
 
Làm chủ các bước dựng cột kết cấu trong phần mềm revit
Làm chủ các bước dựng cột kết cấu trong phần mềm revitLàm chủ các bước dựng cột kết cấu trong phần mềm revit
Làm chủ các bước dựng cột kết cấu trong phần mềm revitKiến Trúc KISATO
 
[Revit] Biện pháp thi công về Cầu đường
[Revit] Biện pháp thi công về Cầu đường[Revit] Biện pháp thi công về Cầu đường
[Revit] Biện pháp thi công về Cầu đườngHuytraining
 
IC3 GS4: Phần Cứng Máy Tính
IC3 GS4: Phần Cứng Máy TínhIC3 GS4: Phần Cứng Máy Tính
IC3 GS4: Phần Cứng Máy TínhDũng Nguyễn Văn
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Steven Smith
 
Làm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm Revit
Làm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm RevitLàm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm Revit
Làm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm RevitKiến Trúc KISATO
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
 
Các Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công Móng
Các Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công MóngCác Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công Móng
Các Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công MóngKiến Trúc KISATO
 
Alpha BIM Plugin Guideline | Revit API, Revit Tools
Alpha BIM Plugin Guideline | Revit API, Revit ToolsAlpha BIM Plugin Guideline | Revit API, Revit Tools
Alpha BIM Plugin Guideline | Revit API, Revit ToolsDangLeQuan1
 
Spring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSpring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSistek Yazılım
 
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)Suryo Atmojo
 
Pp tinh betong_ust
Pp tinh betong_ustPp tinh betong_ust
Pp tinh betong_ustvudat11111
 
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire baseđồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire basejackjohn45
 
Bao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinhBao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinhNgok Ánk
 
How to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkHow to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkRapidValue
 
tường lửa full.doc
tường lửa full.doctường lửa full.doc
tường lửa full.docPhcNguynHu22
 
Hướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000L
Hướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000LHướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000L
Hướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000LFitech.,JSC
 

What's hot (20)

Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the REST
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
 
Làm chủ các bước dựng cột kết cấu trong phần mềm revit
Làm chủ các bước dựng cột kết cấu trong phần mềm revitLàm chủ các bước dựng cột kết cấu trong phần mềm revit
Làm chủ các bước dựng cột kết cấu trong phần mềm revit
 
[Revit] Biện pháp thi công về Cầu đường
[Revit] Biện pháp thi công về Cầu đường[Revit] Biện pháp thi công về Cầu đường
[Revit] Biện pháp thi công về Cầu đường
 
IC3 GS4: Phần Cứng Máy Tính
IC3 GS4: Phần Cứng Máy TínhIC3 GS4: Phần Cứng Máy Tính
IC3 GS4: Phần Cứng Máy Tính
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0
 
Làm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm Revit
Làm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm RevitLàm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm Revit
Làm Chủ Các Nhóm Lệnh Cơ Bản Trong Phần Mềm Revit
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Các Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công Móng
Các Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công MóngCác Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công Móng
Các Loại Móng Và 9 Bí Mật Gia Chủ Không Biết Khi Thi Công Móng
 
Alpha BIM Plugin Guideline | Revit API, Revit Tools
Alpha BIM Plugin Guideline | Revit API, Revit ToolsAlpha BIM Plugin Guideline | Revit API, Revit Tools
Alpha BIM Plugin Guideline | Revit API, Revit Tools
 
Spring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSpring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimi
 
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
 
Pp tinh betong_ust
Pp tinh betong_ustPp tinh betong_ust
Pp tinh betong_ust
 
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire baseđồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
 
Bao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinhBao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinh
 
Đề tài: Thông tin địa lý để quản lý cơ sở hạ tầng tỉnh Lào Cai, HAY
Đề tài: Thông tin địa lý để quản lý cơ sở hạ tầng tỉnh Lào Cai, HAYĐề tài: Thông tin địa lý để quản lý cơ sở hạ tầng tỉnh Lào Cai, HAY
Đề tài: Thông tin địa lý để quản lý cơ sở hạ tầng tỉnh Lào Cai, HAY
 
How to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkHow to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular Framework
 
tường lửa full.doc
tường lửa full.doctường lửa full.doc
tường lửa full.doc
 
Angular
AngularAngular
Angular
 
Hướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000L
Hướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000LHướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000L
Hướng dẫn sử dụng máy kiểm kho Cipherlab CPT8000L
 

Similar to 자바 네트워크 소녀 Netty 리뷰

(독서광) 만들면서 배우는 클린 아키텍처
(독서광) 만들면서 배우는 클린 아키텍처(독서광) 만들면서 배우는 클린 아키텍처
(독서광) 만들면서 배우는 클린 아키텍처Jay Park
 
컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷중선 곽
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLDKim Junghoon
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장Seongchan Kang
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)중선 곽
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...Taekyu Lim
 
CNN Architecture A to Z
CNN Architecture A to ZCNN Architecture A to Z
CNN Architecture A to ZLEE HOSEONG
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 KubernetesTommy Lee
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
 
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기Sungchul Park
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개Wonchang Song
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista Community
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차seung-hyun Park
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기ksdc2019
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규ChangKyu Song
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Kris Jeong
 

Similar to 자바 네트워크 소녀 Netty 리뷰 (20)

(독서광) 만들면서 배우는 클린 아키텍처
(독서광) 만들면서 배우는 클린 아키텍처(독서광) 만들면서 배우는 클린 아키텍처
(독서광) 만들면서 배우는 클린 아키텍처
 
컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
 
CNN Architecture A to Z
CNN Architecture A to ZCNN Architecture A to Z
CNN Architecture A to Z
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015
 

More from Woojin Joe

Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Woojin Joe
 
The Power Of Event Chapter 7
The Power Of Event Chapter 7The Power Of Event Chapter 7
The Power Of Event Chapter 7Woojin Joe
 
The Power Of Event Chapter 6
The Power Of Event Chapter 6The Power Of Event Chapter 6
The Power Of Event Chapter 6Woojin Joe
 
The Power Of Event Chapter 5
The Power Of Event Chapter 5The Power Of Event Chapter 5
The Power Of Event Chapter 5Woojin Joe
 
The Power Of Event Chapter 3
The Power Of Event Chapter 3The Power Of Event Chapter 3
The Power Of Event Chapter 3Woojin Joe
 
The Power Of Event Chapter 2
The Power Of Event  Chapter 2The Power Of Event  Chapter 2
The Power Of Event Chapter 2Woojin Joe
 
The Power Of Event Chapter 1
The Power Of Event Chapter 1The Power Of Event Chapter 1
The Power Of Event Chapter 1Woojin Joe
 
Fusion prj-proposal for 10 2 class
Fusion prj-proposal for 10 2 classFusion prj-proposal for 10 2 class
Fusion prj-proposal for 10 2 classWoojin Joe
 
Part 1 A Simple Introduction to Complex Event Processing
Part 1 A Simple Introduction to Complex Event ProcessingPart 1 A Simple Introduction to Complex Event Processing
Part 1 A Simple Introduction to Complex Event ProcessingWoojin Joe
 
신학과 사회에 대한 성경의 가르침
신학과 사회에 대한 성경의 가르침신학과 사회에 대한 성경의 가르침
신학과 사회에 대한 성경의 가르침Woojin Joe
 
ITBC Orientation
ITBC OrientationITBC Orientation
ITBC OrientationWoojin Joe
 
2010년 여름 신입부원 프로젝트 제안서(수정)
2010년 여름 신입부원 프로젝트 제안서(수정)2010년 여름 신입부원 프로젝트 제안서(수정)
2010년 여름 신입부원 프로젝트 제안서(수정)Woojin Joe
 

More from Woojin Joe (12)

Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
 
The Power Of Event Chapter 7
The Power Of Event Chapter 7The Power Of Event Chapter 7
The Power Of Event Chapter 7
 
The Power Of Event Chapter 6
The Power Of Event Chapter 6The Power Of Event Chapter 6
The Power Of Event Chapter 6
 
The Power Of Event Chapter 5
The Power Of Event Chapter 5The Power Of Event Chapter 5
The Power Of Event Chapter 5
 
The Power Of Event Chapter 3
The Power Of Event Chapter 3The Power Of Event Chapter 3
The Power Of Event Chapter 3
 
The Power Of Event Chapter 2
The Power Of Event  Chapter 2The Power Of Event  Chapter 2
The Power Of Event Chapter 2
 
The Power Of Event Chapter 1
The Power Of Event Chapter 1The Power Of Event Chapter 1
The Power Of Event Chapter 1
 
Fusion prj-proposal for 10 2 class
Fusion prj-proposal for 10 2 classFusion prj-proposal for 10 2 class
Fusion prj-proposal for 10 2 class
 
Part 1 A Simple Introduction to Complex Event Processing
Part 1 A Simple Introduction to Complex Event ProcessingPart 1 A Simple Introduction to Complex Event Processing
Part 1 A Simple Introduction to Complex Event Processing
 
신학과 사회에 대한 성경의 가르침
신학과 사회에 대한 성경의 가르침신학과 사회에 대한 성경의 가르침
신학과 사회에 대한 성경의 가르침
 
ITBC Orientation
ITBC OrientationITBC Orientation
ITBC Orientation
 
2010년 여름 신입부원 프로젝트 제안서(수정)
2010년 여름 신입부원 프로젝트 제안서(수정)2010년 여름 신입부원 프로젝트 제안서(수정)
2010년 여름 신입부원 프로젝트 제안서(수정)
 

자바 네트워크 소녀 Netty 리뷰

  • 2. HTTP://NETTY.IO/ HTTP://DESIGN.JBOSS.ORG/NETTY/LOGO/FINAL/NETTY_LOGO_600PX.PNG 먼저 NETTY는? ▸ 공식 사이트에 있는 설명을 번역하자면 … ▸ 유지보수가 용이한 고성능의 서버 & 클라이언트 프로토콜을 빠르게 개발할 수 있도록 돕는 비동기, 이벤트 기반의 네트워크 애플리케이션 프레임워크
  • 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장에서 기본기를 튼튼히 하고 넘어가자
  • 7. 2장 네티의 주요 특징 (2) ▸ 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 ▸ 저자: 정경석 책 정보