Top

Vert.x로 하는 실시간 웹 애플리케이션 개발 [강력한 비동기 서버 프레임워크 버텍스 2.0]

  • 원서명Real-time Web Application Development using Vert.x 2.0(ISBN 9781782167952)
  • 지은이테로 파비아이넨
  • 옮긴이허태명, 신정안
  • ISBN : 9788960776067
  • 15,000원
  • 2014년 09월 26일 펴냄
  • 페이퍼백 | 156쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

요약

최근에 서버 쪽에서 가장 화두가 되고 있는 프레임워크는 자바스크립트 기반의 Node.js다. 버텍스(Vert.x)는 Node.js의 자바 버전이라고 할 수 있으며, 싱글 스레드로 비동기 처리를 하는 Node.js와 달리 멀티 스레드로 비동기 처리를 할 수 있어서 더욱 고성능의 서버를 만들 수 있다. 이 책에서는 실전과 같은 실시간 웹 애플리케이션 예제를 구축해보며 버텍스에 대한 특징과 주요 기능을 소개하고, 기본적인 개발 환경/구축/배포, 확장에 대해 다룬다. 또한, 버텍스가 지원하는 다양한 언어 중 자바스크립트와 자바를 이용해 애플리케이션을 개발해 볼 것이다. 이 책을 통해 실시간 이벤트를 기반으로 하는 비동기 네트워크 서버 프레임워크에 대한 이해와 함께, 버텍스 2.0 애플리케이션 개발 전체 프로세스를 맛볼 수 있을 것이다.

이 책에서 다루는 내용

■ 손쉬운 버텍스 개발 환경 구축

■ HTML5와 제이쿼리 및 D3.js 기술을 사용해 버텍스 애플리케이션을 위한 브라우저 기반 클라이언트 구축

■ 데이터 영속성을 위한 몽고DB 연동

■ 마인드 맵 애플리케이션에 실시간 협업 기능을 추가하기 위한 이벤트 버스 사용

■ 모듈 생성 후 기업이나 오픈소스 커뮤니티에 버텍스 라이브러리 배포

■ 버텍스 애플리케이션에 자바 라이브러리를 사용하는 방법과 방대한 자바 라이브러리 에코시스템 활용 방법

■ 버티클 배포 설정 튜닝을 통한 버텍스 애플리케이션 확장

이 책의 대상 독자

실시간 웹 애플리케이션 개발에 도전해보고 싶은 웹 개발자를 위한 책이다. 버텍스 플랫폼을 설명하기 위해 자바스크립트(일부에서는 자바도 활용)를 사용하고 있어, 기본적인 자바스크립트 관련 지식을 알고 있어야 한다. 다른 언어를 사용해 버텍스 애플리케이션을 작성할 계획이라면, 모든 기술과 개념을 바로 변환해 적용할 수 있다. 작성할 언어에 관한 API는 버텍스 문서를 참조하면 된다.

이 책의 구성

1장, ‘버텍스 시작‘은 버텍스 2.0 플랫폼의 설치와 설치에 필요한 필수 사항을 알려준다. 그리고 "Hello, World"를 웹에서 출력하는 최초의 버텍스 애플리케이션을 작성해본다.

2장, ‘버텍스 웹 애플리케이션 개발’은 서버와 브라우저 컴포넌트를 비롯해 제대로 된 기능을 갖춘 버텍스 웹 애플리케이션 개발을 다룬다. 이 장에서 전형적인 버텍스 애플리케이션의 아키텍처에 친숙해지게 될 것이다.

3장, ‘데이터베이스 연동’은 몽고DB를 사용해 데이터를 저장하는 기능을 추가함으로써 2장에서 만든 웹 애플리케이션을 확장할 것이다. MongoDB Persistor라는 오픈소스 버텍스 모듈을 사용해 몽고DB 데이터를 처리해본다.

4장, ‘실시간 통신’에서는 지금까지 배운 모든 것을 이용해 실시간 통신 기능을 만들어본다. 실시간으로 변경 사항이 반영되고 다수의 사용자가 협업 가능하며 브라우저 기반인 마인드 맵 에디터를 개발할 것이다.

5장, ‘다양한 언어(Polyglot) 지원과 모듈 개발’은 자바 언어로 마인드 맵을 PNG 이미지로 저장하는 모듈을 작성함으로써 재사용 가능하고 배포 가능한 모듈을 개발하는 과정을 살펴보고, 버텍스의 다양한 언어 지원 기능을 맛본다.

6장, ‘버텍스 배포 및 확장‘은 리눅스 서버를 셋업해 지속적인 배포 방식으로 버텍스 애플리케이션을 인터넷상에 배포하는 법을 알아본다. 마지막으로 사용자와 데이터가 늘어남에 따라 이에 대처하기 위해 버텍스 애플리케이션을 확장하는 기본적인 방법도 살펴본다.

저자/역자 소개

저자 서문

실시간으로 반응하는 웹의 시대가 다가와 있다. 1990년대에 처음 출현한 링크와 정적 페이지로 이루어진 웹 애플리케이션에서 시작해 약 7년 전 Ajax 혁명을 거쳐 매우 동적인 최신의 웹 애플리케이션에 이르기까지 먼 길을 걸어왔다. 오늘날의 웹 애플리케이션은 살아 있다. 페이스북, 지메일, 기업 재정/재무 대시보드, 채팅 서비스, 주식 시세 서비스는 우리가 원하는 때에 원하는 정보를 제공해준다. 새로운 웹 표준과 점점 더 빨라지는 고속 네트워크에서 스마트폰 및 스마트 TV에 이르는 새롭고 다양한 기기들로 인해 이러한 것이 가능해졌다. 이와 같은 새로운 종류의 애플리케이션을 만들려면 새로운 기술이 필요하다. 페이지 기반의 대다수 웹 프레임워크는 실시간 웹 애플리케이션의 기능을 제공하기에 부족한데, 버텍스는 이 부분을 공략해 근본부터 철저히 확장성 있는 실시간 웹 애플리케이션을 만들 수 있도록 설계됐다. 이 책은 여러분에게 버텍스로 실시간 웹 애플리케이션을 만드는 법을 보여준다. 처음 "Hello, World"부터 시작하여 인터넷에서 돌아가는 완벽한 기능을 갖춘 애플리케이션을 만드는 것까지 설명한다. 이 책에서는 실시간 마인드 맵 에디터를 예제 애플리케이션으로 삼아 기능을 하나씩 만들어 본다. 마인드 맵은 아이디어나 정보를, 연결된 트리 구조로 보여주는 유명한 방법이다.

저자 소개

테로 파비아이넨(Tero Parviainen)

12년 동안 자바, 루비, 자바스크립트, 클로저 언어를 이용해 웹 애플리케이션 소프트웨어를 개발했다. 대규모 기업용 백엔드 시스템에서 일반 고객용 모바일 애플리케이션까지 다양한 환경에서 일한 경험이 있다. 현재 회사에 소속되지 않은 독립 소프트웨어 개발자로 주로 소프트웨어 개발 계약과 고객을 위한 교육에 중점을 두고 일하고 있다. 그에 대한 정보는 트위터와 깃허브(GitHub)에서 @teropa로 찾을 수 있다.

옮긴이의 말

버텍스는 요즘 가장 관심을 받고 있는 Node.js와 같은 이벤트 기반의 비동기 서버 프레임워크다. 이벤트 기반의 비동기 서버 프레임워크라는 점은 Node.js와 비슷하지만, 버텍스는 싱글 스레드로 동작하는 Node.js와 달리 멀티 스레드로 동작한다. 그리고 자바, 자바스크립트, 루비, 스칼라 등 다양한 언어를 지원하며, 자바 기반이기 때문에 기존의 풍부한 자바 라이브러리를 그대로 활용할 수 있다는 장점이 있다.

지금까지 서버를 만들 때는 멀티 스레드 기반의 서버를 만드는 것은 필수였다. 그리고 멀티 스레드 환경에서 서버를 만드는 것은 자원 공유, 락 관리 등 일반 애플리케이션을 만들 때와는 달리 고려해야 할 부분이 많고, 이러한 점이 문제없이 잘 동작하게 만드는 것은 어려운 일이었다. 그러나 버텍스는 이벤트 기반으로 서버 프로그래밍을 가능하게 하여 그 동안 서버 개발 시 개발자를 골치 아프게 했던 문제를 근본적으로 없애 마치 싱글 스레드에서 동작하는 프로그램처럼 만들어도 강력한 성능의 서버를 만들 수 있게 해준다.

또한, 모듈 시스템을 제공해서 공통 기능을 모듈로 만들어서 쉽게 재사용이 가능하며 공개된 모듈 저장소에서 다른 사람이 이미 만들어 놓은 다양한 모듈을 필요에 따라 사용할 수 있다. 그리고 간단한 설정만으로 서버 클러스터링을 손쉽게 할 수 있으며, 실시간 웹 애플리케이션에 많이 사용되는 웹 소켓을 지원해 서버 푸시 애플리케이션을 쉽게 만들 수 있다.

이 책은 이러한 버텍스의 다양한 기능을 활용해 실시간 웹 애플리케이션을 처음부터 끝까지 구축하는 과정을 통해 버텍스의 강력한 서버 프로그래밍을 맛볼 수 있게 해준다. 독자 여러분도 이 책을 통해 서버 프로그래밍의 새로운 세계를 열어주는 버텍스의 매력에 빠지길 바란다.

옮긴이 소개

허태명

평생 코딩하며 사는 것을 꿈꾸는 개발자다. 현재 삼성전자에서 서버 개발 업무를 하고 있다. 그동안 주로 웹 서비스와 서버 개발 업무를 했지만 풀 스택 개발자(Fullstack Developer)가 되기를 꿈꾸며, 개발 관련한 모든 분야에 관심을 가지고 꾸준히 공부하고 있다. 최근에는 프론트엔드, 백엔드 모두에서 각광받고 있는 자바스크립트 공부에 매진하고 있다.

신정안

현재 NexR에서 오픈소스 프로젝트인 RHive를 개발하고 있다. 아파치 머하웃(Apache Mahout), 아파치 지라프(Apache Giraph) 같은 빅데이터 관련 오픈소스 프로젝트에 관심이 많으며, 데이터 엔지니어링을 위한 여러 가지 데이터 분석 기법 및 기술 학습에 끊임없이 매진 중이다.

목차

1장 버텍스 시작
버텍스 설치
자바 JDK 7 설치
자바 버전 확인
자바 다운로드
버텍스 배포판 다운로드
OS X과 리눅스
윈도우
버텍스 실행
임베디드 버텍스
첫 번째 버티클 작성하기: Hello world
웹 서버
정리


2장 버텍스 웹 애플리케이션 개발
마인드 맵 관리를 위한 새로운 버티클 추가
서버 사이드 마인드 맵 관리 구현
마인드 맵 목록 가져오기
마인드 맵 저장
마인드 맵 삭제
전체 코드
이벤트 버스와 클라이언트 연결
서버
클라이언트
브릿지 테스트
사용자 인터페이스 추가
마인드 맵 목록 가져오기
마인드 맵 생성
마인드 맵 삭제
버티클과 병렬 실행
정리


3장 데이터베이스 연동
몽고디비
몽고디비 설치
버텍스 몽고 퍼시스터 모듈 설치
마인드 맵 관리를 위한 데이터베이스 연동 구현
버텍스 콘솔
마인드 맵 목록 가져오기
마인드 맵 찾기
마인드 맵 저장
마인드 맵 삭제
중복 코드 리팩토링
정리


4장 실시간 통신
마인드 맵 구조
실시간 상호작용
이벤트
명령어
편집기 버티클
헬퍼 함수
노드 추가 명령어 핸들러
노드 이름 변경 명령어 핸들러
노드 삭제 명령어 핸들러
편집기 버티클 배포
클라이언트
마인드 맵 편집기 파일
HTML 수정
편집기 열기
명령어 전송
이벤트 처리
findNodeByKey 함수 공유
시각화 초기 설정
시각화 렌더링
렌더 함수 호출
시각화 스타일링
편집기 테스트
정리


5장 다양한 언어 지원과 모듈 개발
버텍스 모듈과 재사용
모듈 생성
모듈 디렉토리
모듈 디스크립터
라이브러리
모듈 구현
모듈 배포
클라이언트 연동
정리


6장 버텍스 배포 및 확장
버텍스 애플리케이션 배포
우분투 설정
사용자 설정
서버에 자바 설치
서버에 몽고디비 설치
특권포트
서버에 버텍스 설치
애플리케이션 포트 설정할 수 있도록 하기
서버에 애플리케이션 설정
설정 테스트
업스타트 서비스 설정
새 버전 배포
버텍스 애플리케이션 확장
버티클 개수
메모리
버텍스 클러스터링
정리

찾아보기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안