한빛출판네트워크

IT/모바일

자바 개발자를 위한 Vert.x 애플리케이션 개발

리얼타임 eBook

집필서

판매중

좋아요: 25
  • 저자 : 이연복
  • 출간일 : 2015-02-05
  • 페이지 : 252쪽
  • ISBN : 9788968487286

합계 : 12,600

  • 자바로 배우는 Vert.x 애플리케이션 개발 


    수많은 IoT 기기와 연결되고, 이들 기기가 보내오는 정보를 효과적으로 처리하기 위해서는 새로운 형태의 애플리케이션 개발 방법이 필요하다. 전통적으로 이런 요구 사항을 반영하는 애플리케이션은 다중 스레드 방식으로 개발되었다. 그러나 다중 스레드 방식은 연결된 기기가 많아질수록 시스템 리소스가 과도하게 소모된다는 단점이 있는데, Vert.x는 이런 단점을 해결하고 효과적으로 다수의 클라이언트를 동시에 처리할 수 있는 강력한 방법을 제공한다. 


    최근 주목받는 또 다른 기술로 WebSocket을 꼽을 수 있다. HTML5에 포함된 WebSocket은 웹 브라우저와 웹 서버 간의 양방향 통신을 지원하는 차세대 표준으로, 웹 애플리케이션의 반응성을 극적으로 향상하여 기존의 Ajax에 기반을 둔 대화형 웹 애플리케이션을 뛰어넘는 훨씬 효율적이고 역동적인 웹 애플리케이션 개발을 가능하게 한다. Vert.x에서는 WebSocket을 훌륭하게 지원하고 있으며, 이에 더해 WebSocket 에뮬레이터 중 하나인 SockJS로 좀 더 편리하게 실시간 웹 애플리케이션을 개발할 수 있도록 API를 제공하고 있다. 특히 SockJS Event Bus Bridge라는 확장 기술은 기존 웹 애플리케이션의 한계를 벗어나 좀 더 자유롭게 애플리케이션을 설계하는 데 도움을 주는 아주 강력한 도구다.


    Vert.x는 이제 전 세계 수많은 개발자가 주목하는 이벤트 기반 비동기 프로그래밍 모델의 대표 플랫폼이라 할 수 있다. 이 책은 Vert.x의 주요 개념과 특징을 살펴보고, 이 특징을 활용하여 Vert.x에서 제공하는 TCP와 SockJS를 기반으로 채팅 서비스를 개발하는 과정을 설명한다. 단순한 예제 수준이 아닌 실제 사용 가능한 수준에 가깝도록 채팅 서비스에 필요한 핵심 기능 구현까지 다루고 있다. 이 책으로 Vert.x 프로젝트를 처음부터 끝까지 개발하는 과정을 배울 수 있으므로 실무에 바로 적용할 수 있다.


    대상독자층

    • Node.js 등을 활용한 비동기 플랫폼에 익숙한 자바 개발자 
    • 실무 프로젝트에 Vert.x를 적용하고 싶은 개발자

     

  • [저자] 이연복

    “들은 것은 잊어버리지만 본 것은 기억한다. 하지만 행동해야 진정으로 이해할 수 있다.”라는 말에 깊이 공감하고, 선택의 문제가 산재한 삶 속에 적용하기 위해 고민하는 개발자다. 그 결과, “하지 않고 후회하는 것보다 하고 나서 후회하는 것이 낫다.”라는 신념을 지니게 되었고 이 신념에 따라 2011년 SW 마에스트로 과정을 마친 직후 ‘helloworld’라는 벤처기업을 시작했다. 현재까지 ‘helloworld’에서 Java를 사용하여 다양한 서비스 개발에 참여하고 있다. 주로 서버 사이드 개발에 관심이 많다.

  • 1장 들어가며
    1.1 Vert.x의 소개 
    1.2 왜 Vert.x인가 
    1.4 간단한 Vert.x 애플리케이션 
    1.5 요약 

     

    2장 TCP 채팅 서버/클라이언트 
    2.1 TCP 채팅 서버 
    2.2 TCP 채팅 클라이언트 
    2.3 첫 번째 결함의 분석과 해결방법 
    2.4 두 번째 결함의 분석과 해결방법 
    2.5 요약 

     

    3장 SockJS 채팅 서버/클라이언트 
    3.1 HTTP 서버 
    3.2 SockJS 
    3.3 SockJS Event Bus Bridge 
    3.4 SockJS EBB 보안 설정 
    3.5 요약 

     

    4장 TCP/SockJS EBB 채팅 서비스 통합 
    4.1 IntegratedTCPChatServerVerticle 
    4.2 IntegratedSockJSEbbChatServerVerticle 
    4.3 요약 

     

    5장 Vert.x 모듈 시스템 
    5.1 모듈 설치와 실행 
    5.2 모듈 디스크립터 
    5.3 Vert.x 모듈 만들기 
    5.4 몇 가지 유용한 Vert.x 모듈 

     

    6장 Advanced 채팅 서비스 
    6.1 TCP 채팅 서버 로그인 기능 
    6.2 채팅 메시지 구조화 
    6.3 대화방 분리 
    6.4 귓속말 처리 
    6.5 채팅 메시지 저장 

     

    맺음말 

  •  

    • vert.x를 소개할때 가장 많이 하는 말이 자바버전의 node.js 라고 하는 말입니다.

      요즘 추세인 Event기반 Non Blocking IO 를 손쉽게 구현하게 해주는 jvm기반 프레임웍입니다.

      vertx어플리케이션은 jvm상에서 동작할 수 있는 자바, 그루비, 자바스크립트, 파이썬등에서 자기가 익숙한 언어를 가지고 개발할 수 있습니다.



      이 책은 자바를 이용하여 vertx의 특징을 잘 살릴 수 있는 채팅프로그램을 만들면서 간단한 버전부터 클러스트링 및 다양한 클라이언트를 지원하는 버전까지 확장해가며 설명해줍니다.



      1장에서는 개발환경세팅과 hello world를 찍는 verticle(vertx어플리케이션)을 만듭니다.

      eclipse기반에서 maven기반으로 환경을 구축하는 설명이 자세히 나와있고, 따라하는 과정중 발생할 수 있는 jdk버전문제, pom.xml의 warning 처리방법등에 대해서도 언급해주고 있습니다.



      2장부터 채팅어플리케이션을 만들기 시작한다.



      서버를 만들던 클라이언트를 만들던 우선 verticle을 상속한 후 필요한 메소드들을 오버라이드해서 구현하면 되는데, java를 사용했기에 IDE의 도움으로 대부분의 코드얼개를 자동완성시킬 수 있으므로, 필요한 로직들만 코드안에 추가하고, 오타등이 났을때 IDE가 미리 체크해 준다든지, 로그를 남기고 확인하는 과정등이 nodejs 같은 언어로 하는것에 비해 확실히 코드는 길어질 수 있어도 괜찮은거 같습니다.



      첫번째 채팅프로그램을 만든 후 서버를 여러개 띄었을때의 문제점을 보여주고, 이를 확인하기 위해 로그를 추가하고, 스레드간 공유를 위한 코드를 추가하여 문제를 해결하는 형태로 진행되며,

      TCP통신의 특성을 설명하며 연속된 메시지를 고정폭으로 잘라서 파싱하는법, delimeter를 기준으로 파싱하는법등을 알려줍니다.

      그리고 스레드를 블락시키거나 오래걸리는 작업이 필요한 경우 workerverticle로 분리하는 방법소개등이 나옵니다.



      3장에선 SocketJS 서버를 만드는 방법에 대해 다루고

      단일 혹은 클러스터로 묶인 vert.x 인스턴스내의 verticle들이 서로 메시지를 주고 받을 수 있게 하는 이벤트버스에 대해 설명하고 채팅프로그램을 확장한다.



      나머지 장에서도 이런식으로 새로운 기능혹은 모듈을 설명하고 그것을 통합해 사용할 수 있도록

      하는 형태로 구성되어 있다.







      느낌: 250여 페이지의 부담없는 분량으로 새로운 기술인 vert.x 를 배우고, 이벤트기반의 서버 클라이언트 프로그램을 만들며 publish/subscribe등의 메시지 전송에 대해 배울 수 있는 좋은 책이었습니다.

      중간중간에 그림설명이 많아 이해하는데 도움이 많이 되었으며,

      컴파일없이 바로 실행가능하므로 개발 및 테스트가 쉬었고,

      클러스트링과 멀티 인스턴스 지원이 쉽다는 점에서 실무에서 한번 꼭 사용해보고 싶다는 생각이 들었습니다.





      - 24p 예제코드는 github에서 확인할 수 있다. 라고 되어있는데 바로 링크가 적혀있었으면 함.

      - TCPServer를 실행하는 방법은 나와있는데 텔넷 클라이언트로 확인하는 방법도 나와있었으면 한다 . (telnet localhost 8090 식으로)

      - vert.x3 버전에 클러스트링환경에서의 데이타공유기능이 추가된다고 하니 그 후 개정판이 나왔으면 좋겠다.

  • 내용이 없습니다.
닫기

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