장바구니 담기 close

장바구니에 상품을 담았습니다.

아파치 Camel 따라잡기

아파치 Camel 따라잡기

  • 스콧 크랜튼
  • |
  • 에이콘출판
  • |
  • 2015-04-20 출간
  • |
  • 500페이지
  • |
  • 188 X 235 X 24 mm /954g
  • |
  • ISBN 9788960776739
★★★★★ 평점(10/10) | 리뷰(1)
판매가

40,000원

즉시할인가

36,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
36,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 요약 ★

아파치 카멜은 기업 통합 패턴(Enterprise Integration Patterns)을 자바로 구현하게 하는 훌륭한 도구다. 카멜을 통해 일반적인 통합 작업을 쉽게 가능하게 하며, 상황이 요구 할 때에는 개발자가 프레임워크를 커스터마이징하는 수단을 제공한다. 이 책은 아파치 카멜을 이미 조금은 알고 있고 실제적이고 증명된 팁을 빨리 찾길 원하는 개발자들을 위해 예제 형식으로 구성되었다. 각 예제에는 카멜의 더 깊은 기능을 이해하기 위한 참조 링크와 문서도 포함했다.

★ 이 책에서 다루는 내용 ★

■ 카멜 프로젝트를 구성하는 방법
■ 공통적인 엔터프라이즈 통합 패턴 사용 이해
■ 사용자 메시지 전환
■ 카멜 내장 테스트 프레임워크 사용
■ 기존 코드와 더 잘 동작하도록 카멜 확장
■ 에러 처리 정책 학습
■ 카멜의 병렬 처리와 스레딩 기능 사용
■ 카멜 통합 루트 보안
■ 카멜에서 ACID 트랜잭션 처리 이해

★ 이 책의 대상 독자 ★

이 책은 아파치 카멜에 조금 익숙하고 공통적인 작업들을 수행하는 방법에 대해 실제적이고 증명된 팁들을 빨리 찾아보기를 원하는 개발자들을 위해 쓰여졌다.

★ 이 책의 구성 ★

1장, ‘루트 구성’에서는 카멜 구성의 기본적인 사항을 소개한다. 자바와 스프링 애플리케이션에서 실행되는 프레임워크를 만들고, 카멜 컴포넌트를 사용하고, 라우팅 로직을 분리하고 재사용한다.

2장, ‘메시지 라우팅’에서는 카멜에서 메시지를 라우트하기 위해 사용되는 주요 EIP 사용법을 설명한다. if-else 스타일 내용 기반 라우팅부터 좀 더 복잡하고 동적인 옵션까지 모두 살펴본다.

3장, ‘사용자 코드로 라우팅’에서는 직접 작성한 자바 코드에서부터 카멜 런타임과 어떻게 상호작용하는지와 카멜 루트 내에서 자바 코드가 어떻게 사용되는지 설명한다.

4장, ‘전환’은 자바 객체, XML, JSON, CSV 같은 일반적인 메시지 형식을 다루고, 그 형식 간 변환을 위해 바로 사용 가능한 정책을 제시한다.

5장, ‘분리하기와 합치기’에서는 관련된 Splitter와 Aggregator 패턴을 깊이 있게 살펴본다.

6장, ‘병렬 처리’에서는 스레드풀, 프로파일, 비동기 프로세서를 사용해 처리를 확장하기 위해 카멜이 지원하는 것을 개략적으로 살펴본다.

7장, ‘에러 처리와 보상’에서는 이미 완료된 비트랜잭션 작업을 위한 보상 라우팅 단계를 시작하는 기능을 포함해, 오류를 다루기 위해 카멜 DSL이 제공하는 메커니즘을 설명한다.

8장, ‘트랜잭션과 멱등성’은 트랜잭션 리소스(JDBC와 JMS)를 다루기 위한 몇 가지 방법을 보여준다. 메시지 재실행(replay) 또는 복제 이벤트 시 오직 한 번만 불리게 되는 방법으로 비트랜잭션(웹 서비스 같은) 리소스를 다루는 내용도 설명한다.

9장, ‘테스팅’은 백엔드 시스템을 필요로 하지 않으면서 사용자 루트의 행위를 검증하기 위해 카멜의 테스트 지원을 설명한다. 또한 런타임 시 사용되는 코드를 수정하지 않고, 테스팅 목적으로 부가적인 단계를 거쳐 루트를 변경하는 법을 보여준다.

10장, ‘모니터링과 디버깅’은 로깅, 추적, 디버깅에 대한 카멜의 지원을 설명한다. 개발자가 직접 속성과 동작을 정의할 수 있는 기능을 포함하는 카멜의 JMX 지원으로 모니터링을 시험한다.

11장, ‘보안’은 시스템 간 암호화 통신, 민감한 설정 정보 숨기기, 인증서를 사용한 부인 방지, 루트에 인증과 권한부여를 적용하는 것을 다룬다.

12장, ‘웹 서비스’에서는 카멜을 사용해 백엔드와 프록시 SOAP처럼 행동하는 웹 서비스를 호출하는 방법을 살펴본다.

★ 저자 서문 ★

아파치 카멜은 시스템 통합(system integrations)을 위한 자바 프레임워크다.
왜 이런 프레임워크가 필요한가라고 질문할 수 있겠다. 시스템 통합은 많은 부분이 해결된 주제다. 우리는 다양한 프론트엔드를 오래전부터 웹 서비스, 메시지 브로커, 데이터베이스에 어떻게든 연동해왔다. 확실히 시스템 통합은 추상화를 필요로 하지 않는, 잘 알려진 영역이다.
하지만 꼭 그렇지도 않다.
스프링 프레임워크가 2003년 이후 자바 EE 시장의 판도를 뒤바꿔 놓았던 것처럼, 아파치 카멜은 2007년에 출시된 이후로 시스템 통합 시장의 균형을 흔들어왔다. 카멜은 훨씬 간결하고 쉬운 코드를 생산하는 시스템 통합을 생각하고 행하는 새로운 길을 가능케 하고, 더 적은 노력으로 오류를 줄이고 유지보수를 손쉽게 만들었다. 활발히 움직이는 대규모 아파치 카멜 커뮤니티와 카멜에 기반한 상용 통합 제품의 수가 얼마나 늘었는지, 그리고 미들웨어 개발자 컨퍼런스에서 회자되는 카멜에 대한 논의가 얼마나 많아졌는지 등이 카멜에 대한 호평을 입증할 수 있는 근거가 될 것이다.
이 책은 카멜을 이미 좀 알고 있고, 통합에 관한 복잡한 문제를 풀기 위해 카멜이 어떻게 더 도움이 될지 팁을 찾는 독자들을 대상으로 한다. 이 책은 일반적인 통합 작업을 해결하기 위해 카멜을 사용하는 단계별 설명이 포함된 100개가 넘는 예제가 담겨 있다. 각 예제에서는 카멜이 내부적으로 어떤 작업을 수행하는지를 간단히 설명하고, 심도 있는 학습을 원하는 사람들을 위한 추가 정보 등을 알려줄 것이다.
이 책은 카멜을 처음 시작하는 사람에게는 적합하지 않을 수도 있다. 하지만 다른 통합 기술에 벌써 익숙해 있고, 사용하면서 배우길 원한다면 이 책의 예제들에서 도움을 받을 수 있을 것이다. 따라서 여기서는 카멜의 개념에 대해서 깊은 설명을 하지는 않을 것이다.
많은 예제 코드와 함께 카멜의 개념적인 내용을 더 원하는 독자는, 클라우스 입센(Claus Ibsen)과 조나단 앤스티(Jonathan Anstey)가 저술한 매닝(Manning) 출판사의 『Camel in Action』을 읽어보길 권한다. 한 권 더 소개하자면, 팩트 출판사에서 발간된 빌긴 이브라이엄(Bilgin Ibryam)의 『Instant Apache Camel Message Routing』(2013)을 보라. 카멜 공식 웹사이트(http://camel.apache.org)도 카멜을 사용하는 데 있어서 도움이 되는 글과 문서 리스트를 많이 다룬다.

★ 옮긴이의 말 ★

2003년에 그레거 호프와 바비 울프의 공동 저작으로 『기업 통합 패턴(Enterprise Integration
Patterns)』이 출간되었다(최근 에이콘출판사에서 번역본이 나왔다.) 에디슨웨슬리 출판사의 마틴 파울러 시리즈의 하나인 이 책은 기업용 애플리케이션의 통합과 메시지 기반 미들웨어를 사용하는 다수의 설계 패턴에 대해 설명한다.

아파치 카멜은 이런 기업 통합 패턴의 구현체다. 동일한 목적으로 스프링 인티그레이션(Spring Integration)이나 뮬 ESB(Mule ESB) 같은 프레임워크가 있으나 카멜이 사실상 표준이라고 할 수 있을 정도로 많이 사용되고 있고 이미 성숙도가 높다.

기업용 애플리케이션 통합을 위해서 기업 통합 패턴, 즉 카멜을 사용한다는 것은 비동기 메시지 기반 아키텍처를 도입한다는 것을 뜻한다. 이것은 고성능의 대용량 분산시스템 구축과 통합을 위한 최선의 방법이며, 최근에는 일반 웹 어플리케이션에서도 성능과 확장성을 위해 비동기 메시징을 사용하는 경우가 많다.

카멜을 사용하면 많은 문제에 대해서는 이미 만들어져있는 컴포넌트 등을 조합해 XML 설정이나 간단한 코드로도 원하는 통합이 가능하고, 새로운 문제에 대해서는 직접 컴포넌트를 제작할 수 있다. 그리고 많이들 사용하고 있는 스프링 프레임워크와의 통합도 아주 쉽기 때문에 어렵지 않게 접근할 수 있다.

이 책은 카멜이나 기업 통합 패턴을 설명하기보다는 같이 실행해보면서 배우는 책이다. 카멜에 대해서 들어는 봤지만 실제로 아직 실행해보지 않았거나, 사용하고 있지만 다른 패턴들을 배우거나 참고하고자 하는 개발자들에게 많은 도움이 될 것이다.

이 책은 각 패턴의 개념을 깊게 설명하지 않는다. 요리책같이 실무에서 마주칠 수 있는 문제에 대해 여러 해결 방법 중 하나의 예제를 제시할 뿐이다. 각 예제에는 문제가 있고 그 문제와 해결 방법에 대해 설명하고 있지만, 그것만으로는 부족할 수 있다. 예제 코드를 다운로드하여 실행해보고 조금씩 고쳐서 다시 실행하는 것을 반복한다면 책이 전달하고자 하는 지식을 자기 자신의 것으로 만들 수 있을 것이다.

목차

지은이 소개
감사의 글
기술 감수자 소개
옮긴이 소개
옮긴이의 말
들어가며

1장 루트 구성
__소개
__자바 애플리케이션에서 카멜 사용하기
__스프링 애플리케이션에 카멜 내장하기
__카멜 컴포넌트 사용하기
__루트를 연결해 라우팅 로직 재사용하기
__비동기적으로 루트 연결하기
__단일 자바 프로세스에서 복수의 카멜 컨텍스트 사용하기
__카멜 루트에서 외부 속성 사용하기
__엔드포인트 재사용하기
__루트 템플릿으로 라우팅 로직 재사용하기
__루트 시작과 종료 제어하기

2장 메시지 라우팅
__소개
__내용 기반 라우팅
__원치않는 메시지 제외하기
__와이어탭: 메시지 복제본을 다른 곳으로 보내기
__멀티캐스트: 동일한 메시지를 여러 엔드포인트로 라우팅하기
__수신자 목록: 메시지를 여러 개의 엔드포인트로 라우팅하기
__조절기: 엔드포인트로 흐르는 메시지 개수 제한하기
__단방향 메시지를 보내는 요청-응답 루트
__요청-응답 엔드포인트를 기다리는 단방향 루트
__동적 라우팅: 실행 중에 라우팅 결정하기
__여러 엔드포인트로 부하 분산하기
__라우팅 슬립: 메시지를 고정된 여러 개의 엔드포인트로 라우팅하기

3장 사용자 코드로 라우팅
__소개
__메시지를 직접 자바 메소드로 라우팅하기
__메시지를 직접 카멜 엔드포인트로 라우팅하기
__조건서술로 자바 메소드 사용하기
__커스텀 카멜 프로세서 작성하기
__메시지를 메소드 파라미터에 매핑하기
__커스텀 데이터 마샬러 작성하기
__커스텀 데이터 타입 변환기 작성하기

4장 전환
__소개
__단순 표현식을 사용해 전환하기
__인라인에서 XQuery를 이용해 전환하기
__XSLT를 이용해 전환하기
__JAXB를 이용해 자바에서 XML로 전환하기
__자바에서 JSON으로 전환하기
__XML에서 JSON으로 전환하기
__콤마로 구분된 값(CSV) 분석하기
__다른 엔드포인트의 도움을 받아 내용 전환하기
__공통 XML 형식으로 메시지 표준화하기

5장 분리하기와 합치기
__소개
__메시지를 조각으로 분리하기
__XML 메시지 분리하기
__분리된 메시지를 병렬로 처리하기
__관련 메시지 합치기
__타임아웃을 이용해 합치기
__일정 간격으로 합치기
__합친 메시지를 병렬로 처리하기
__메시지를 분리, 처리하고 응답 합치기
__메시지를 분리하고 다른 기준으로 다시 합치기

6장 병렬 처리
__소개
__여러 개의 엔드포인트 컨슈머로 메시지 소비 향상하기
__스레드를 사용해 루트에서 부하 분산하기
__요청을 비동기적으로 라우팅하기
__커스텀 스레드 풀 사용하기
__스레드 풀 프로파일 사용하기
__비동기 API 사용해 작업하기

7장 에러 처리와 보상
__소개
__에러 로깅하기
__발송 불가 채널: 추후에 에러 처리하기
__동작 재시도 하기
__조건적 재시도하기
__각각의 재배달 시도를 커스터마이징하기
__예외 잡기
__예외 처리 상태로 표시하기
__doTry...doCatch를 사용해 에러를 세밀하게 처리하기
__액션 완료 정의하기
__액션 완료를 동적으로 정의하기

8장 트랜잭션과 멱등성
__소개
__라우팅 로직의 중복 실행 방지하기
__트랜잭션을 사용한 파일 소비
__데이터베이스에 트랜잭션 사용하기
__트랜잭션 범위 제한하기
__트랜잭션 롤백하기
__메시징에 트랜잭션 사용하기
__트랜잭션 내의 멱등성
__복수 트랙잭션 자원에 XA 트랜잭션 설정하기

9장 테스팅
__소개
__자바로 정의한 루트 테스트하기
__라우팅 로직 검증을 위한 목 엔드포인트 사용하기
__목 엔드포인트로부터 응답하기
__스프링에 정의한 루트 테스트하기
__OSGi 블루프린트에서 정의한 루트 테스트하기
__엔드포인트 자동 모형화하기
__부하 시 루트 행위 유효성 검사하기
__단위 테스트 프로세서와 빈(bean) 바인딩
__AOP를 사용해 고정된 엔드포인트로 루트 테스트하기
__조건 이벤트를 사용 고정된 엔드포인트로 루트 테스트하기

10장 모니터링과 디버깅
__소개
__루트 내에서 단계별로 로깅하기
__로그를 사용해 디버깅하기
__사용량 로깅
__코드에서 단계별 추적 가능하게 하기
__JMX 비활성화하기
__JMX 설정하기
__루트를 모니터링하기 쉽게 이름짓기
__JXM 속성과 동작 추가하기
__카멜 JMX 컴포넌트를 사용해 다른 시스템 모니터링하기
__루트 내에 브레이크포인트 지정하기

11장 보안
__소개
__설정 속성 암호화하기
__디지털 사인하기와 메시지 검증하기
__메시지 암복호화하기
__XML 메시지 전부 혹은 부분 암호화하기
__스프링 시큐리티를 사용한 인증과 권한부여하기

12장 웹 서비스
__소개
__WSDL로 서비스 스텁 생성하기
__카멜에서 원격 웹 서비스 호출하기
__카멜 루트로 웹 서비스 구현하기
__단일 루트 내에서 여러 개의 웹 서비스 동작 제공하기
__웹 서비스 오류 다루기
__웹 서비스 대리하기

찾아보기

저자소개

저자 스콧 크랜튼(Scott Cranton)은 오픈소스 소프트웨어 컨트리뷰터이자 에반젤리스트다. 거의 5년 전 1.5 버전부터 아파치 카멜로 작업을 해왔으며 그리고 미들웨어 개발자, 아키텍트, 컨설턴트로 20년이 넘게 활동해왔다. 퓨즈소스(FuseSource)에서, 그리고 지금 레드햇에 있는 동안 아파치 카멜, ActiveMQ, ServieMix, Karaf, CXF의 핵심 커미터들과 가깝게 일해왔다. 또한 카멜을 비롯한 오픈소스 프로젝트를 사용해 많은 회사가 대용량의 복잡한 통합과 메시징 시스템을 성공적으로 만들고 적용하는 것을 도왔다.
코드를 파고들고, 카멜과 오픈소스에 관한 웨비나(webinar)에서 발표를 하고, 통합 문제들을 해결하기 위해 카멜을 사용하는 법을 가르치는 데 시간을 보낸다.

도서소개

[아파치 Camel 따라잡기]는 아파치 카멜을 이미 조금은 알고 있고 실제적이고 증명된 팁을 빨리 찾길 원하는 개발자들을 위해 예제 형식으로 구성되었다. 각 예제에는 카멜의 더 깊은 기능을 이해하기 위한 참조 링크와 문서도 포함했다. 책에는 카멜 프로젝트를 구성하는 방법, 공통적인 엔터프라이즈 통합 패턴 사용 이해, 사용자 메시지 전환, 카멜 내장 테스트 프레임워크 사용, 기존 코드와 더 잘 동작하도록 카멜 확장, 에러 처리의 대한 정책 배우기, 카멜의 병렬 처리와 스레딩 기능 사용하기, 카멜에서 ACID 트랜잭션 처리 이해하기 등을 다루고 있다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.