Top

JBoss 인피니스팬 따라잡기 [시스템 성능을 높이는 분산캐시 데이터그리드 플랫폼]

  • 원서명Infinispan Data Grid Platform (ISBN 9781849518222)
  • 지은이프란체스코 마르치오니, 마닉 수르타니
  • 옮긴이전재홍
  • ISBN : 9788960774902
  • 18,000원
  • 2013년 11월 19일 펴냄
  • 페이퍼백 | 192쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

이 책은 분산 캐시(cache)와 데이터그리드(data grid) 솔루션을 사용하고자 하는 개발자와 아키텍트가 인피니스팬(Infinspan)을 사용하는 데 있어 가장 중요한 개념들을 가르쳐 준다. 인피니스팬 설치, 설정뿐만 아니라, 캐시에 데이터를 추가하고 제거하고 지우는 예제부터, 데이터그리드 내 클러스터링과 더 효율적인 데이터 분산 같은 복잡한 시나리오까지 다룬다. 또한 JBoss AS 7과 함께 인피니스팬을 통합해 사용하는 방법도 살펴본다. 한국어판 특별 부록으로 인피니스팬 6.0에 대해서도 간략히 소개한다.

이 책에서 다루는 내용

■ 분산 캐시와 데이터그리드 학습, 인피니스팬 설치
■ 만료, 제거, 저장, JTA 호환 트랜잭션 등을 이용하는 인피니스팬 설정
■ 운영 시스템의 통계 수집과 이용
■ 인피니스팬과 함께 CDI 프로그래밍 모델 사용
■ 인피니스팬의 강력한 질의와 비동기 API
■ 필요에 따른 인피니스팬 확장과 커스터마이징
■ 클러스터링과 클러스터 내 잠금/동시성 패턴 등의 심화 주제
■ JBoss AS 7 내 인피니스팬 서브시스템

이 책의 대상 독자

이 책은 분산 캐시와 데이터그리드 솔루션을 사용하고자 하는 기업의 개발자와 아키텍트를 위한 것이다. 독자는 자바 프로그래밍 지식과 데이터 캐싱과 클러스터링 같은 개념에 대해 어느 정도 익숙해야 한다.

이 책의 구성

1장, 인피니스팬 설치: 데이터그리드의 정의와 개념적 기반을 이야기하며 인피니스팬 데이터그리드 플랫폼을 소개한다. 또한 인피니스팬과 개발 시 도움될 공통 도구의 설치를 보여준다.

2장, 인피니스팬 코어 API: 인피니스팬의 두 가지 동작 모드를 설명하고, 캐시 매니저(CacheManager) 인터페이스와 캐시(Cache) API를 활용해 인피니스팬을 사용하는 방법을 통해 인피니스팬 코어 API를 설명한다.

3장, 인피니스팬 설정: 기본적인 설정에 관해 선언적으로 그리고 코드 내에서 설정하는 방법을 다룬다.

4장, 고급 설정: 확장성과 안정성 있는 기업용 애플리케이션에 필수인 클러스터링과 트랜잭션 같은 고급 주제에 관해 소개한다.

5장, 인피니스팬 모니터링: 캐시 매니저와 캐시된 객체에 관련된 정보를 얻는 방법을 보여주면서, 인피니스팬 플랫폼을 관리하고 모니터링하는 방법을 알려준다.

6장, 인피니스팬과 CDI: 대중화되어가는 CDI 프로그래밍 모델과 함께 인피니스팬을 사용하는 방법을 본다.

7장, 심화 주제: 비동기 API, 질의 API, 인피니스팬 커스터마이징에 관한 세 가지 심화주제에 대해 다룬다.

부록A, 인피니스팬과 JBoss AS 7: JBoss AS 7 서버에서 인피니스팬 API를 사용해 애플리케이션을 구성하고 개발하는 방법을 살펴본다.

부록 B, [한국어판 특별 부록] 인피니스팬 6.0: 최신 버전인 인피니스팬 6.0에 관해 알아 본다.

저자/역자 소개

저자 서문

오늘날 경쟁적인 비즈니스 세계에서, 기업용 시스템은 증가하는 사용자를 위해 대량 트랜잭션과 고가용성을 반드시 제공해야 한다. 인피니스팬은 그뿐 아니라 가장 효율적인 방법으로 서버 간 데이터를 공유하고 배포함으로써 단일 장애점(single point of failure)을 회피하려 할 때 더 빠른 응답 시간을 이룰 수 있게 한다.

『JBoss 인피니스팬 데이터그리드 시스템』은 데이터그리드를 사용하여 고가용성, 확장성을 이루고자 하는 기업용 애플리케이션을 만들 때 가장 중요한 개념을 가르쳐 준다. 인피니스팬을 사용하는 것은 일반적인 기본 클러스터링 툴을 넘어서는 경쟁력 있는 장점을 준다. 현재 인피니스팬을 다루는 유일한 이 책은 인피니스팬의 설치와 설정, 그리고 그것을 효과적으로 사용하기 위한 자세한 절차를 제공한다. 이 책에서 인피니스팬의 API의 모든 특징과 그것을 최대한 활용하는 법을 배울 것이다.

캐시에 데이터를 추가하고 제거하고 지우는 예제부터, 그리드 내 클러스터링과 더 효율적인 데이터 분산 같은 복잡한 시나리오까지 나아간다. 이 책 전반에서 티켓 예약 시스템을 구현하면서 API의 간단한 예제들을 해보는데, 이는 강력하면서도 확장 가능한 인피니스팬 설정을 셋업하는 법을 배우는 데 도움이 될 것이다. 또한 JBoss AS 7과 인피니스팬의 통합도 다룬다.

저자 소개

프란체스코 마르치오니(Francesco Marchioni)

SCEA(Sun Certified Enterprise Architect) 자격을 가진 아키텍트이며 이탈리아 로마에 있는 회사에서 일하고 있다. 1997년에 자바를 배우기 시작한 이래로 썬에서 만든 새로운 API들을 지켜봐 왔다. 제이보스 애플리케이션 서버(이하 JBoss AS)의 버전이 2.x였던 2000년부터 JBoss 커뮤니티에 참여했다.

소프트웨어 컨설턴트로 오랜 시간을 보냈으며, 벤더 기반의 플랫폼을 JBoss AS 같은 오픈소스 제품으로 성공적으로 이전하는 것을 계획해 왔다. 지금처럼 빠듯한 예산 요구사항을 만족시키면서 말이다.

지난 5년간은 오라일리 미디어(O'Reilly Media)에서 기술 기사를 작성했으며 JBoss 제품에 초점을 둔 IT 포탈(http://www.mastertheboss.com)을 운영 중이다.

2009년 12월, 『JBoss AS 5 개발(JBoss AS 5 Development)』이라는 제목의 책을 출판했고, JBoss AS 위에서 자바 엔터프라이즈 애플리케이션을 작성하고 배포하는 방법을 다뤘다. 2010년 12월, 그의 두 번째 저작인 제이보스 『JBoss AS 5 성능 튜닝(JBoss AS 5 Performance Tuning)』을 출간했으며, JBoss AS 위에서 어떻게 빠르고 효율적인 애플리케이션을 수행하는지 설명했다. 2011년 12월에는 『JBoss AS 7 Configuration, Deployment and Administration』(에이콘출판사, 2013년 12월)라는 최신 JBoss AS의 모든 면을 다룬 책도 출판했다.

마닉 수르타니(Manik Surtani)

레드햇의 JBoss의 핵심 연구 개발 엔지니어이며 현재 리드하고 있는 인피니스팬 프로젝트의 창시자다. JSR-347(자바 플랫폼 데이터그리드)를 리드하고 있으며 JSR-107(자바 캐시)의 전문가 그룹에서 레드햇을 대표하고 있다.

클라우드, 분산 컴퓨팅, NoSQL, 빅데이터, 자율 시스템, 고가용적 컴퓨팅에 관심이 있다. 학계에 있을 때에는 인공지능과 신경망을 경험했으며, 그 이후로는 자바와 관련된 기술을 사용해여 일해왔다. 처음에는 지식관리와 정보교환에 집중하는 스타트업에서, 나중에는 런던의 큰 컨설팅 회사에서 자바EE와 P2P 기술에 기반한 전자 상거래 애플리케이션의 기술 리더로서 일했다.

마닉은 오픈소스 개발 방법론, 정신, 협력 프로세스의 강력한 지지자이며 처음부터 오픈소스와 관계를 맺어왔다.

옮긴이의 말

저는 현재 한국 JBoss User Group에 속한 인피니스팬 스터디 소모임을 진행하고 있습니다. 그러다 보니 생각보다 많은 곳에서 여러 가지 목적으로 인피니스팬을 사용하고 있으며 개발자들이 이 제품에 대해 상당히 관심이 많다는 사실을 깨달았습니다. 하지만 영문 위키 사이트 외에는 정보가 거의 없고 출간된 도서는 팩트(Packt) 출판사의 『Infinispan Data Grid Platform』이 유일합니다. 이처럼 한글로 된 자료가 절실한 상태이며, 인터넷 문서 번역 이외에도 한글로 번역된 도서가 있었으면 하는 바람에 번역서 출간을 생각하게 되었습니다. 인피니스팬 소모임 진행자로서 이 제품이 국내에서 제대로 많이 쓰였으면 하는 바람도 물론 있었습니다.

인피니스팬은 JBoss에서 만든 오픈소스 데이터그리드 플랫폼입니다. 분산된 노드의 메모리 영역을 하나의 저장소처럼 묶어서 궁극적으로 클라우드 환경에서 확장이 쉬운 데이터 저장소가 그 목적입니다. 그리고 메모리상에서 데이터를 보관하고 처리하기 때문에 속도가 매우 빨라 분산 캐시로도 많이 쓰이고 있습니다.

게다가 트랜잭션을 지원하는 key/value NoSQL로서 대용량 또는 고성능의 애플리케이션을 구현하기 위해 상당히 광범위한 영역에서 사용되며 특히 최근 부상하는 빅데이터 실시간 분석 등에서 빠른 데이터 처리를 위해 사용되기도 합니다.

인피니스팬은 현재도 신속하게 업데이트되고 있습니다. 원서에서는 버전 5.1을 사용해 설명했으나 번역 작업을 하며 버전 5.3으로 높였습니다. 하지만, 이 책 본문에서 다루는 대부분의 내용은 인피니스팬의 기본적인 개념과 설정에 관한 것으로서 공통으로 적용되기 때문에 버전에 크게 구애받지 않고 읽을 수 있습니다. 번역을 마무리할 시기에 출시된 버전 6.0에서 추가되거나 바뀐 내용에 관해서는 원서에는 없는 한국어판 특별 부록을 추가로 실어 설명했습니다.

국내에서 캐시와 데이터그리드를 배워보고자 하는 분들과 기업용 애플리케이션에서 성능 향상과 확장성을 추구하고자 하는 아키텍트, 개발자 분들에게 이 책이 많은 도움이 된다면 좋겠습니다.

인피니스팬에 관해 더 많은 정보를 얻으려면 인피니스팬 웹사이트(infinispan.org)나 한국어 인피니스팬 블로그(infinispan-ko.blogspot.kr)를 방문해 도움을 얻으시기 바랍니다.

옮긴이 소개

전재홍

한화S&C 기술혁신연구소에서 모바일 플랫폼을 개발하고 있다. 빅데이터, 인메모리 기반 처리, 그리고 행복한 개발자의 삶에 관심이 많으며 한국 JBoss User Group 커뮤니티 내에서 인피니스팬(Infinispan) 소모임을 이끌고 있다.

목차

목차
  • 1장 인피니스팬 설치
    • 데이터그리드란 무엇인가?
    • 캐시로서의 인피니스팬
      • JSR-107 뛰어넘기
    • 필수 소프트웨어 설치
      • 자바 SE 설치
        • 설치 확인
      • 메이븐 설치
        • 설치 확인
      • 인피니스팬 설치
        • 모듈로 인피니스팬 확장
        • GUI 데모 프로그램으로 설치 확인 테스트
    • 요약
  • 2장 인피니스팬 코어 API
    • 인피니스팬 동작 모드
      • 내장 모드로 인피니스팬 실행
      • 클라이언트-서버 모드로 인피니스팬 실행
        • 멤캐시디 프로토콜
        • 핫로드 프로토콜
        • 인피니스팬 REST 인터페이스
        • 핫로드 자바 클라이언트 사용하기
    • 인피니스팬 API 배우기
      • 첫 번째 프로젝트 생성
      • 데이터 스토어의 크기 제어
        • 데이터 제거
        • 데이터 만료
      • 리스너 사용
        • 리스너와 동기성
    • 인피니스팬과 트랜잭션
    • 메이븐으로 예제 애플리케이션 실행
    • 요약
  • 3장 인피니스팬 설정
    • 선언적 설정 배우기
      • 전역 설정 세팅
      • 캐시 설정 세팅
    • 캐시 로더 설정
      • 공통 캐시 로더 속성
      • 특정 캐시로더 속성
    • 애플리케이션에 적합한 캐시 스토어 선택
      • JDBC 캐시 스토어
    • 캐시로더 체인
    • 제거와 만료 설정
      • 제거와 패시베이션 설정으로 티켓 예약 시스템 테스트하기
    • 프로그램 내에서 인피니스팬 설정
      • 처음부터 설정 생성하기
      • 프로그램 내에서 전역 설정을 생성하기
    • 요약
  • 4장 고급 설정
    • 클러스터링 소개
    • 네트워크 송수신 설정
    • 인피니스팬 클러스터 생성
      • 클러스터링을 사용하는 애플리케이션 설정
      • 복제와 분산 중 선택
      • 고급 데이터 분산
        • 가상 노드로 데이터 분산 향상
        • 불필요한 원격 접속 방지를 위한 L1 캐시
    • 인피니스팬 잠금 정책
      • 격리수준 설정
      • 데이터 잠금과 트랜잭션
        • 명시적, 암시적 데이터 잠금
      • 노드 잠금 예제
        • 잠금 제한시간 설정
        • 캐시 키 보호 위한 잠금 풀 사용
        • 데드락 감지
    • 요약
  • 5장 인피니스팬 모니터링
    • 통계 수집 활성화
    • JConsole을 사용한 인피니스팬 데이터 수집
    • RHQ로 인피니스팬 관리
      • RHQ 설치
      • Configuring the RHQ agent
        • 에이전트가 인피니스팬 발견하게 하기
        • 인피니스팬 플러그인 설치
    • RHQ, 인피니스팬으로의 게이트웨이
      • 간단한 캐시 요약 뷰
    • 캐시로부터 경고 조건 얻기
      • 시스템 실시간 모니터링
    • 요약
  • 6장 인피니스팬과 CDI
    • CDI 개요
    • 인피니스팬과 CDI를 사용하기 위한 준비
    • 인피니스팬 컴포넌트 설정과 CDI 빈으로 주입
      • CDI를 사용하여 캐시 주입
        • 주입대상 캐시 설정
      • 캐시 매니저 설정
        • 기본 설정 지정
        • EmbeddedCacheManager 생성 방법 설정
        • RemoteCacheManager 설정
      • 복수의 설정 다루기
    • CDI 애노테이션을 사용한 저장과 검색 제어
      • CDI 애플리케이션에서 캐시 애노테이션 활성화
      • 메소드 실행 결과의 캐싱
        • 사용할 캐시 지정
        • 캐시된 결과에 대한 캐시 키
        • 커스텀 키 생성
      • 캐시 엔트리 삭제
      • 캐시 비우기
      • 캐시 엔트리 갱신
    • JBoss AS 7.x와 함께 인피니스팬 CDI 사용
    • 요약
  • 7장 심화주제
    • 비동기 API
      • NotifyingFuture
    • 질의 API
      • 인피니스팬 질의 기능을 사용하도록 프로젝트 준비
        • 캐시 설정
        • 객체에 애노테이션 붙이기
        • 질의 작성
      • 인덱스 저장
        • 인피니스팬 디렉토리
        • 인덱스 저장소와 캐시 모드
    • 전체 인덱스의 로컬 복제본
      • 전체의, 공유된 인덱스
        • 인피니스팬 커스터마이징
      • BaseCustomInterceptor
        • Command와 InvocationContext
      • 커스텀 인터셉터 만들기
      • 커스텀 인터셉터 설정
        • 인터셉터 위치하기
    • 요약
  • 부록 A 인피니스팬과 JBoss AS 7
    • 새로운 모듈화된 애플리케이션 서버
    • AS 7 상의 인피니스팬 설정
    • 설정 자세히 보기
    • 설정 내 기본 엘리먼트 정의
    • 설정에서 global 엘리먼트 정의
    • 스레드 풀 정의
    • JBoss AS 애플리케이션에서 인피니스팬 API 사용
  • 부록 B [한국어판 특별 부록] 인피니스팬 6.0
    • 아파치 라이선스 채택
    • 모듈변경과 배포 패키지 정리
    • 사용하지 않는 API, SPI 삭제
    • 새로운 파일 캐시스토어
    • 새로운 영속 API(persistence API)
    • 불균질적인 클러스터
    • 내장/리모트 질의에 대한 변화
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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