Top

Jersey 2.0으로 개발하는 RESTful 웹 서비스

  • 원서명Developing RESTful Web Services with Jersey 2.0 (ISBN 9781783288298)
  • 지은이수닐 굴라바니
  • 옮긴이윤창석
  • ISBN : 9788960775343
  • 12,000원
  • 2014년 03월 21일 펴냄
  • 페이퍼백 | 128쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

이 책은 저지(Jersey)의 API를 활용해 레스트풀(RESTful) 웹 서비스를 개발하는 방법을 설명한다. 저지는 레스트풀 서비스를 위한 자바의 표준 API인 JAX-RS 2.0(JSR 399)의 참조 구현으로, 강경한 레스트풀 웹 서비스를 효과적으로 구축할 수 있게 해준다. 이 책은 풍부한 예제와 바탕으로 저지의 활용에 필수적인 사항에 집중하고 있기 때문에, 쉽고 빠르게 저지의 API를 익히고 레스트풀 서비스를 구현할 수 있는 훌륭한 지침서가 될 것이다.

이 책에서 다루는 내용

■ 여러 HTTP 메소드와 *Param 애노테이션을 활용해 웹 서비스를 구현하는 방법
■ 리소스와 서브리소스 메소드를 생성하는 방법
■ 루트리소스 클래스의 주입 규칙과 범위
■ 애플리케이션의 다양한 배포 프로세스
■ 여러 HTTP 메소드와 *Param 애노테이션으로 웹 서비스를 사용하는 방법
■ 여러 미디어 표현(JSON, XML, 다중 구성)
■ WADL 명세 생성

이 책의 대상 독자

이 책은 REST 아키텍처로 애플리케이션을 구축하는 자바EE 개발자를 위한 책이다. 또한 JAX-RS 2.0을 빠르게 학습할 수 있는 가이드로서, 독자는 반드시 레스트풀 웹 서비스를 알아야 하지만, JAX-RS 1.0에 관해서는 몰라도 상관 없다.

이 책의 구성

1장 '시작하기'에선 클라이언트 API, 필터(filter)와 인터셉터(interceptor), 클라이언트 측과 서버 측의 비동기성 같은 JAX-RS 2.0에 추가된 새로운 기능을 간략히 살펴본다. 또한, JAX-RS 2.0을 구현하기 위해 사용한 모듈과 의존성 목록 같은 중요 내용도 함께 다룬다.

2장 '서버 API'에선 리소스 클래스와 메소드를 만드는 방법, 사용자 정의 값에 접근하기 위한 파라미터 애노테이션의 사용법, 리소스 메소드를 사용하기 위한 서브리소스에 관해 알아본다. 루트리소스 클래스에 접근할 수 있을 때가 언젠지 살펴보고, 값에 접근하기 위해 경로 애노테이션을 주입하는 규칙을 알아본다. 마지막으로 Application 모델 또는 ResourceConfig를 사용하는 방법이나 Application 모델을 사용하지 않는 방법 등 리소스 클래스를 불러오는 여러 방법을 배운다.

3장 '클라이언트 API'에선 JAX-RS 클라이언트 API를 통해 레스트풀 웹 서비스를 사용하는 방법을 보여준다. 클라이언트 API를 통해 모든 CRUD 동작을 수행할 수 있도록 여러 HTTP 헤더와 *Param 애노테이션으로 웹 서비스를 호출하는 방법을 다룬다. JAX-RS는 HTTP의 래퍼(wrapper) 클래스기 때문에 HTTP 프로토콜에 기반한 모든 웹 서비스에 사용할 수 있다. JAX-RS 클라이언트 API는 REST 아키텍처가 구현하는 균일성을 따른다.

4장 '공통 미디어 타입 표현'에선 데이터의 다양한 표현을 다룬다. 데이터 표현은 모든 애플리케이션의 최우선 결정 사항이다. 웹 서비스를 사용할 클라이언트에 기반해 올바른 표현을 결정해야 한다. 또한, 서버 측과 클라이언트 측에서 여러 표현을 구현하는 방식을 살펴본다.

5장 '서버 발송 이벤트(SSE)'에선 클라이언트/서버 사이에 연결을 만드는 방법과 서버단에서 연결을 관리하는 방법을 다룬다. 이는 클라이언트가 새로운 요청을 시작하지 않고 서버에서 클라이언트로 데이터를 푸시하기 위해 필요하다. 이런 유형의 방식은 기본적으로 채팅이나 주식 시장, 실시간 데이터 제공 애플리케이션 등에서 사용된다.

6장 'WADL'에선 배포된 레스트풀 웹 서비스의 골격을 나타내는 웹 애플리케이션 기술 언어(WADL)를 알아본다.

저자/역자 소개

지은이 서문

이 책은 자바를 사용해 JAX-RS 2.0 레스트풀 웹 서비스를 개발하는 방법을 다룬다. JAX-RS 2.0에 추가된 새로운 기능을 설명하고, 서버 측과 클라이언트 측의 실용 예제를 제공한다. 또, JSON과 XML, 다중 구성(multipart) 같은 여러 미디어 표현(media representation)을 구현하는 방법도 다룬다. 이 외에도 최신 HTML5 기능인 서버 발송 이벤트(Server-Sent Event, SSE)도 살펴본다. 기본적으로 SSE는 서버가 클라이언트로 이벤트를 푸시하는 실시간 애플리케이션에서 사용된다. 마지막으로 웹 애플리케이션 기술 언어(Web Application Description Language, WADL)라고 불리는 XML 명세를 생성하는 방법을 알아 본다.

지은이 소개

수닐 굴라바니(Sunil Gulabani)

인도 구자라트(Gujarat)의 아마다바드(Ahmedabad)에서 활동하는 소프트웨어 엔지니어다. S.M. 파텔 인스티튜트 인 커머스(SMPIC, S.M. Patel Institute of Commerce)를 졸업하고 아마다바드 에듀케이션 소사이어티 인스티튜트 오브 컴퓨터 스터디스(Ahmedabad Education Society Institute of Computer Studies, AESICS)에서 최고의 성적을 거두며 석사 학위를 취득했다. 또한, 비나이 바흐하라자니(Vinay Vachharajani)와 조티 파릭(Dr. Jyoti Pareek)과 함께 IEEE의 ‘교육을 위한 테크놀로지(Technology for Education, T4E)’ 컨퍼런스에서 '유스케이스 다이어그램의 자동 진화를 위한 효과적인 이름 매칭(Effective Label Matching for Automated Evaluation of Use Case Diagram)' 논문을 발표했다.

2011년부터 소프트웨어 엔지니어로 일하기 시작했고 클라우드 기술에 조예가 깊다. 자바EE와 쏠(SORL), 레스트풀 웹 서비스, GWT, 스마트GWT, 아마존 웹 서비스, 레디스(Redis), 멤캐시디(Memcached), 몽고DB 등을 사용해 엔터프라이즈 솔루션을 개발해왔다. 시스템 아키텍처 및 시스템 통합(SI)을 비롯해 데이터 모델링, 관계형 데이터베이스, 처리량 향상을 위한 NoSQL 매핑 등에 관심이 많다.

이와 함께, 기술 블로그 작성을 즐기며 지식 공유 커뮤니티인 아마다바드 자바 사용자 모임(Java User Group Ahmedabad)에 이름을 올리고 활발히 참여하고 있다.

블로그 http://www.sunilgulabani.com을 방문하거나 twitter.com/sunilgulabani에서 그의 트위터를 팔로우할 수 있으며, sunilgulabani@yahoo.com을 통해 직접 연락할 수 있다.

옮긴이의 말

로이 필딩(Roy Fielding)의 박사 학위 논문에서 처음으로 'REST'라는 용어가 탄생한 이후, 어느덧 10년이 훌쩍 넘었다. 인터넷이라는 거대한 시스템은 레스트풀(RESTful)한 아키텍처 스타일의 컴포넌트로 채워지게 됐고, 아키텍처로서의 중요성과 활용도는 날로 커져만 가고 있다. 우리는 이를 바탕으로 웹이라는 공간에서 성능과 확장성을 높이면서도 신뢰성을 유지할 수 있는 유연한 아키텍처를 구축하고, 간결한 서비스 인터페이스를 제공할 수 있게 됐다.

이러한 변화에 맞춰 자바 엔터프라이즈 플랫폼의 표준화 역시 레스트풀 아키텍처의 중요성을 반영하며 발전해왔다. 활발한 표준화 작업 끝에 2008년도에는 JSR311로 논의되던 JAX-RS(레스트풀 웹 서비스를 위한 자바 API) 1.0이 릴리스됐으며, JSR399 논의를 통해 2013년 5월에 JAX-RS의 2.0 버전이 새롭게 릴리스됐다. 저지는 바로 이 JAX-RS 표준과 함께 릴리스되는 참조 구현(reference implementation)으로서, 개발자가 레스트풀 웹 서비스를 구현하는 훌륭한 기반을 제공한다.

이 책은 이런 레스트풀 아키텍처를 직접 구현해보고자 하는 개발자에게 큰 도움이 될 지침서다. 독자는 이 책을 학습하며 저지를 통해 JAX-RS API의 사용법을 익힐 수 있다. 저자는 독자의 이해를 돕기 위해 많은 예제를 바탕으로 기본에 충실한 설명을 수록했다. 필수적인 내용을 심사숙고해 추려 모으면서도 주요 개념과 기능을 아우르고자 한 이 책 저자의 노력은 레스트풀 웹 서비스 개발에 입문하는 개발자들이 빠르고 효율적으로 자바 기반의 레스트풀 서비스를 구현하는 방법을 익히게 해줄 것이다.

옮긴이 소개

윤창석

포스텍 컴퓨터공학과 학사과정을 마쳤다. 현재 삼성테크윈 선행기술연구소에 재직 중이며, 관심 분야는 소프트웨어 공학, 소프트웨어 제품라인, 소프트웨어 아키텍처다. 『서비스 디자인 패턴 Service Design Patterns』(2013, 에이콘출판)을 번역했다.

목차

목차
  • 1장. 시작하기
  • ___JAX-RS 2.0이란 무엇인가?
  • ______JAX-RS 2.0의 기능
  • ___JAX-RS 아티펙트의 사용 및 재사용 편의성
  • ___모듈과 의존성
  • ___새로운 프로젝트 생성하기
  • ___요약

  • 2장. 서버 API
  • ___루트리소스 클래스
  • ___@Path
  • ______정규 표현식과 함께 사용되는 @Path
  • ___HTTP 메소드
  • ______@GET
  • ______@PUT
  • ______@POST
  • ______@DELETE
  • ______@Produces
  • ______@Consumers
  • ___파라미터 애노테이션
  • ______@PathParam
  • ______@QueryParam
  • ______@DefaultValue
  • ______@MatrixParam
  • ______@HeaderParam
  • ______@CookieParam
  • ______@FormParam
  • ______@BeanParam
  • ___서브리소스
  • ___루트리소스 클래스의 범위
  • ___주입 규칙
  • ___레스트풀 웹 서비스 배포하기
  • ___요약

  • 3장. 클라이언트 API
  • ___클라이언트를 통해 웹 서비스 사용하기
  • ______get 메소드
  • ______post 메소드
  • ______put 메소드
  • ______delete 메소드
  • ______경로 파라미터
  • ______쿼리 파라미터
  • ______쿠키 파라미터
  • ______매트릭스 파라미터
  • ______빈 파라미터
  • ______@Produces 애노테이션
  • ______@Consumes 애노테이션
  • ___Invocation.Builder 사용하기
  • ______새로운 표현에 관한 지원을 추가하기
  • ______클라이언트 전송 커넥터
  • ______클라이언트 보안
  • ___요약

  • 4장. 공통 미디어 타입 표현
  • ___JSON
  • ______MOXy
  • _________ResourceConfig 클래스 사용하기
  • ______JSON 처리를 위한 자바 API (JSON-P)
  • ______잭슨
  • ______제티슨
  • ___XML
  • ______하위 수준 XML 지원
  • ______JAXB 지원
  • ______POJO
  • ___다중 구성
  • ___요약

  • 5장. 서버 발송 이벤트 (SSE)
  • ___시작하기
  • ___서버 발송 이벤트 구현하기
  • ______SSE 이벤트 사용하기
  • ______풀 모델 (EventInput을 사용)
  • ______푸시 모델 (EventSource 사용)
  • ___요약

  • 6장. WADL
  • ___시작하기
  • ___구성
  • ___요약

도서 오류 신고

도서 오류 신고

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

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

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