로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

스프링 인 액션 제2판

   
지은이 Craig Walls/장시형   |   출판사 아이티씨(ITC)  |   발행일 2008년 12월 10일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 37,000원33,300원 10%
마일리지 5% 1,850원
발행일 2008-12-10
ISBN 8990758165 | 9788990758163
기타정보 국내서 | 840쪽
예상출고일
배송비 무료배송
   
개발방법론
종합지수 4p 32 위
   
이 책의 원서
  Spring in Action (2/E)
Manning Publications | Craig Walls
 

[이 책의 내용 및 특징]
스프링 2.0이 출시되자마자 스프링이 자바 개발자 세상에 가져온 혁신과 가치를 기억하고 있던 스프링 커뮤니티는 한껏 고무됐다.

이 스프링 2.0을 친절하게 소개하고 있는 제2판은 베스트셀러였던 제1판의 두 배나 되는 분량으로 스프링 2.0에 대해 알아야 할 모든 내용을 다루고 있다. 이 책에서는 곧바로 예제로 뛰어들기 전에 배경이 되는 중요 개념을 주의 깊게 소개한다. 또한 누구라도 즐겁게 읽을 수 있으며, 스프링을 경험해 본 개발자에게도 가치 있는 내용을 풍부하게 담고 있다.

이 책은 기사, 음유시인, 마술사, 1인 밴드, 학생, 라임, 수하물, 빨간 알약 등의 예제를 통해 새로운 다양한 개념을 설명한다. 이 예제들은 현실 세계의 엔티티 모형을 통해 사고의 지평을 넓혀줄 것이다. 또한 프로그래밍 기법뿐 아니라 해결하고자 하는 비즈니스 도메인과의 상호작용을 통해, 종속객체 주입(dependency injection)과 애스펙트 지향 프로그래밍(aspect-oriented programming)이 실제로 어떻게 작동하는지를 이해할 수 있게 도와줄 것이다.

이 책에서는 종속객체 주입, AOP, 웹 개발 등의 스프링 핵심사항을 다룬다. 그 다음에는 보안, 웹 플로, Ajax, 선언적 트랜잭션, 데이터 영속성과 더불어 스프링-WS, JMS, 리모팅, 스크립팅 지원, 보안 등에 대해서도 자세히 다루고 있다.

[출판에 대한 찬사의 글]
"세심한 곳까지 신경 쓴 훌륭한 책이다. 강력 추천한다." _JavaLobby.org
"즐겁게 스프링을 배울 수 있다. 이 책이 있으면 실패할 수가 없다." _Bill Siggelkow, 『Jakarta Struts Cookbook』의 저자
"진귀한 책" _Computing Reviews
"스프링에 흥미가 있는 모든 개발자에게 완벽하고 훌륭한 레퍼런스다." _Java User Group, Milano
"훌륭한 구성에 거침없는 문장" _Internet Bookwatch
"유머러스한 문장이라 읽기 쉽다." _Books-On-Line

[이 책의 구성]
이 책은 크게 3부로 구성되어 있으며 뒤에 2개의 부록이 추가된다. 각 부는 스프링 프레임워크를 세 영역, 즉 핵심 프레임워크 영역, 비즈니스 및 데이터 계층 영역, 그리고 프레젠테이션 계층 영역으로 나누어 각 영역에 초점을 둔다. 전체적으로는 계속해서 내용이 이어지지만, 각각을 독립적으로 이해하는 데도 어려움이 없도록 하여 책의 맨 처음부터 시작하지 않고도 특정 주제를 바로 익힐 수 있게 했다.

1부에서는 스프링 프레임워크의 가장 핵심적인 두 개의 기능인 종속객체 주입(DI: dependency injection)과 애스펙트 지향 프로그래밍(AOP: aspect-oriented programming)을 알아볼 것이다. 이 둘은 이 책에서 계속 활용되는 기본 중의 기본으로 잘 이해해 둬야 한다.

1장에서는 DI 및 AOP와의 첫만남을 가지고, 느슨하게 결합된 자바 애플리케이션을 개발하는 데 이들이 어떤 역할을 하는지 보게 될 것이다.

2장은 종속객체 주입을 이용해 애플리케이션 객체들을 구성하고 연관짓는 방법을 자세하게 설명한다. 또 느슨하게 결합된 컴포넌트를 작성하는 방법과, 그리고 스프링 컨테이너 내에서 이들이 가져야 할 종속객체 및 프로퍼티를 XML을 이용해 설정하는 방법에 대해서도 살펴볼 것이다.

2장에서 스프링 컨테이너 설정에 익숙해졌다면,

3장에서는 스프링 컨테이너의 고급 기능을 배우게 된다. 중요한 것만 미리 얘기하면, 애플리케이션 컴포넌트의 생명주기에 따라 커스텀 로직을 실행하는 방법이나 설정 간에 부모-자식 관계를 만드는 방법, 그리고 루비(Ruby)와 그루비(Groovy) 스크립트를 이용해 작성된 컴포넌트를 구성하는 방법도 알게 된다.

4장은 스프링 AOP를 통해 객체와 횡단관심사를 서로 분리하는 방법을 다룬다. 또한 4장 이후에서는 트랜잭션이나 보안, 캐시 등의 서비스를 선언적 방식으로 개발하기 위해 스프링 AOP를 이용하는 방법을 설명하게 되는데, 4장은 이러한 내용의 토대가 되는 중요한 장이다.

2부는 1부에서 소개한 DI와 AOP를 바탕으로 구성되는데, 애플리케이션의 데이터 티어나 비즈니스 티어에서 이 개념들을 어떻게 적용하는지를 보여준다.

5장은 데이터 영속성에 대한 스프링 지원사항을 다룬다. 우선 스프링의 JDBC 지원을 통해 대부분의 상투적인 코드를 제거하는 모습부터 보게 될 것이다. 그 다음엔 하이버네이트(Hibernate)나 iBATIS, 그리고 자바 퍼시스턴스 API(JPA: Java Persistence API)와 같이 많이 사용되는 영속성 프레임워크와 스프링이 어떻게 통합되는지를 알아볼 것이다.

6장은 5장의 부족한 부분을 메워 준다. 6장의 주제는 트랜잭션으로, 데이터베이스의 무결성을 보장하기 위해 스프링의 트랜잭션 지원사항을 활용하는 방법을 보여준다. 또 AOP를 활용해서 단순했던 애플리케이션 객체에 선언적 트랜잭션의 능력을 부여하는 방법을 알게 된다.

7장에서는 스프링 시큐리티(Spring Security)를 활용해 애플리케이션에 보안을 적용하는 방법을 알아볼 것이다. 여기에는 서블릿 필터(servlet filter)를 이용한 웹 요청 수준의 보안 적용 방법과, 스프링 AOP를 이용해 메서드 수준에서의 보안 적용 방법이 다뤄진다.

8장은 애플리케이션 객체들을 원격 서비스로 노출시키는 방법을 알려준다. 또 원격 서비스를 마치 같은 애플리케이션에 있는 일반 객체와 다름없이 사용할 수 있는 방법을 다룬다. 이 장에서 다루는 리모팅 기술에는 RMI, Hessian과 Burlap, SOAP 기반 웹 서비스, 그리고 스프링 고유의 HttpInvoker가 포함된다.
8장에서도 스프링의 웹 서비스를 다루기는 하지만,

9장은 스프링-WS 프로젝트 고찰을 통해 다른 시각으로 웹 서비스를 바라본다. 이 장에서는 스프링-WS를 이용해 규약우선 방식의 웹 서비스, 즉 규약과 구현이 분리된 형태의 웹 서비스를 구축하는 방법을 알아본다.

10장에서는 JMS를 가지고 비동기 방식의 메시지를 보낼 때 스프링을 사용하는 방법을 볼 수 있다. 우선은 스프링을 이용한 기초적인 JMS 작동 방법을 살펴본다. 그리고 오픈 소스인 링고(Lingo) 프로젝트를 이용해서 원격 서비스를 JMS를 통해 비동기 방식으로 익스포트하고 사용하는 방법을 알아볼 것이다.
스프링이 EJB 필요성의 상당량을 제거하기는 했지만 여전히 스프링과 EJB를 함께 써야 하는 경우가 존재한다. 따라서

11장에서는 스프링을 EJB와 통합하는 방법에 대해서 다룬다. 우선 EJB 레퍼런스를 스프링 애플리케이션에서 사용하는 방법을 배우고, 다음으로는 스프링 컨테이너를 사용할 수 있는 EJB를 작성하는 방법을 배우게 된다. 그리고 마지막으로 EJB 애너테이션을 똑같이 이용해서 스프링 빈을 설정하는 방법도 살펴볼 것이다.

12장은 2부를 마무리하는 장으로, 작업을 스케줄링하거나, 이메일 보내기, JNDI에 등록된 리소스 가져오기, 그리고 애플리케이션 객체의 JMX 관리 방법 등에 스프링을 어떻게 사용하는지를 다룬다.

3부는 스프링에 대한 논의를 좀 더 최종 사용자 쪽으로 옮겨서, 웹 애플리케이션을 구축하는 데 스프링을 활용하는 방법을 다룬다.

13장은 스프링 고유의 MVC 웹 프레임워크를 소개한다. 스프링을 이용해 웹 요청/응답 인자를 비즈니스 객체와 투명하게 바인딩하는 방법, 그리고 검증과 에러 처리하는 방법이 동시에 다뤄진다. 또한 스프링이 제공하는 풍부한 컨트롤러 집합을 활용해 웹 애플리케이션에 얼마나 쉽게 기능을 추가할 수 있는지를 배우게 될 것이다.

13장에 이어 14장에서는 스프링 MVC의 뷰 계층(view layer)을 다룬다. 14장은 우선 스프링 MVC 컨트롤러의 결과물을 사용자에게 렌더링하기 위한 구체적인 뷰 컴포넌트에 매핑하는 방법을 배우게 된다. 이러한 뷰 컴포넌트에는 JSP, 벨로시티(Velocity), 프리마커(FreeMarker)와 타일즈(Tiles) 등을 사용할 수 있다. 또한 HTML이 아닌 출력 결과를 만들어내는 PDF나 엑셀, 그리고 RSS 등을 어떻게 만드는지도 설명한다.

15장은 스프링 웹 플로(Spring Web Flow)를 다룬다. 스프링 웹 플로는 스프링 MVC의 확장으로, 대화형 웹 애플리케이션 개발을 용이하게 만든다. 이 장에서는 사용자를 어떤 흐름에 따라 작업하도록 유도하는 웹 애플리케이션을 만드는 방법을 배울 것이다.

마지막으로 16장에서는 스프링과 다른 웹 프레임워크를 통합하는 방법을 보여준다. 이미 다른 웹 프레임워크에 투자해 놓은 것이 있다면(또는 단지 선호한다는 이유로), 이 장이 도움될 것이다. 여기서는 가장 널리 쓰이는 웹 프레임워크인 스트럿츠(Struts), 웹워크(WebWork), 태피스트리(Tapestry), 자바서버 페이스(JSF: JavaServer Faces)와 스프링을 같이 사용하기 위한 방법을 설명한다.

부록 A는 스프링을 처음 시작할 때 도움이 되는 내용으로, 스프링을 다운로드해서 앤트(Ant)나 메이븐(Maven) 2에 설정하는 방법을 보여준다.
느슨한 결합의 핵심 장점 중 하나는 이러한 방식의 설계가 애플리케이션 객체의 단위 테스트를 더 용이하게 만든다는 것이다. 부록 B는 애플리케이션을 테스트할 때 종속객체 주입을 활용하는 방법과, 스프링의 테스트 지원 클래스를 활용하는 방법을 보여준다.


[이 책의 대상 독자]
이 책은 모든 자바 개발자를 대상으로 하면서 엔터프라이즈 개발자에게 특히 유용한 책이다. 각 장을 거치면서 코드 예제의 복잡도를 서서히 늘려가도록 했지만, 스프링의 진정한 힘은 엔터프라이즈 애플리케이션 개발을 쉽게 하는 데 있다. 따라서 엔터프라이즈 개발자들은 이 책에 있는 예제들의 진가를 알 수 있을 것이다.

스프링은 대체로 엔터프라이즈 서비스를 제공하는 데 기여하도록 되어 있기 때문에 스프링과 EJB 사이에 겹치는 부분이 많다. 따라서 스프링이든 EJB든 경험이 많을수록 두 프레임워크를 비교해서 이해하기가 쉬울 것이다.

이 책이 웹 애플리케이션을 전문적으로 다룬 책은 아니지만, 이 책에는 웹 애플리케이션에 관한 내용이 상당 부분 포함되어 있다. 사실 마지막 네 장에서는 스프링을 이용해 애플리케이션의 웹 계층을 개발하는 방법에 관해 설명하고 있다. 웹 개발자에게는 이 책의 마지막 부(3부)가 특히 도움이 될 것이다.


[코드 다운로드]
이 책에서 다루는 애플리케이션의 전체 소스 코드는 출판사 웹사이트 www.manning. com/walls3나 www.manning.com/SpringinAction에서 다운로드할 수 있다.


[감수자의 글] 중에서
(중략)... 제2판의 출간을 앞둔 현재 시점에서 보면 서점에서 당시보다는 많은 책을 볼 수 있다. 하지만 한글 서적으로 시야를 좁혀 보면, 『Spring in Action』만큼 스프링의 개념 설명을 잘 다룬 책은 아직 볼 수 없다. 더군다나 1판보다 두 배 가까이 늘어난 분량 또한 타의 추종을 불허한다. 추천사를 작성하기 위해 최종 교정지를 살펴보는데, 내용에 앞서 시원시원한 편집이 눈에 띄었다. 내용에서도 전편과 마찬가지로 전체적으로 간결한 개념 설명이 돋보인다. 또한 유관 지식을 많이 요하는 스프링의 특성을 잘 반영하고 있는 것도 장점으로 보인다. 예를 들어, 국내 독자들에게 가장 많은 도움을 줄 것으로 추정되는 웹 MVC 내용을 보면, 스프링 고유의 내용 외에도 스프링 모듈즈(Spring Modules)나 아파치(Apache)에서 제공하는 커먼스 밸리데이터(Commons Validator) 프레임워크를 함께 쓰는 방법을 소개한 부분도 들어 있다. ...(후략)


[옮긴이의 글] 중에서
(중략)... 2008년 11월 현재 스프링의 버전은 2.5.6이다. 이 책은 스프링 2.0을 토대로 쓰여진 책이지만 현재 버전을 이해하고 사용하는 데 전혀 부족함이 없다. 스프링은 특정 API에 대한 이해가 중요한 것이 아니라, 스프링이 추구하고자 하는 사상과 핵심 프로그래밍 모델에 그 진가가 있으며, 이는 스프링 1.0, 2.0, 그리고 내년 초로 계획된(아직 M1도 등장하지 않은 현재로서는 내년 여름도 어려울 것 같다) 3.0도 모두 거의 동일하기 때문이다.

이 책에서 다루는 스프링 2.0이 1.0에 비해 가장 두드러지게 개선된 부분은 모든 것이 으로 정의됐던 설정 부분에서 XML 스키마에 의한 지원이 대폭 강화되어 같은 식으로 작성과 읽기가 편한 설정이 가능해졌다는 것이다(물론 기존 스타일은 그대로 지원한다). JDK 5.0에 도입된 애너테이션(annotation) 기능을 활용한 편의성 향상도 주요한 차이점이다. 또 AOP 지원도 강화됐는데, 그중에서도 AspectJ와 통합됨으로써 AOP 설정이 훨씬 편리해진 점을 꼽을 수 있다. 이 외에도 빈 스코핑(bean scoping) 개념 도입, JPA 지원이 눈에 띈다. ...(후략)


Part 1 스프링 기본
Chapter 01 스프링에 뛰어들기 4
1.1 스프링이란 무엇인가? 6
1.2 스프링 시작하기 12
1.3 종속객체 주입 이해 16
1.4 애스펙트 지향 프로그래밍 적용하기 27
1.5 요약 34

Chapter 02 빈 와이어링 기초 35
2.1 빈을 담는 그릇, 컨테이너 37
2.2 빈 만들기 44
2.3 빈의 프로퍼티 주입하기 51
2.4 오토와이어링 64
2.5 빈 생성 과정 제어 71
2.6 요약 78

Chapter 03 고급 빈 와이어링 79
3.1 부모 빈과 자식 빈 선언하기 80
3.2 메서드 주입 적용 86
3.3 비 스프링 빈 주입 94
3.4 커스텀 프로퍼티 에디터 등록 97
3.5 특별한 스프링 빈 101
3.6 스크립트로 빈 작성 117
3.7 요약 125

Chapter 04 빈과 AOP의 만남 127
4.1 AOP 소개 129
4.2 스프링을 이용한 애스펙트 작성 138
4.3 오토프록싱 154
4.4 순수 POJO 애스펙트 선언 161
4.5 AspectJ 애스펙트와 종속객체 주입 165
4.6 요약 169

Part 2 엔터프라이즈 스프링
Chapter 05 데이터베이스 공략 172
5.1 스프링의 데이터 액세스 철학 174
5.2 데이터 소스 설정 184
5.3 스프링과 JDBC 189
5.4 스프링과 하이버네이트 통합 205
5.5 스프링과 자바 퍼시스턴스 API 218
5.6 스프링과 iBATIS 229
5.7 캐싱 234
5.8 요약 245

Chapter 06 트랜잭션 관리 247
6.1 트랜잭션이란 무엇인가? 249
6.2 트랜잭션 관리자 선택 252
6.3 스프링 트랜잭션 프로그래밍 257
6.4 트랜잭션 선언 260
6.5 요약 274

Chapter 07 스프링 보안 275
7.1 스프링 시큐리티 소개 277
7.2 사용자 인증 281
7.3 액세스 제어 301
7.4 웹 애플리케이션 보안 305
7.5 뷰 계층 보안 328
7.6 메서드 호출에 보안 적용 331
7.7 요약 336

Chapter 08 스프링과 POJO 기반 원격 서비스 337
8.1 스프링 리모팅 개괄 339
8.2 RMI 이용하기 342
8.3 Hessian과 Burlap을 이용한 리모팅 349
8.4 스프링의 HttpInvoker 사용하기 357
8.5 스프링과 웹 서비스 361
8.6 요약 379

Chapter 09 규약우선 웹 서비스와 스프링 381
9.1 스프링-WS 개요 383
9.2 규약의 우선(!) 정의 386
9.3 서비스 엔드포인트에서의 메시지 처리 392
9.4 모든 것을 하나로 401
9.5 스프링-WS 웹 서비스 클라이언트 415
9.6 요약 425

Chapter 10 스프링 메시징 427
크레이그 월즈(Craig Walls)
크레이그 월즈는 경력 13년 이상의 소프트웨어 개발자로서 『XDoclet in Action』(Manning, 2003)의 공동저자다. 그는 스프링 프레임워크의 열렬한 지지자이자 프로모터로서 지역 사용자 그룹과 컨퍼런스에서 강연을 하고 그의 블로그에 스프링에 관한 글을 쓰면서 바쁜 나날을 보내고 있다. 여가 시간에는 그의 아내와 두 딸, 여섯 마리의 새와 네 마리의 개, 두 마리의 고양이와 열대어들과 함께 시간을 보낸다. 크레이그는 텍사스 주 덴톤에 살고 있다.

[역자 소개]
장시형
고려대학교와 동 대학원을 졸업하고 동부CNI에서 IT 기획, 컨설팅에 종사하고 있으며, 소프트웨어 공학 및 소프트웨어 아키텍처에 많은 관심을 갖고 있다. 주요 역서로 『Professional Ajax』, 『특이점이 온다』, 『리팩터링 워크북』, 『C#과 닷넷 플랫폼, 제2판』, 『Java How to Program, 제5판』 등이 있다.

전지훈
KAIST 산업경영학과를 졸업하고 (주)아이티와이즈컨설팅에서 소프트웨어 아키텍처와 소프트웨어 공학, JEE 기술 컨설팅에 종사하고 있다. JEE 플랫폼과 프레임워크, 소프트웨어 아키텍처, 그리고 어떻게 하면 시스템을 효율적이고 효과적으로 구축하고 운영할 수 있을까에 관심이 많다.

이 책 괜찮음
이태영님이 쓰신 서평보기 I 평점 I 조회수(1061) I 공감 (0) I 블로그
스프링 입문책으로 적당히 흥미를 끄는 예제들과 잘 짜여진 문단구성으로 집중에서 꾸준히 읽다보면 확실히 실력이 는다는걸 느끼게 해줌.
즐겁게 공부할 수 있는 책
김승권님이 쓰신 서평보기 I 평점 I 조회수(2576) I 공감 (0) I 블로그
최근 삼성, 한화 등 대기업 SI 업체의 표준 프레임워크가 EJB 중심에서 Spring 기반으로 바뀌고, 쉬운 테스트와 도메인의 제대로 된 표현을 중시하는 POJO 기반 프로그래밍이 업계에 퍼지면서 Spring에 대한 관심은 점점 더 증가하고 있는 추세다. 하지만 국내에 제대로 된 스프링 책이 거의 없어 원서를 볼 여유가 없는 개발자에게는 선택의 폭이 한정될 수 밖에 없었다. 이 책은 스프링을 학습하려는 입문자와, 특정 기능을 학습하기 위해 개념 설명과 좋은 예제가 포함된 레퍼런스를...
 
전체평균(53)
회원평점   회원서평수 2
이 책 괜찮음
이태영 님  2011-02-21
즐겁게 공부할 수 있는 책
김승권 님  2009-01-05
Craig Walls 의 최근 저서
 
Modular Java 모듈라 자바
23,400원
(10%↓+5%)
 
장시형 의 최근 저서
 
프레젠테이션에 할리우드를 더하라
12,600원
(10%↓+5%)
 
리팩터링 워크북
16,200원
(10%↓+5%)
 
아이티씨(ITC) 출판사의 신간
현대제조공학
Mikell P. Groover 저
33,250원
(5%↓+0%)
 
전자기학
남충모 저
23,750원
(5%↓+0%)
 
모바일 웹 & 앱 개발하기
Earle Castldine, Myles Eftos, Max Wheeler / 남정현 역 저
24,700원
(5%↓+0%)
 
객체지향 소프트웨어공학
Stephen R. Schach [옮긴이]유해영 저
28,500원
(5%↓+0%)
 
신호 획득 및 처리
이종실, 김인영, 김범룡, 김선일 저
21,850원
(5%↓+0%)
 
이메일주소수집거부