Top

자바 네트워크 소녀 Netty

회사에서 엔진을 새로 만드는 업무를 맡게 되었다.
기존에 엔진을 만들때는 네트워크단의 프레임워크로 MINA를 사용했었다.
MINA는 JAVA 개발자들 사이에서 유명한 이희승씨가 만든 프레임워크로서 안정적인 성능과 우수한 성능을 보여줬었다.
그런데 이희승씨가 새롭게 MINA를 더욱 개선한 Netty라는 프레임워크를 만들었다고 하니 안써 볼 수가 없지 않은가?
그래서 Netty에 대한 정보를 인터넷에서 찾아서 학습을 시작했다.
하지만 MINA떄에도 그랬지만 이희승씨는 모든 자료를 영어로 만든다 ㅎㅎ
그리고 나는 영어를 잘 못한다.
그래서 언어의 장벽에 부팆힌 나는 당연하게 이 책을 구매 할 수 밖에 없었다.

 

1. Netty란?


 

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

 

Netty는 앞서 말한 것 처럼 네트워크 프레임워크로, 네트워킹 기능이 필요한 어플리케이션을 만들 때 신경써야할 많은 기능들이 이미 구현되어있는
엄청 멋진 프레임워크다.

위 그림에서 보는 것 처럼 이벤트 루프는 항상 싱글 스레드로 실행되며
이벤트드리븐 형태로 동작하기 때문에 데이터가 수신된 순간 “파이프라인>콘텍스트>핸들러” 순서로 데이터가 흘러가게된다.
자세한 사항은 아래 잘 정리된 PPT를 참고바란다.
Netty 4.x에 대한 김대성님의 PPT

 

2. 책구성


책은 “1장. 네티 소개”에서 엄청 짧은 소스코드로 완성된 Netty 서버를 예제로 제시하며, 복잡한 네트워킹 프로그래밍이 Netty를 사용하면 이렇게 짧아진다는 것을 자랑하며 시작한다.
이후 “2장. 네티의 주요 특징”에서 Netty의 주요 특징에 해당하는 비동기, 논블로킹, 이벤트 기반 프로그래밍에서 소개하며 Netty의 철학(?)에 대한 사전 지식을 알려주며
1장에서 만든 소스 코드를 이용해 기능을 추가해가면서 쉽게 Netty의 특징을 이해할 수 있게 한다.

그 후 2부에서는 Netty으 핵심 기반 요소인 부트스트랩, 파이프라인과 코덱, 이벤트 모델, 바이트 버퍼에 대해 마찬가지로 간단한 Netty소스를 예제로 사용하여 설명한다.

3부에서는 Netty의 심화 기능에 대해서 설명하고 있다.

 

3. 책 후기


여타의 기술서적과 다르게 귀여운 여자그림이 그려져있고, 심지어 이 여자아이(Netty)의 브로마이드까지 제공하는 “자바 네트워크 소녀 Netty”는 겉보기와는 다르게 내실이 튼튼한 책이라는 생각이든다.

(나는 왜 포스터 안줘~!! 하며 슬퍼했었는데 알고 보니까 초판만 한정으로 포스터를 주는 거였다. ㅠ.ㅠ)
기초 부터 시작해서 하나씩 기능을 추가해가며 설명해주기 때문에 두꺼운 전화번호부(레퍼런스) 책 처럼 지루하지 않게 흥미롭게 책을 읽을 수 있으며
각 개념이나 설명에 대해서도 알기 쉽게 설명해 놓아서 이해하기가 아주 쉬웠다.
네트워크 프로그램을 처음 접하는 사람들도 입문서로 충분할 것 같다는 생각이들며, Netty에 대해 관심이 많은 사람들도 이책으로 기본적인 개념과 맥락을 이해하고 나면
이 후 레퍼런스에 해당하는 내용들은 인터넷을 통해서 정보를 찾아봐도, 책을 읽어보기 전과는 다르게, 아하 이게 이런거를 설명하고 있구나 하고
눈을 뜨게 해 줄 수 있는 책이라고 생각하여 강력 추천하며, Netty와 같은 프레임워크를 개발할 수 있는 이희승님의 능력에 존경을 취한다.

kaze

Test

No Comments

Post a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.