한빛출판네트워크

IT/모바일

자바 네트워크 소녀 네티

한빛미디어

집필서

절판

자바 네트워크 소녀 네티
좋아요: 29
  • 저자 : 정경석
  • 출간일 : 2015-10-22
  • 페이지 : 348쪽
  • ISBN : 9788968482243
  • 물류코드 :2224

합계 : 22,500

  • 자바 네트워크 프로그래밍의 최고의 선택 Netty!

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

     

     

    이 책의 대상층
    이 책의 독자들에 대한 몇 가지 가정을 했다. 첫째, 이미 자바에 대한 기본 지식이 있다고 가정했다. 물론 조슈아 블로흐의 『이펙티브 자바』나 더그 리의 『자바 병렬 프로그래밍』과 같은 책을 읽었다고 가정하는 것은 아니다. 단지 자바 기본서에서 다루는 문법과 주요 클래스의 사용법 정도만 알고 있으면 된다. 따라서 꼭 필요하지 않으면 자바 자체에 대해 설명하지 않는다. 둘째, 네트워크 프로그램을 처음 배운다고 가정했다. 이런 이유로 책의 네트워크 프로그램을 작성할 때 알아야 하는 필수 필수 지식을 담고자 지면을 할애했다. 이미 아는 부분이라면 해당 설명을 건너뛰어 읽어도 무방하다.

     

     

    이 책의 개발 환경
    이 책의 예제는 윈도우와 이클립스 개발 환경을 기반으로 개발하고 테스트했다. 리눅스 환경은 가상 머신에 설치하여 사용했다. 이 책에서 사용하는 프로그램은 다음과 같다.

    • 이클립스 - 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 서버의 작성은 서버 애플리케이션 설계에 관한 내용을 포함한다.

     

     

     

     

  • [저자] 정경석

    1999년 말부터 웹 서비스를 개발했다. 인터넷 뱅킹 및 모네타 카드 웹, 한국은행 대량이체 시스템, 모네타 교통칩 카드 발급 시스템, 나라사랑카드 선불 과금 시스템, 시티은행 모바일 뱅킹 시스템 등의 개발에 참여했다. 서버 사이드 백엔드 플랫폼 개발자로서 하루 수천만에서 수억 건에 이르는 요청을 처리하는 다양한 대용량 서비스를 구축 및 운영해왔다. 2013년 현재 삼성 스마트폰에 프리로드되는 앱의 백엔드 시스템을 개발 및 운영하고 있다. 삼성 앱스의 신규기능인 추천 서비스를 HBase를 사용하여 개발했다.

  • 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 마치며 

  •  

    • 아는 분들은 알겠지만, 네티는 이희승씨가 주도적으로 만든 네트워크 프레임워크 이다.





      시간이 꽤 많이 흘렀고, 네티도 현재 버전 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/

    • 이 책은 네트워크 프로그래밍 초보를 위한 것은 아니고 기본적인 네트워크 프로그래밍은 알지만 네티에 대해서 모르는 사람을 위한 책입니다. 그래서 네트워크 프로그래밍을 잘 모르는 사람에게는 좋지 않지만, 반대로 일반적인 네트워크 프로그래밍 지식은 있지만 네티에 대해서 한글로 된 자료가 없어서 공부하기 힘들었던 사람에게는 아주 좋은 책인 것 같습다.



      조금 아쉬운 것은 저처럼 바이너리 데이터를 실시간으로 통신하는 프로그램을 만드는 사람들을 위한 설명은 조금 부족한 것 같네요

    • 자바7 NIO.2: 파일&네트워크 프로그래밍

      앵겔 레너드

    • 이것이 자바다

      신용권

    • 이것이 레디스다 : 초고속 읽기 쓰기를 제공하는 인메모리 기반 NoSQL, Redis

      정경석

닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?