Top

스프링 웹 서비스 개발 [예제로 배우는 웹 서비스 엔드포인트 구성과 테스팅]

  • 원서명Spring Web Services 2 Cookbook (ISBN 9781849515825)
  • 지은이하미드레자 사타리(Hamidreza Sattari), 샤미어 쿤주모하메드(Shameer Kunjumohamed)
  • 옮긴이김명훈
  • ISBN : 9788960777606
  • 30,000원
  • 2015년 09월 25일 펴냄
  • 페이퍼백 | 376쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

요약

이 책은 스프링 웹 서비스를 사용하여 구현할 수 있는 다양한 기능들을 예제 중심으로 일목요연하게 정리하여 효과적인 참고가 가능하다. 주로 프로토콜별 SOAP 웹 서비스 엔드포인트 구현방법과 웹 서비스 테스트 기법, soapUI, TCPMon을 활용한 웹 서비스 모니터링, 다양한 마샬링/언마샬링 방법, RESTful 기반의 웹 서비스 개발을 다룬다.

이 책에서 다루는 내용

■ HTTP, 자바 메시지 서비스, XMPP, 이메일 같은 다양한 프로토콜을 사용한 SOAP 웹 서비스 구성
■ DOM, JDOM, X패스(XPath) 기술을 사용한 웹 서비스 엔드포인트 구현
■ 스프링 웹 서비스 최신 기술을 사용한 웹 서비스 테스트
■ soapUI, TCPMon을 활용한 웹 서비스 모니터링 자동화
■ JAXB2, XML빈즈(XMLbeans), X스트림(XStream)을 사용한 마샬링/언마샬링
■ 스프링 RESTful 지원으로 REST 웹 서비스 개발

이 책의 대상 독자

이 책은 웹 서비스를 경험해본 적이 있거나, 처음인 자바/J2EE 개발자들을 위한 책이다. 다양한 웹 서비스 개발 예제들은 이미 웹 서비스에 친숙한 독자에게는 훌륭한 참고자료가 될 것이고, 초심자에게는 웹 서비스 개발을 더욱 빠르게 습득하는 데 도움을 줄 것이다.

이 책의 구성

1장, ‘SOAP 웹 서비스 구성’에서는 HTTP, JMS, XMPP, 이메일 프로토콜을 사용해 SOAP 웹 서비스를 구성하는 방법을 다룬다. DOM, JDOM, X패스, 마샬러 등을 사용해 다른 방식으로 웹 서비스 엔드포인트를 실행하는 법도 다룰 것이다.

2장, ‘SOAP 웹 서비스 클라이언트 구성’에서는 스프링 웹 서비스 템플릿 클래스를 사용해 HTTP, JMS, XMPP, 이메일 프로토콜 기반의 클라이언트 측 SOAP 웹 서비스를 생성하는 방법을 다룬다.

3장, ‘웹 서비스 테스트 및 모니터링’에서는 스프링 웹 서비스 최신 버전을 활용한 웹 서비스 테스트 기법과 soapUI, TCPMon과 같은 도구를 사용한 웹 서비스를 모니터링 방법을 소개한다.

4장, ‘예외/SOAP 오류 처리’에서는 애플리케이션이나 시스템 오류로 인한 예외를 처리하는 법을 설명한다.

5장, ‘SOAP 메시지 로깅/추적’에서는 웹 서비스 실행 시 발생한 중요한 이벤트에 대한 로깅과 이력 추적 방법을 살펴본다.

6장, ‘마샬링, 객체와 XML 간 매핑’에서는 사용자 정의 마샬러를 생성해보고 마샬링/언마샬링 기술에 대해 알아볼 것이다.

7장, ‘XWSS 라이브러리를 사용한 SOAP 웹 서비스 보안’에서는 XWSS 기반의 암호화, 복호화, 전자서명 인증, 스프링 웹 서비스 특성을 활용한 권한관리, 키스토어 생성 등에 대해 다룬다.

8장, ‘WSS4J 라이브러리를 사용한 SOAP 웹 서비스 보안’에서는 WSS4J 기반의 암호화, 복호화, 전자서명 인증, 스프링 웹 서비스 특성을 활용한 권한관리 등에 대해 다룬다.

9장, ‘RESTful 웹 서비스’에서는 스프링에서 제공하는 RESTful 방식을 사용해 REST 스타일의 웹 서비스를 개발하는 방법을 설명한다.

10장, ‘스프링 리모팅’에서는 스프링 리모팅을 활용해 로컬 비즈니스 서비스를 헤쎈(Hessian)/벌랩(Burlap), JAX-WS, JMS를 사용한 웹 서비스 형태로 노출하는 contract-last 방식의 웹 서비스 개발에 대해 알아보고 아파치 CXF의 JAX-WS API를 사용해 웹 서비스를 구성하는 방법에 대해서도 알아본다.

저자/역자 소개

지은이의 말

스프링 웹 서비스는 스프링 소스 커뮤니티(http://www.springsource.org/) 산하 프로젝트로 WSDL나 XSD의 생성이 필수인 contract-first1 형태의 SOAP 웹 서비스 생성에 사용된다. 스프링 기반의 제품이므로, 제어의 역전(IOC, Inversion of Control), 의존성 주입(DI, Dependency Injection) 등의 스프링 주요 개념을 사용할 수 있는 장점이 있다. 스프링 웹 서비스의 주요 특징은 다음과 같다.

■ 강력한 엔드포인트 매핑: 수신 XML 요청을 페이로드(payload)에 기반을 둔 핸들러 객체, SOAP 액션, X패스(XPath) 표현식 등으로 전달할 수 있다.
■ 다양한 XML API 지원: DOM, JDOM, dom4j 등 다양한 자바 XML API를 이용하여 수신 XML 메시지를 해석할 수 있다.
■ 메이븐(Maven)을 이용한 빌드: 메이븐 프로젝트와 통합이 쉽다.
■ 마샬링 기술 제공: XML 메시지의 객체 변환을 지원하는 JAXB, XML빈(XMLBean), X스트림(XStream), JiBX 등의 OXM2 기술을 제공한다.
■ 보안: 암호화/복호화, 전자서명, 인증 등의 보안 옵션을 사용한다.

이 책에서는 이와 같은 스프링 웹 서비스 2.x의 주요 특징에 대해 모두 다루는 것이 목표다.
그러나 마지막 두 장(9장, 10장)에서는 조금 다른 방향의 웹 서비스 개발에 대해 다뤄보고자 한다. 한 가지는 REST 스타일의 웹 서비스이고, 다른 하나는 스프링 리모팅 특성을 활용한 contract-last3 형태의 웹 서비스다.

지은이 소개

하미드레자 사타리(Hamidreza Sattari)

2002년부터 소프트웨어 개발을 시작하여 소프트웨어 공학의 여러 영역에서 운영 및 프로그래밍과 아키텍처 업무를 수행해왔다. 주 관심 영역은 애플리케이션 간의 통합이다.
1994년 이란의 테헤란 아자드(Tehran Azad) 대학에서 전기(전자)공학 학사 학위를 취득하고, 2008년 영국의 헤리엇 와트(Herriot Watt) 대학에서 소프트웨어 공학 석사 학위를 취득했다. 최근에 흥미를 느끼고 있는 연구 영역은 알고리즘과 패턴인식, 추정, 기계인식 같은 통계 기술을 이용한 과학적 데이터 마이닝이다.
justdeveloped-blog.blogspot.com 블로그를 운영하고 있다.

샤미어 쿤주모하메드(Shameer Kunjumohamed)

기업용 애플리케이션 통합과 SOA 분야에 특화된 소프트웨어 아키텍트로 J2EE와 마이크로소프트 .NET 전문가다. 안드로이드, 블랙베리, 그 외 오늘날 시장에 나와있는 모바일 크로스 플랫폼 등 다양한 모바일 플랫폼에 관심이 많다. 2000년에 인도의 캘리컷(Calicut) 대학을 졸업한 후 소프트웨어 공학 분야에서 다양한 역할을 수행했다. 2009년 헤리엇 와트 대학(두바이 캠퍼스)에서 소프트웨어 공학 석사 학위를 취득하였고, 웰로직 ME(Wellogic ME)에 소속되어 두바이 인터넷 시티(Dubai Internet City)에서 일했다. 현재는 두바이, UAE에서 솔루션 아키텍트로 일하고 있으며, 헤리엇 와트 대학의 정보기술 전공 대학원생들을 대상으로 특별 강사도 하고 있다.
justcompiled.blogspot.com 블로그를 운영하고 있다.

옮긴이의 말

다년간 다양한 SI 프로젝트를 경험하면서 수없이 많은 타 시스템, 기존 시스템과의 연계 작업을 진행해왔으나, 매번 새롭고 할 때마다 처음부터 시작하는 기분을 느끼는 것은 비단 저뿐만이 아닐 것입니다. 웹 서비스는 SOAP이라는 프로토콜을 표준 규약으로 삼고 있지만, 실제 이를 구현하는 하위 애플리케이션이 매우 다양해 웹 서비스를 제공하는 측면에서도 어떤 구현체를 사용해 제공할 것인지를 고심하고, 웹 서비스를 사용하는 측면에서도 어떤 구현체를 사용해 웹 서비스를 사용할 것인지 고민하게 마련입니다.
스프링(Spring)은 웹 애플리케이션 프레임워크 분야에서 수많은 개발자들이 대동단결해 폭넓은 프레임워크를 이뤄냈으며, 이를 무기 삼아 다양한 연계 방식의 한 가지 패러다임인 웹 서비스 분야에서도 간결하고 빠른 적용이 가능한 프레임워크를 소개했습니다. 그것이 바로 스프링 웹 서비스(Spring web service)입니다. 고민이 되었던 SOAP의 구현을 스프링이라는 추상화된 프레임워크로 감싸, 설정과 간단한 공통 조작만으로 상세 소스 코드의 변경 없이 웹 서비스의 구현체를 변경 가능하도록 구성한 것은 스프링 웹 서비스의 가장 큰 무기라 할 수 있겠습니다.
이 책은 스프링 웹 서비스가 제공하는 다양한 기능을 예제 중심으로 소개해, 특정 기능이 필요하거나 당장 시연이 필요한 기능 개발을 진행해야 하는 개발자가 보기에 더할 나위 없는 참고 서적입니다. 저 또한 번역을 진행하면서 실제 업무에서 몇 가지 예제를 가져다가 변경해 썼던 기억이 있는 만큼 독자들께도 분명히 유익할 것입니다.

옮긴이 소개

김명훈

산업 공학을 전공하고 생산/품질 관리의 길을 걸을 준비를 하다 적성에 맞지 않는 과목을 접어두고 프로그래머의 길을 택한 후천성 프로그래머다. 현재 삼성 SDS에 근무 중이며, 주로 소프트웨어 아키텍처의 역할을 담당하다가 지금은 영상 분석 및 감시 솔루션을 만드는 데 열정을 불태우고 있다. 자바의 J2EE 환경과 하둡 기반의 빅데이터 환경에 관심이 많으며 늦게 배운 C++와 C# 계열의 프로그래밍에도 흥미를 느껴 회사 동료들을 괴롭히고 있는 중이다.

목차

목차
  • 1. SOAP 웹 서비스 구성
    • 소개
    • 메이븐을 사용한 스프링 웹 서비스 프로젝트의 구성 및 실행
    • 데이터 콘트랙트 생성
    • 디스패처 서블릿을 이용한 웹 서비스 설정
    • 메시지 디스패처 서블릿을 활용한 웹 서비스 생성 간소화
    • 자바 메시지 서비스 기반의 웹 서비스 구성
    • 이메일 전송 프로토콜 기반의 웹 서비스 구성
    • 내장 HTTP 서버 기반의 웹 서비스 구성
    • XMPP 기반의 웹 서비스 구성
    • contract-first 웹 서비스 구성
    • 간단한 웹 서비스 엔드포인트 매핑 구성
    • 페이로드 루트 어노테이션을 활용한 엔드포인트 구성
    • 전송 방식에 중립적인 웹 서비스 어드레싱 엔드포인트 구성
    • X패스 표현식을 사용한 엔드포인트 구성
    • DOM을 사용한 수신 XML 메시지 핸들링
    • JDOM을 사용한 수신 XML 메시지 핸들링
    • JAXB2를 사용한 수신 XML 메시지 핸들링
    • 인터셉터를 사용한 서버 측 XML 메시지 검증

  • 2. SOAP 웹 서비스 클라이언트 구성
    • 소개
    • 이클립스를 이용한 웹 서비스 클라이언트 개발 환경 구성
    • 메이븐을 이용한 웹 서비스 클라이언트 개발 환경 구성
    • HTTP 전송 방식의 웹 서비스 클라이언트 생성
    • 자바 메시지 서비스 전송 방식의 웹 서비스 클라이언트 생성
    • 이메일 전송 방식의 웹 서비스 클라이언트 생성
    • XMPP 전송 방식의 웹 서비스 클라이언트 생성
    • X패스 표현식을 이용한 웹 서비스 클라이언트 생성
    • 웹 서비스 어드레싱 엔드포인트용 웹 서비스 클라이언트 생성
    • XSLT를 사용한 웹 서비스 메시지 전송

  • 3. 웹 서비스 테스트 및 모니터링
    • 소개
    • 스프링 JUnit을 활용한 통합테스트
    • 목 웹 서비스 클라이언트를 사용한 서버 측 통합테스트
    • 목 웹 서비스 서버를 사용한 클라이언트 측 통합테스트
    • TCPMon을 사용한 TCP 메시지 모니터링
    • soapUI를 사용한 웹 서비스 로드/기능 테스트 및 모니터링

  • 4. 예외/SOAP 오류 처리
    • 소개
    • SOAP 오류 문자열로 예외 메시지를 반환하여 서버 측 예외처리
    • SOAP 오류와 예외 클래스 이름 매핑
    • @SOAPFault 어노테이션으로 예외 클래스 지정
    • 스프링 웹 서비스에 사용자 정의 예외 리졸버 작성

  • 5. SOAP 메시지 로깅/추적
    • 소개
    • 메시지 페이로드 로깅
    • log4j를 사용한 요청/응답 메시지 SOAP 인벨롭 로깅
    • 스프링 웹 서비스 인터셉터를 사용한 요청/응답 메시지 로깅
    • 이클립스 활용 스프링 웹 서비스 디버깅

  • 6. 마샬링, 객체와 XML 간 매핑
    • 소개
    • JAXB2를 이용한 마샬링
    • XML빈즈를 이용한 마샬링
    • JiBX를 이용한 마샬링
    • X스트림을 이용한 마샬링
    • 무스XML을 이용한 마샬링
    • X패스를 사용하여 조건부 XML 파싱을 위한 사용자 정의 마샬러 생성

  • 7. XWSS 라이브러리를 사용한 SOAP 웹 서비스 보안
    • 소개
    • 사용자 이름 토큰을 사용한 웹 서비스 호출 인증
    • 사용자 이름과 비밀번호 인증에 스프링 시큐리티를 사용한 웹 서비스 호출 인증
    • 사용자 이름 토큰 인증에 JAAS 서비스를 사용한 웹 서비스 호출 인증
    • 키 쌍과 대칭 키 키스토어 준비
    • 디지털 서명을 사용한 SOAP 메시지 보안
    • X509 인증서를 사용한 웹 서비스 호출 인증
    • SOAP 메시지 암복호화

  • 8. WSS4J 라이브러리를 사용한 SOAP 웹 서비스 보안
    • 소개
    • 사용자 이름 토큰을 사용한 웹 서비스 호출 인증
    • 사용자 이름과 비밀번호 인증에 스프링 시큐리티를 사용한 웹 서비스 호출 인증
    • 디지털 서명을 사용한 SOAP 메시지 보안
    • X509 인증서를 사용한 웹 서비스 호출 인증
    • SOAP 메시지 암복호화

  • 9. RESTful 웹 서비스
    • 소개
    • 스프링 MVC의 RESTful 특성을 사용한 스프링 RESTful 웹 서비스 구성
    • REST 클라이언트 도구를 사용한 RESTful 웹 서비스 접속
    • HTTP 메시지 변환을 사용한 스프링 RESTful 웹 서비스 구성
    • 스프링 템플릿 클래스를 사용한 스프링 RESTful 웹 서비스용 클라이언트 구성

  • 10. 스프링 리모팅
    • 소개
    • 원격 메소드 호출을 사용한 웹 서비스 구성
    • 헤쎈/벌랩을 사용한 서블릿 기반의 웹 서비스 구성, 비즈니스 빈 노출
    • JAX-WS를 사용한 웹 서비스 구성
    • 아파치 CXF를 사용한 서블릿 기반의 웹 서비스 노출
    • 자바 메시지 서비스 프로토콜을 사용한 웹 서비스 노출

도서 오류 신고

도서 오류 신고

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

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

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