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

스콧크랜튼,야쿱코랍

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

목차

목차
지은이소개
감사의글
기술감수자소개
옮긴이소개
옮긴이의말
들어가며
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로서비스스텁생성하기
__카멜에서원격웹서비스호출하기
__카멜루트로웹서비스구현하기
__단일루트내에서여러개의웹서비스동작제공하기
__웹서비스오류다루기
__웹서비스대리하기
찾아보기

출판사 서평

출판사서평
★요약★
아파치카멜은기업통합패턴(EnterpriseIntegrationPatterns)을자바로구현하게하는훌륭한도구다.카멜을통해일반적인통합작업을쉽게가능하게하며,상황이요구할때에는개발자가프레임워크를커스터마이징하는수단을제공한다.이책은아파치카멜을이미조금은알고있고실제적이고증명된팁을빨리찾길원하는개발자들을위해예제형식으로구성되었다.각예제에는카멜의더깊은기능을이해하기위한참조링크와문서도포함했다.
★이책에서다루는내용★
■...
★요약★
아파치카멜은기업통합패턴(EnterpriseIntegrationPatterns)을자바로구현하게하는훌륭한도구다.카멜을통해일반적인통합작업을쉽게가능하게하며,상황이요구할때에는개발자가프레임워크를커스터마이징하는수단을제공한다.이책은아파치카멜을이미조금은알고있고실제적이고증명된팁을빨리찾길원하는개발자들을위해예제형식으로구성되었다.각예제에는카멜의더깊은기능을이해하기위한참조링크와문서도포함했다.
★이책에서다루는내용★
■카멜프로젝트를구성하는방법
■공통적인엔터프라이즈통합패턴사용이해
■사용자메시지전환
■카멜내장테스트프레임워크사용
■기존코드와더잘동작하도록카멜확장
■에러처리정책학습
■카멜의병렬처리와스레딩기능사용
■카멜통합루트보안
■카멜에서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처럼행동하는웹서비스를호출하는방법을살펴본다.
★저자서문★
아파치카멜은시스템통합(systemintegrations)을위한자바프레임워크다.
왜이런프레임워크가필요한가라고질문할수있겠다.시스템통합은많은부분이해결된주제다.우리는다양한프론트엔드를오래전부터웹서비스,메시지브로커,데이터베이스에어떻게든연동해왔다.확실히시스템통합은추상화를필요로하지않는,잘알려진영역이다.
하지만꼭그렇지도않다.
스프링프레임워크가2003년이후자바EE시장의판도를뒤바꿔놓았던것처럼,아파치카멜은2007년에출시된이후로시스템통합시장의균형을흔들어왔다.카멜은훨씬간결하고쉬운코드를생산하는시스템통합을생각하고행하는새로운길을가능케하고,더적은노력으로오류를줄이고유지보수를손쉽게만들었다.활발히움직이는대규모아파치카멜커뮤니티와카멜에기반한상용통합제품의수가얼마나늘었는지,그리고미들웨어개발자컨퍼런스에서회자되는카멜에대한논의가얼마나많아졌는지등이카멜에대한호평을입증할수있는근거가될것이다.
이책은카멜을이미좀알고있고,통합에관한복잡한문제를풀기위해카멜이어떻게더도움이될지팁을찾는독자들을대상으로한다.이책은일반적인통합작업을해결하기위해카멜을사용하는단계별설명이포함된100개가넘는예제가담겨있다.각예제에서는카멜이내부적으로어떤작업을수행하는지를간단히설명하고,심도있는학습을원하는사람들을위한추가정보등을알려줄것이다.
이책은카멜을처음시작하는사람에게는적합하지않을수도있다.하지만다른통합기술에벌써익숙해있고,사용하면서배우길원한다면이책의예제들에서도움을받을수있을것이다.따라서여기서는카멜의개념에대해서깊은설명을하지는않을것이다.
많은예제코드와함께카멜의개념적인내용을더원하는독자는,클라우스입센(ClausIbsen)과조나단앤스티(JonathanAnstey)가저술한매닝(Manning)출판사의『CamelinAction』을읽어보길권한다.한권더소개하자면,팩트출판사에서발간된빌긴이브라이엄(BilginIbryam)의『InstantApacheCamelMessageRouting』(2013)을보라.카멜공식웹사이트(http://camel.apache.org)도카멜을사용하는데있어서도움이되는글과문서리스트를많이다룬다.
★옮긴이의말★
2003년에그레거호프와바비울프의공동저작으로『기업통합패턴(EnterpriseIntegration
Patterns)』이출간되었다(최근에이콘출판사에서번역본이나왔다.)에디슨웨슬리출판사의마틴파울러시리즈의하나인이책은기업용애플리케이션의통합과메시지기반미들웨어를사용하는다수의설계패턴에대해설명한다.
아파치카멜은이런기업통합패턴의구현체다.동일한목적으로스프링인티그레이션(SpringIntegration)이나뮬ESB(MuleESB)같은프레임워크가있으나카멜이사실상표준이라고할수있을정도로많이사용되고있고이미성숙도가높다.
기업용애플리케이션통합을위해서기업통합패턴,즉카멜을사용한다는것은비동기메시지기반아키텍처를도입한다는것을뜻한다.이것은고성능의대용량분산시스템구축과통합을위한최선의방법이며,최근에는일반웹어플리케이션에서도성능과확장성을위해비동기메시징을사용하는경우가많다.
카멜을사용하면많은문제에대해서는이미만들어져있는컴포넌트등을조합해XML설정이나간단한코드로도원하는통합이가능하고,새로운문제에대해서는직접컴포넌트를제작할수있다.그리고많이들사용하고있는스프링프레임워크와의통합도아주쉽기때문에어렵지않게