Vert.x로 하는 실시간 웹 애플리케이션 개발(acorn+PACKT)
강력한 비동기 서버 프레임워크 버텍스 2.0
최근에 서버 쪽에서 가장 화두가 되고 있는 프레임워크는 자바스크립트 기반의 Node.js다. 버텍스(Vert.x)는 Node.js의 자바 버전이라고 할 수 있으며, 싱글 스레드로 비동기 처리를 하는 Node.js와 달리 멀티 스레드로 비동기 처리를 할 수 있어서 더욱 고성능의 서버를 만들 수 있다. 이 책에서는 실전과 같은 실시간 웹 애플리케이션 예제를 구축해보며 버텍스에 대한 특징과 주요 기능을 소개하고, 기본적인 개발 환경/구축/배포, 확장에 대해 다룬다. 또한, 버텍스가 지원하는 다양한 언어 중 자바스크립트와 자바를 이용해 애플리케이션을 개발해 볼 것이다. 이 책을 통해 실시간 이벤트를 기반으로 하는 비동기 네트워크 서버 프레임워크에 대한 이해와 함께, 버텍스 2.0 애플리케이션 개발 전체 프로세스를 맛볼 수 있을 것이다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
최근에 서버 쪽에서 가장 화두가 되고 있는 프레임워크는 자바스크립트 기반의 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"부터 시작하여 인터넷에서 돌아가는 완벽한 기능을 갖춘 애플리케이션을 만드는 것까지 설명한다.
이 책에서는 실시간 마인드 맵 에디터를 예제 애플리케이션으로 삼아 기능을 하나씩 만들어 본다. 마인드 맵은 아이디어나 정보를, 연결된 트리 구조로 보여주는 유명한 방법이다.
★ 옮긴이의 말 ★
버텍스는 요즘 가장 관심을 받고 있는 Node.js와 같은 이벤트 기반의 비동기 서버 프레임워크다. 이벤트 기반의 비동기 서버 프레임워크라는 점은 Node.js와 비슷하지만, 버텍스는 싱글 스레드로 동작하는 Node.js와 달리 멀티 스레드로 동작한다. 그리고 자바, 자바스크립트, 루비, 스칼라 등 다양한 언어를 지원하며, 자바 기반이기 때문에 기존의 풍부한 자바 라이브러리를 그대로 활용할 수 있다는 장점이 있다.
지금까지 서버를 만들 때는 멀티 스레드 기반의 서버를 만드는 것은 필수였다. 그리고 멀티 스레드 환경에서 서버를 만드는 것은 자원 공유, 락 관리 등 일반 애플리케이션을 만들 때와는 달리 고려해야 할 부분이 많고, 이러한 점이 문제없이 잘 동작하게 만드는 것은 어려운 일이었다. 그러나 버텍스는 이벤트 기반으로 서버 프로그래밍을 가능하게 하여 그 동안 서버 개발 시 개발자를 골치 아프게 했던 문제를 근본적으로 없애 마치 싱글 스레드에서 동작하는 프로그램처럼 만들어도 강력한 성능의 서버를 만들 수 있게 해준다.
또한, 모듈 시스템을 제공해서 공통 기능을 모듈로 만들어서 쉽게 재사용이 가능하며 공개된 모듈 저장소에서 다른 사람이 이미 만들어 놓은 다양한 모듈을 필요에 따라 사용할 수 있다. 그리고 간단한 설정만으로 서버 클러스터링을 손쉽게 할 수 있으며, 실시간 웹 애플리케이션에 많이 사용되는 웹 소켓을 지원해 서버 푸시 애플리케이션을 쉽게 만들 수 있다.
이 책은 이러한 버텍스의 다양한 기능을 활용해 실시간 웹 애플리케이션을 처음부터 끝까지 구축하는 과정을 통해 버텍스의 강력한 서버 프로그래밍을 맛볼 수 있게 해준다. 독자 여러분도 이 책을 통해 서버 프로그래밍의 새로운 세계를 열어주는 버텍스의 매력에 빠지길 바란다.
허태명, 신정안
목차
목차
__버텍스 설치
__자바 JDK 7 설치
__자바 버전 확인
__자바 다운로드
__버텍스 배포판 다운로드
__OS X과 리눅스
__윈도우
__버텍스 실행
__임베디드 버텍스
__첫 번째 버티클 작성하기: Hello world
__웹 서버
__정리
2장 버텍스 웹 애플리케이션 개발
__마인드 맵 관리를 위한 새로운 버티클 추가
__서버 사이드 마인드 맵 관리 구현
__마인드 맵 목록 가져오기
__마인드 맵 저장
__마인드 맵 삭제
__전체 코드
__이벤트 버스와 클라이언트 연결
__서버
__클라이언트
__브릿지 테스트
__사용자 인터페이스 추가
__마인드 맵 목록 가져오기
__마인드 맵 생성
__마인드 맵 삭제
__버티클과 병렬 실행
__정리
3장 데이터베이스 연동
__몽고디비
__몽고디비 설치
__버텍스 몽고 퍼시스터 모듈 설치
__마인드 맵 관리를 위한 데이터베이스 연동 구현
__버텍스 콘솔
__마인드 맵 목록 가져오기
__마인드 맵 찾기
__마인드 맵 저장
__마인드 맵 삭제
__중복 코드 리팩토링
__정리
4장 실시간 통신
__마인드 맵 구조
__실시간 상호작용
__이벤트
__명령어
__편집기 버티클
__헬퍼 함수
__노드 추가 명령어 핸들러
__노드 이름 변경 명령어 핸들러
__노드 삭제 명령어 핸들러
__편집기 버티클 배포
__클라이언트
__마인드 맵 편집기 파일
__HTML 수정
__편집기 열기
__명령어 전송
__이벤트 처리
__findNodeByKey 함수 공유
__시각화 초기 설정
__시각화 렌더링
__렌더 함수 호출
__시각화 스타일링
__편집기 테스트
__정리
5장 다양한 언어 지원과 모듈 개발
__버텍스 모듈과 재사용
__모듈 생성
__모듈 디렉토리
__모듈 디스크립터
__라이브러리
__모듈 구현
__모듈 배포
__클라이언트 연동
__정리
6장 버텍스 배포 및 확장
__버텍스 애플리케이션 배포
__우분투 설정
__사용자 설정
__서버에 자바 설치
__서버에 몽고디비 설치
__특권포트
__서버에 버텍스 설치
__애플리케이션 포트 설정할 수 있도록 하기
__서버에 애플리케이션 설정
__설정 테스트
__업스타트 서비스 설정
__새 버전 배포
버텍스 애플리케이션 확장
버티클 개수
메모리
버텍스 클러스터링
정리
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

