토비의 스프링 3.1 Vol. 2: 스프링의 기술과 선택
2019년 07월 05일 출간
국내도서 : 2012년 09월 21일 출간
- eBook 상품 정보
- 파일 정보 pdf (7.65MB)
- ISBN 9791161753232
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
작품소개
이 상품이 속한 분야
XML 대신 자바코드를 이용해서 스프링을 개발할 수 있는 최신 빈 설정 기법부터 편리한 RESTful 스타일의 웹 컨트롤러 작성 기법까지 스프링 3.0과 스프링 3.1의 최신 기술을 상세하게 소개하고 그 중에서 자신에게 맞는 최적의 기술을 선택하고 조합할 수 있는 기준과 활용전략을 다룬다.
『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 이르기까지 모두 참고할 수 있는 스프링 완벽 바이블이다
___1.1 IoC 컨테이너: 빈 팩토리와 애플리케이션 컨텍스트
______1.1.1 IoC 컨테이너를 이용해 애플리케이션 만들기
_________POJO 클래스
_________설정 메타정보
______1.1.2 IoC 컨테이너의 종류와 사용 방법
_________StaticApplicationContext
_________GenericApplicationContext
_________GenericXmlApplicationContext
_________WebApplicationContext
______1.1.3 IoC 컨테이너 계층구조
_________부모 컨텍스트를 이용한 계층구조 효과
_________컨텍스트 계층구조 테스트
______1.1.4 웹 애플리케이션의 IoC 컨테이너 구성
_________웹 애플리케이션의 컨텍스트 계층구조
_________웹 애플리케이션의 컨텍스트 구성 방법
_________루트 애플리케이션 컨텍스트 등록
_________서블릿 애플리케이션 컨텍스트 등록
___1.2 IoC/DI를 위한 빈 설정 메타정보 작성
______1.2.1 빈 설정 메타정보
_________빈 설정 메타정보 항목
______1.2.2 빈 등록 방법
_________XML: 〈bean〉 태그
_________XML: 네임스페이스와 전용 태그
_________자동인식을 이용한 빈 등록: 스테레오타입 애노테이션과 빈 스캐너
_________자바 코드에 의한 빈 등록: @Configuration 클래스의 @Bean 메소드
_________자바 코드에 의한 빈 등록: 일반 빈 클래스의 @Bean 메소드
_________빈 등록 메타정보 구성 전략
______1.2.3 빈 의존관계 설정 방법
_________XML: 〈property〉, 〈constructor-arg〉
_________XML: 자동와이어링
_________XML: 네임스페이스와 전용 태그
_________애노테이션: @Resource
_________애노테이션: @Autowired/@Inject
_________@Autowired와 getBean(), 스프링 테스트
_________자바 코드에 의한 의존관계 설정
_________빈 의존관계 설정 전략
______1.2.4 프로퍼티 값 설정 방법
_________메타정보 종류에 따른 값 설정 방법
_________PropertyEditor와 ConversionService
_________컬렉션
_________Null과 빈 문자열
_________프로퍼티 파일을 이용한 값 설정
______1.2.5 컨테이너가 자동등록하는 빈
_________ApplicationContext, BeanFactory
_________ResourceLoader, ApplicationEventPublisher
_________systemProperties, systemEnvironment
___1.3 프로토타입과 스코프
______1.3.1 프로토타입 스코프
_________프로토타입 빈의 생명주기와 종속성
_________프로토타입 빈의 용도
_________DI와 DL
_________프로토타입 빈의 DL 전략
______1.3.2 스코프
_________스코프의 종류
_________스코프 빈의 사용 방법
_________커스텀 스코프와 상태를 저장하는 빈 사용하기
___1.4 기타 빈 설정 메타정보
______1.4.1 빈 이름
_________XML 설정에서의 빈 식별자와 별칭
_________애노테이션에서의 빈 이름
______1.4.2 빈 생명주기 메소드
_________초기화 메소드
_________제거 메소드
______1.4.3 팩토리 빈과 팩토리 메소드
___1.5 스프링 3.1의 Ioc 컨테이너와 DI
______1.5.1 빈의 역할과 구분
_________빈의 종류
_________컨테이너 인프라 빈과 전용 태그
_________빈의 역할
______1.5.2 컨테이너 인프라 빈을 위한 자바 코드 메타정보
_________IoC/DI 설정 방법의 발전
_________자바 코드를 이용한 컨테이너 인프라 빈 등록
______1.5.3 웹 애플리케이션의 새로운 IoC 컨테이너 구성
______1.5.4 런타임 환경 추상화와 프로파일
_________환경에 따른 빈 설정정보 변경 전략과 한계
_________런타임 환경과 프로파일
_________활성 프로파일 지정 방법
_________프로파일 활용 전략
______1.5.5 프로퍼티 소스
_________프로퍼티
_________스프링에서 사용되는 프로퍼티의 종류
_________프로파일의 통합과 추상화
_________프로퍼티 소스의 사용
_________@PropertySource와 프로퍼티 파일
_________웹 환경에서 사용되는 프로퍼티 소스와 프로퍼티 소스 초기화 오브젝트
___1.6 정리
2장 데이터 액세스 기술
___2.1 공통 개념
______2.1.1 DAO 패턴
_________DAO 인터페이스와 DI
_________예외처리
______2.1.2 템플릿과 API
______2.1.3 DataSource
_________학습 테스트와 통합 테스트를 위한 DataSource
_________오픈소스 또는 상용 DB 커넥션 풀
_________JDNI/WAS DB 풀
___2.2 JDBC
______2.2.1 스프링 JDBC 기술과 동작원리
_________스프링의 JDBC 접근 방법
_________스프링 JDBC가 해주는 작업
______2.2.2 SimpleJdbcTemplate
_________SimpleJdbcTemplate 생성
_________SQL 파라미터
_________SQL 실행 메소드
_________SQL 조회 메소드
_________SQL 배치 메소드
______2.2.3 SimpleJdbcInsert
_________SimpleJdbcInsert 생성
_________SimpleJdbcInsert 실행
______2.2.4 SimpleJdbcCall
_______
★ 이 책에서 다루는 내용 ★
★ DIJ/JavaConfig, OXM, @MVC, SpEL, Task, REST 등의 스프링 3.0의 최신 기술 소개
Java EE 6의 JSR-303과 자바코드를 이용한 최첨단 DI기술, XML 매핑을 위한 OXM, 기존 MVC를 완벽하게 대체한 강력한 웹 프레임워크인 @MVC, 스프링 공식 EL인 SpEL, JSR-303(BeanValidation)과 새로운 컨버터와 포매터 활용방법, 각종 비동기 작업을 위한 Task 기능, REST 템플릿 사용법 등 스프링 3.0의 새로운 기능을 기존 스프링 기술과 함께 상세히 소개한다.
★ 런타임 추상화, 프로파일, 프로퍼티 소스, 캐시 추상화, 발전된 @MVC, 플래시 맵 등 스프링 3.1의 최신 기술 소개
프로파일을 이용한 다이내믹한 빈 설정 기술, 통합된 프로퍼티 소스, 더욱 강력해진 @MVC 핸들러 작성, 플래시 맵 활용 방법과 AOP를 이용한 캐시 추상화 등 스프링 3.1의 최신 기술과 달라진 점을 자세히 소개한다.
★ 스프링 기술 선택을 위한 상세한 기술 비교, 선택 기준 제시
같은 기술에도 수많은 옵션을 제공하는 스프링의 특성 때문에 기술 선택에 고민하는 개발자를 위해서 스프링이 제공하는 다양한 기술 옵션을 비교하고, 환경에 따른 적절한 선택을 위한 기준을 제공해준다.
★ @Enable 빈 설정 모듈화 기법 소개
스프링 3.1의 최신 자바코드 빈 설정 기법을 이용해서 재사용 가능한 빈 설정 모듈을 만드는 방법을 스프링 3.1에 적용된 실전 예를 기준으로 상세하게 설명한다.
★ 스프링 애플리케이션 아키텍처 설계와 스프링 기반 프레임워크 제작을 위한 완벽 가이드
스프링을 이용한 엔터프라이즈 애플리케이션 아키텍처 작성을 위한 다양한 아키텍처 소개와 전략 분석, 스프링을 기반으로 한 사내 프레임워크 제작에 꼭 필요한 스프링 확장 기법을 소개한다.
★ 이 책의 구성 ★
스프링이 공개된 지 이미 9년째이고 많은 개발자가 스프링을 사용해 애플리케이션을 개발해오고 있다. 그럼에도 적지 않은 수의 개발자들은 스프링의 핵심 가치와 혜택을 충분히 누리지 못하는 듯하다. 스프링의 가치를 제대로 누리며 사용하려면 스프링을 제대로 공부해야 한다. 스프링을 효과적으로 익히려면 다음의 세 가지 단계를 통해 스프링을 학습해야 한다.
▶ 스프링의 핵심 가치와 원리에 대한 이해
▶ 스프링의 기술에 대한 지식과 선택 기준 정립
▶ 스프링의 적용과 확장
이 책은 이 세 가지 단계를 따라서 스프링을 공부하려는 사람을 대상으로 쓰여진 책으로, Vol. 1에서는 첫 단계인 ‘핵심 가치와 원리에 대한 이해’를 중심으로 하고, Vol. 2에서는 두 번째 단계인 ‘스프링 기술에 대한 지식과 선택’을 집중해서 다룬다. 세 번째 단계인 확장에 대해서는 책의 여러 곳에서 다양한 전략과 예제, 힌트를 제공한다. 하지만 본격적으로 응용과 확장에 대한 지식을 쌓는 일은 독자들의 몫이다. 각자의 상황에 맞게 처음 두 단계에서 배운 지식을 응용해 스프링을 확장해보는 훈련을 해야 한다.
Vol. 2에서는 스프링 프레임워크를 이용해 애플리케이션을 작성하는 다양한 방법을 살펴보고, 각 방법의 특징과 장단점을 설명한다. Vol. 2는 각 장마다 개별 기술을 독립적으로 설명하므로 원하는 장부터 살펴봐도 상관없다. 다만 1장은 스프링을 이용해 애플리케이션을 만들 때 반드시 알아야 할 애플리케이션 구조와 설정 방법을 설명하므로 다른 장으로 넘어가기 전에 먼저 살펴보기를 권장한다.
Vol. 2는 스프링이 제공하는 기술의 종류와 특징, 사용법에 대한 설명에 집중하고, 이를 이용해서 만들어지는 애플리케이션 코드의 패턴과 구조에 관한 내용은 Vol. 1에서 자세히 다루므로 Vol. 2에서 다루지 않는다. Vol. 2의 내용은 Vol. 1에서 설명한 내용을 이해하고 있다는 전제하에 작성됐다. 스프링의 개발 기술 내용을 빠르게 살펴보고 싶다면 Vol. 1을 보지 않고 Vol. 2를 먼저 봐도 되지만, 가능한 한 Vol. 1을 먼저 공부하고 Vol. 2의 내용을 보기를 권장한다.
Vol. 2의 내용은 대부분 스프링 3.0과 스프링 3.1 버전에 동일하게 적용할 수 있다. 스프링 3.1에만 적용되는 내용은 각 장의 마지막 절에서 따로 설명한다.
Vol. 2의 예제 코드는 두 가지로 구성된다.
첫째는 각 장에서 설명하는 스프링 기술의 사용 방법을 담은 학습 테스트다. 책에는 설명에 꼭 필요한 일정 분량의 코드만 소개되어 있다. 각 기술의 사용 방법을 담은 좀 더 다양한 코드는 소스코드 파일에 담긴 learningtest 프로젝트의 학습 테스트 코드를 참고하면 된다. 테스트 코드이지만 기술 학습용으로 작성됐으므로 이를 Vol. 2의 내용과 함께 살펴보면 스프링 기술의 사용 방법에 대한 아이디어를 얻을 수 있을 것이다. learningtest 프로젝트는 스프링 3.0으로 작성된 것과 스프링 3.1로 작성된 것, 두 가지가 제공된다.
둘째는 스프링 웹 기술인 스프링 MVC를 이용해 만든 웹 애플리케이션 예제인 springusergroup 프로젝트다. 이 프로젝트는 서버에서 동작하도록 만들어진 완전한 애플리케이션이다. 그렇다고 이 예제 프로젝트를 그대로 가져다 실전에서 활용하면 될 것이라고 기대해선 안 된다. 프로젝트를 구성할 때 참고하거나 프로젝트의 각 기술 영역에 대한 접근 방법이 자신의 상황과 일치한다면 일부를 활용할 수는 있겠지만, Vol. 2에서 줄곧 설명하는 대로 아키텍처와 계층구조, 사용할 기술, 설정 방법, 각 기술의 접근 방법은 각자의 상황과 환경에 맞게 선택해야 한다. springusergroup 예제의 목적은 스프링 MVC를 사용한 웹 프레젠테이션 계층의 개발과 이를 다른 계층과 어떻게 접목하는지에 관한 것임을 기억하자.
예제 프로젝트를 설치하고 사용하는 방법은 각 프로젝트 폴더의 readme.txt 파일을 참고하면 된다. 모든 예제 프로젝트는 JavaSE 1.6과 이클립스 기반의 STS(SpringSource Tool Suite)에서 작성됐다. STS는 http://www.springsource.com/products/sts에서 다운로드 받을 수 있다.
책의 예제에 사용한 DB는 MySQL 5.1 버전이다. 하지만 적절한 JDBC 드라이버를 추가하고 DB 연결정보를 수정해주면 그 밖의 DB를 사용해서 예제를 실행할 수 있다. DB를 변경하는 방법도 프로젝트 루트의 readme.txt 파일에 나와 있다.
[별도 소스코드 제공]
- 이 책에 들어 있는 모든 예제의 소스코드
- 스프링 3.0과 스프링 3.1의 기술 활용법을 보여주는 학습 테스트 코드
- 스프링 @MVC를 이용한 웹 애플리케이션 프로젝트
★ 이 책의 대상 독자 ★
이 책은 스프링을 이용해서 엔터프라이즈 자바 애플리케이션을 개발하려는 모든 개발자를 대상으로 한다. 이 책을 공부하기 위해서는 자바 언어와 JDBC를 이용한 DB 프로그래밍, 그리고 기초적인 웹 개발 지식이 필요하다. Vol. 2에는 스프링 외의 서드파티 프레임워크나 JavaEE 표준 기술을 스프링에 통합해서 사용하는 내용이 일부 포함되어 있다. 이런 내용을 살펴볼 때는 관련 기술에 대한 지식이 추가로 필요할 수 있다.
★ 스프링 3.1의 새로운 기능 ★
스프링 3.1에 추가된 주요한 기능과 특징은 다음과 같다.
강화된 자바 코드를 이용한 빈 설정
스프링 3.1은 스프링 3.0부터 지원하기 시작한 자바 코드를 이용한 빈 설정 방식을 대폭 확장해서 스프링 빈 설정의 거의 모든 영역으로 확대했다. 기존에 XML로 작성했던 스프링 설정 정보를 3.1에서는 자바 코드로 대체할 수 있다. XML을 전혀 사용하지 않고 스프링 애플리케이션을 작성할 수도 있다. 자바 코드를 이용한 빈 설정을 위해 다양한 애노테이션이 추가됐다. XML의 전용 커스텀 태그를 대체할 수 있는, @Enable로 시작하는 전용 애노테이션도 제공된다.
런타임 환경 추상화
스프링 애플리케이션이 실행되는 런타임 환경 정보를 추상화한 환경 오브젝트가 컨테이너를 통해 제공된다. 실행환경에 따라 달라지는 빈 설정을 효과적으로 관리할 수 있는 프로파일과 각종 프로퍼티 정보를 컨테이너를 통해 일관된 방식으로 제공할 수 있게 해주는 프로퍼티 소스가 환경 오브젝트가 제공하는 주요 기능이다.
JPA 지원 확장과 하이버네이트 4 지원
하이버네이트 4 지원 기능이 새롭게 추가됐다. JPA를 이용할 때보다 편리하게 설정정보를 작성할 수 있는 편리한 기능도 추가됐다.
새로운 DispatcherServlet 전략과 플래시 맵
스프링 3.0에서 사용되던 DispatcherServlet 전략의 일부가 새롭게 설계된 전략으로 대체됐다. 이를 통해 MVC 기능을 확장하기가 편리해졌다. Post/Redirect/Get 패턴에 사용할 수 있는 플래시 맵 기능도 추가됐다.
캐시 추상화
AOP를 이용한 메소드 레벨의 캐시 추상화 기능이 추가됐다. 이를 이용해 캐시 구현 기술에 독립적인 방식으로 애플리케이션 빈에 캐시 기능을 적용할 수 있게 됐다. 맵을 이용한 간단한 캐시 구현부터 ehcache를 이용한 고급 캐시 기술까지 지원한다.
★ 『토비의 스프링 3.1』 추천의 글 ★
스프링의 아버지 로드 존슨은 '객체지향 설계는 특정 구현기술보다, 심지어 자바보다도 더 중요하다.'고 말했다. 『토비의 스프링 3』 책은 그 가치를 잘 담아냈다. 테스트하기 쉬운 코드, 구성요소의 역할과 책임을 섬세하게 나누는 설계 등 이 책에서 강조하는 기법은 프로그래밍을 하는 사람이면 누구나 새겨볼 만한 내용이다. 거기에 비해 어쩌면 최신 기술의 소개라는 측면은 부차적일지도 모른다. 그럼에도 최신 스프링 3.1에 맞춰 개정판이 나온다는 소식은 반갑기 그지 없다. 이제 이 책이 단순히 흘러가는 트렌드를 잡는 책이 아니라 『수학의 정석』처럼 꾸준히 개정되며 늘 우리에게 지식과 통찰을 주는 스테디셀러로 자리 잡기를 기원한다.
- 정상혁 / NHN Te
작가정보
저자 이일민은 호주의 IT 서비스 기업인 이프릴의 대표 컨설턴트다. 엔터프라이즈 오픈소스 커뮤니티인 오픈시드의 대표이며 한국스프링사용자모임(KSUG)의 공동설립자이기도 하다. 8비트 컴퓨터 시절 프로그래밍의 매력에 빠져 10여 년간 취미로 프로그래밍을 즐겨오다 전문 개발자의 길로 들어서서 19년째 소프트웨어 개발과 교육, 컨설팅 일을 해오고 있다. 2004년부터 스프링을 이용해서 기업과 학교, 인터넷 서비스 업체의 시스템을 개발해왔고 스프링을 기반으로 한 애플리케이션 프레임워크 제작 컨설팅과 스프링 개발자 교육을 해오고 있다. JCO 컨퍼런스에서 세 차례 스프링을 주제로 발표했고 기묘, 이프릴, KSUG 등을 통해 스프링 세미나를 진행하기도 했다. 스프링과 오픈소스 기술에 관련된 정보와 경험을 공유하는 블로그를 운영하고 있다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!