아는 분들은 알겠지만, 네티는 이희승씨가 주도적으로 만든 네트워크 프레임워크 이다.
시간이 꽤 많이 흘렀고, 네티도 현재 버전 5에 이르고 있다. 책에서는 안정화 버전인 4.0.31 을 기반으로 하고 있으니 참고하도록 하자.
책의 구성
1~2장 : 네티를 소개하고, 네티를 사용한 간단한 애플리케이션의 작성과 실습을 통해 이해를 돕는다.
3~6 장 : 네티를 이루는 주요 기능에 대해 다룬다. 네트워크 애플리케이션 설정을 담당하는 부트스트랩, 업무 로직을 추상화한 계층인 채널 파이프라인과 코덱, 이벤트 기반 처리를 위한 이벤트 모델과 이벤트 루프, 그리고 자바의 NIO 를 대체하는 네티의 바이트 버퍼가 이에 해당한다. 네티의 전반적인 동작을 알기 위해서는 반드시 익히고 넘어가야 하는 부분이다
7~9 장 : 네티를 응용하여 애플리케이션을 작성하는 방법을 다룬다. 네트워크 상에 데이터를 노출시키지 않기 위한 채널 보안과 메이븐, 스프링, JUnit 등 과의 연동방법, 그리고 지금까지 다룬 내용을 종합해 REST API 서버를 작성한다.
네 티 프레임웍이 자바로 이루어진 만큼, 실습을 해보거나 책의 내용을 이해하기 위해선 자바에 대한 경험이나 이해는 필수이다. 이 부분은 책에서 다루는 범위가 아니므로 참고하도록 하자. 다만, 저자는 네트워크 프로그래밍과 관련된 부분에 대해서는 충분한 지면을 할애해서 설명하고 있다. 그런 덕분에 이론적인 부분이 부족하거나, 관련된 내용을 정리하고 싶은 독자들에겐 유용할 것 같다.
주요 내용
네티와 관련된 핵심적인 내용은 책의 3~6장에 있다. 그러므로, 네티의 내부 동작이나 사용 방법을 잘 숙지하기 위해서는 해당 챕터를 시간을 들여 이해할 필요가 있다.
다행히, 부트스트랩, 채널 파이프라인, 코덱, 이벤트 모델, 바이트 버퍼 등 주요 내용에 대해서 적절한 기술적인 내용과 함께 사용법을 친절하게 설명하고 있어서 천천히 따라가다 보면 네티가 어렵게만은 다가오지 않는다.
각 챕터에서 사용되는 소스에 대해서는 꼭 필요한 부분만 설명하고 있다. 이는 소스가 길어질 경우 집중도가 떨어지는 것을 고려한 것이라는 설명이 있었는데 공감하는 부분이었다. 전체 소스를 보고 싶을 경우엔 github 에 공개된 소스를 내려받아 확인해야 한다.
6장 까지의 내용이 네티를 이해하기 위한 부분이었다면, 7, 8장은 9장의 최종 실습을 위한 챕터이다.
7장에서는 보안에 대한 간력한 설명과 한께, 네트워크 상의 보안과 데이터 캡춰에 대한 실습을 다룬다. 이를 통해 보안의 필요성에 대해 이해를 돕고, SSL 인증서의 설치 및 네티와의 연동을 통한 활용법을 다룬다.
8장은 자바 기반의 환경에서 자주 사용하게 되는 주요 서드파티와의 연동을 다룬다.
9장은 지금까지 학습한 내용의 총 집합이다. 설명이 자세히 되어있기 때문에 지금까지의 내용을 이해했다면 큰 무리가 없을 내용을 담고 있다.
총평
네 티는 한국인이 주도적으로 만들어 전 세계에서 쓰이는 오픈소스 임에도 불구하고 한글로 된 자료는 많지 않았다. 이런 환경에서 네티 창시자인 이희승 씨가 직접 감수한 책이 출판되었다는 것 자체만으로도 가지는 의미가 상당하다고 생각한다.
책의 내용도 상당히 좋아서, 이론적인 부분이나 실습적인 부분 모두 만족할 수 있는 구성이었다.
별다른 단점을 찾을 수 없던, 읽는 내내 즐거웠던 책의 서평을 마무리하며, 네티의 성능 지표 한장을 올리며 마무리 해본다.
관련 링크
책 소스 github : https://github.com/krisjey/netty.book.kor
네티 커뮤니티 : https://groups.google.com/forum/#!forum/netty-ko
네티 홈 : http://netty.io/
네티 문서 : http://netty.io/wiki/