책 소개
요약
최근에 서버 쪽에서 가장 화두가 되고 있는 프레임워크는 자바스크립트 기반의 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장, ‘버텍스 배포 및 확장‘은 리눅스 서버를 셋업해 지속적인 배포 방식으로 버텍스 애플리케이션을 인터넷상에 배포하는 법을 알아본다. 마지막으로 사용자와 데이터가 늘어남에 따라 이에 대처하기 위해 버텍스 애플리케이션을 확장하는 기본적인 방법도 살펴본다.
목차
버텍스 설치
자바 JDK 7 설치
자바 버전 확인
자바 다운로드
버텍스 배포판 다운로드
OS X과 리눅스
윈도우
버텍스 실행
임베디드 버텍스
첫 번째 버티클 작성하기: Hello world
웹 서버
정리
2장 버텍스 웹 애플리케이션 개발
마인드 맵 관리를 위한 새로운 버티클 추가
서버 사이드 마인드 맵 관리 구현
마인드 맵 목록 가져오기
마인드 맵 저장
마인드 맵 삭제
전체 코드
이벤트 버스와 클라이언트 연결
서버
클라이언트
브릿지 테스트
사용자 인터페이스 추가
마인드 맵 목록 가져오기
마인드 맵 생성
마인드 맵 삭제
버티클과 병렬 실행
정리
3장 데이터베이스 연동
몽고디비
몽고디비 설치
버텍스 몽고 퍼시스터 모듈 설치
마인드 맵 관리를 위한 데이터베이스 연동 구현
버텍스 콘솔
마인드 맵 목록 가져오기
마인드 맵 찾기
마인드 맵 저장
마인드 맵 삭제
중복 코드 리팩토링
정리
4장 실시간 통신
마인드 맵 구조
실시간 상호작용
이벤트
명령어
편집기 버티클
헬퍼 함수
노드 추가 명령어 핸들러
노드 이름 변경 명령어 핸들러
노드 삭제 명령어 핸들러
편집기 버티클 배포
클라이언트
마인드 맵 편집기 파일
HTML 수정
편집기 열기
명령어 전송
이벤트 처리
findNodeByKey 함수 공유
시각화 초기 설정
시각화 렌더링
렌더 함수 호출
시각화 스타일링
편집기 테스트
정리
5장 다양한 언어 지원과 모듈 개발
버텍스 모듈과 재사용
모듈 생성
모듈 디렉토리
모듈 디스크립터
라이브러리
모듈 구현
모듈 배포
클라이언트 연동
정리
6장 버텍스 배포 및 확장
버텍스 애플리케이션 배포
우분투 설정
사용자 설정
서버에 자바 설치
서버에 몽고디비 설치
특권포트
서버에 버텍스 설치
애플리케이션 포트 설정할 수 있도록 하기
서버에 애플리케이션 설정
설정 테스트
업스타트 서비스 설정
새 버전 배포
버텍스 애플리케이션 확장
버티클 개수
메모리
버텍스 클러스터링
정리
찾아보기