도서 IT전문서/IT입문서

스프링 개발자와 가장 오랜 시간을 함께한 스프링 중급서!

1판이 출간된 이후 5판까지 꾸준히 개정되며 스프링 중급서의 위치를 지켜왔다. 스프링 입문자가 아니라 실제로 현업에서 스프링을 개발하면서 알아야 하는 깊이 있는 정보를 체계적으로 정리하고 전달해왔다. 스프링의 기초와 핵심 개념부터 리모팅, 하이버네이트, EJB 등을 설명하면서 저자의 경험과 통찰을 담아냈다. 스프링 프레임워크를 개발하는 Pivotal 사의 현업 개발자, Pivotal 공인 스프링 개발자, 오랜 기간 스프링으로 개발한 경험자가 모여 공동 집필하며 실무에 필요한 지식을 담으려 노력했다. 또한, 모던 자바를 지원하면서 진화한 스프링 프레임워크도 설명했다.

스프링 프레임워크의 버전 5를 다루는 이 책은, 시장을 주도하는 엔터프라이즈 자바 애플리케이션 개발 프레임워크인 스프링 프레임워크 5의 강력한 기능을 활용할 때 참고할 수 있는 가장 종합적이고 전문적인 스프링 참고 자료이며 실용적인 가이드입니다.
이 책에서는 스프링의 핵심을 알아보면서 하이버네이트(Hibernate), JPA 2, 타일즈(Tiles), 타임리프(Thymeleaf), 웹소켓(WebSocket)과 같은 선도적인 자바 기술과 스프링을 통합하는 방법을 알아봅니다. 또한, 자바 구성 클래스, 람다 표현식, 스프링 부트(Boot), 반응형 프로그래밍을 사용하는 것에 초점을 맞춥니다. 그리고 리모팅(remoting) 지원, 트랜잭션, 웹과 프레젠테이션 티어 등과 같은 엔터프라이즈 애플리케이션 개발과 관련된 통찰력과 실제적인 경험을 공유합니다.
<전문가를 위한 스프링 5>(개정 5판)에서는 다음과 같은 내용을 배웁니다.


[예제 코드]
• 길벗 깃허브 저장소: https://github.com/gilbutITbook/006987
• 원서 소스 코드: https://github.com/Apress/pro-spring-5 

목차

1  스프링 소개   

__1.1  스프링이란? 

__1.2  스프링 프로젝트 

__1.3  스프링의 대안 

__1.4  정리 

 

2  스프링 시작하기  

__2.1  스프링 프레임워크 가져오기 

__2.2  스프링 모듈 이해하기 

__2.3  스프링 문서 사용하기  0672.4  스프링으로 Hello World 애플리케이션 만들기 

__2.5  정리 

 

3  스프링 IoC DI 소개  

__3.1  IoC DI 

__3.2  IoC의 종류 

__3.3  스프링의 제어 역전 

__3.4  스프링의 의존성 주입 

__3.5  애플리케이션 컨텍스트 구성하기 

__3.6  빈에 자동와이어링하기 

__3.7  빈 상속 설정하기 

__3.8  정리 

 

4  스프링 구성 상세와 스프링 부트  

__4.1  스프링이 애플리케이션 이식성에 미치는 영향 

__4.2  빈 라이프사이클 관리 

__4.3  빈 생성 시점에 통지 받기 

__4.4  빈 소멸 시점에 통지 받기 

__4.5  빈이 스프링을 알게(Spring Aware)하기 

__4.6  FactoryBean 사용하기 

__4.7  자바빈 PropertyEditor 

__4.8  그 외의 스프링 ApplicationContext 구성 살펴보기 

__4.9  리소스 접근하기 

__4.10  자바 클래스를 사용한 구성 

__4.11  프로파일 

__4.12  Environment PropertySource 추상화 

__4.13  JSR-330 애너테이션을 사용한 구성 

__4.14  그루비를 사용한 구성 

__4.15  스프링 부트 

__4.16  정리 

 

5  스프링 AOP 소개  

__5.1  AOP 개념 

__5.2  AOP의 종류 

__5.3  스프링의 AOP 지원 

__5.4  스프링 AOP 아키텍처 

__5.5  스프링의 어드바이저와 포인트컷 

__5.6  프록시 이해하기 

__5.7  포인트컷의 고급 활용  

__5.8  인트로덕션 시작하기 

__5.9  인트로덕션 정리 

__5.10  AOP 프레임워크 서비스 

__5.11  @AspectJ 방식 애너테이션 사용하기 

__5.12  AspectJ 연동 

__5.13  정리 

 

6  스프링 JDBC  

__6.1  람다식 소개 

__6.2  예제 코드에서 사용할 예제 데이터 모델 

__6.3  JDBC 인프라스트럭처 살펴보기 

__6.4  스프링 JDBC 인프라스트럭처 

__6.5  데이터베이스 커넥션과 데이터소스 

__6.6  임베디드 데이터베이스 기능 

__6.7  DAO 클래스에서 DataSource 사용하기 

__6.8  예외 처리 

__6.9  JdbcTemplate 클래스 

__6.10  ResultSetExtractor를 사용해 중첩 도메인 객체 조회하기 

__6.11  JDBC 조작을 모델링하는 스프링 클래스 

__6.12  MappingSqlQuery를 사용해 데이터 질의하기 

__6.13  데이터 등록 및 생성된 키 조회하기 

__6.14  BatchSqlUpdate를 사용하는 배치 조작 

__6.15  SqlFunction으로 저장 함수 호출하기 

__6.16  스프링 데이터 프로젝트의 JDBC 확장 

__6.17  JDBC 사용 시 고려사항 

__6.18  스프링 부트 JDBC 

__6.19  정리 

 

7  스프링에서 하이버네이트 사용하기  

__7.1  예제 코드에서 사용할 예제 데이터 모델 

__7.2  하이버네이트 SessionFactory 구성 

__7.3  하이버네이트 애너테이션으로 ORM 매핑하기 

__7.4  하이버네이트 Session 인터페이스 

__7.5  데이터 등록 

__7.6  데이터 수정 

__7.7  데이터 삭제 

__7.8  엔터티로 테이블을 생성하도록 하이버네이트 구성하기 

__7.9  메서드와 필드 중 어디에 애너테이션을 추가할 것인가? 

__7.10  하이버네이트를 사용할 때 고려사항 

__7.11  정리 

 

8  스프링에서 JPA2로 데이터 액세스하기  

__8.1  JPA 2.1 소개 

__8.2  JPA로 데이터베이스 조작하기 

__8.3  생성자 표현식을 사용한 커스텀 결과 타입 쿼리 

__8.4  네이티브 쿼리 사용하기 

__8.5  JPA 2 크라이티리어 API로 크라이티리어 쿼리 사용하기 

__8.6  스프링 데이터 JPA 소개 

__8.7  JpaRepository 사용하기 

__8.8  스프링 데이터 JPA로 커스텀 쿼리 사용하기 

__8.9  하이버네이트 엔버스로 엔터티 버전 관리하기 

__8.10  스프링 부트 JPA 

__8.11  JPA를 사용할 때 고려사항 

__8.12  정리 

 

9  트랜잭션 관리  

__9.1  스프링 트랜잭션 추상화 레이어 알아보기 

__9.2  PlatformTransactionManager 구현체 

__9.3  트랜잭션 프로퍼티 살펴보기 

__9.4  예제 코드를 위한 데이터 모델과 인프라 

__9.5  프로그래밍으로 트랜잭션 사용하기 

__9.6  스프링과 글로벌 트랜잭션 

__9.7  정리 

 

10  타입 변환과 포매팅을 사용해 유효성 검증하기  

__10.1  의존성 

__10.2  스프링 타입 변환 시스템 

__10.3  스프링 타입 변환 소개 

__10.4  스프링에서 필드 포매팅하기 

__10.5  스프링에서 유효성 검증 

__10.6  사용자 정의 검증에 @AssertTrue 사용하기 

__10.7  사용자 정의 검증에서 고려사항 

__10.8  어떤 유효성 검증 API를 사용할지 결정하기 

__10.9  정리 

 

11장 태스크 스케줄링  

__11.1  태스크 스케줄링 예제에 필요한 의존성 

__11.2  스프링의 태스크 스케줄링 

__11.3  스프링에서 태스크 실행 

__11.4  정리 

 

12  스프링 리모팅 사용하기  

__12.1  예제 데이터 모델 사용하기 

__12.2  JPA 백엔드에 필요한 의존성 추가 

__12.3  SingerService 구현 및 구성하기 

__12.4  스프링에서 JMS 사용하기 

__12.5  스프링 부트 Artemis 스타터 

__12.6  스프링에서 RESTful-WS 사용하기 

__12.7  Castor XML 구성하기 

__12.8  스프링 부트를 사용하는 스프링 RESTful-WS 

__12.9  스프링에서 AMQP 사용하기 

__12.10  정리 

 

13  스프링 테스트  

__13.1  테스트 범주 소개 

__13.2  스프링 테스트 애너테이션 사용하기 

__13.3  로직 단위 테스트 구현하기 

__13.4  통합 테스트 구현하기 

__13.5  프런트엔드 단위 테스트 구현하기 

__13.6  정리 

 

14  스프링에서 스크립트 언어 사용하기  

__14.1  자바에서 스크립트 언어 사용하기 

__14.2  그루비 소개 

__14.3  스프링에서 그루비 사용하기 

__14.4  동적 언어 코드 내장하기 

__14.5  정리 

 

15  애플리케이션 모니터링  

__15.1  스프링에서의 JMX 지원 

__15.2  스프링 빈을 JMX로 내보내기 

__15.3  자바 VisualVM으로 JMX 모니터링하기 

__15.4  하이버네이트 통계 정보 모니터링 

__15.5  스프링 부트와 JMX 

__15.6  정리 

 

16  스프링 웹 애플리케이션  

__16.1  서비스 레이어 구현 예제 

__16.2  SingerService 구성 

__16.3  MVC 및 스프링 MVC 소개 

__16.4  스프링 MVC 프로젝트 구조 이해하기 

__16.5  국제화(i18n) 

__16.6  테마와 템플릿 사용하기 

__16.7  아파치 타일즈를 사용한 뷰 템플릿 

__16.8  스프링 MVC에서 타일즈 구성 

__16.9  가수 정보 뷰의 구현 

__16.10  제이쿼리와 제이쿼리 UI 사용하기 

__16.11  파일 업로드 처리 

__16.12  스프링 시큐리티를 사용한 웹 애플리케이션 보안  

__16.13  스프링 부트로 스프링 웹 애플리케이션 생성하기 

__16.14  타임리프 뷰 생성하기 

__16.15  타임리프 확장 기능 사용하기 

__16.16  정리 

 

17  웹소켓  

__17.1  웹소켓 소개 

__17.2  스프링에서 웹소켓 사용하기 

__17.3  웹소켓 API 사용하기 

__17.4  STOMP로 메시지 전달하기 

__17.5  정리 

 

18  스프링 프로젝트: 배치, 인티그레이션, XD, 그리고 기타  

__18.1  스프링 배치 

__18.2  JSR-352 

__18.4  스프링 인티그레이션 

__18.5  스프링 XD 

__18.6  스프링 프레임워크의 5가지 주목할 만한 기능 

__18.7  정리 

 

부록 A 개발 환경 구성하기  

A.1  pro-spring-5 프로젝트 소개 

A.2  그레이들 구성 이해하기 

A.3  pro-spring-5 프로젝트 내려받기 

A.4  빌드 및 트러블슈팅 

A.5  아파치 톰캣에 애플리케이션 배포


 

더보기접기

저자&기여자

ㆍ지은이 롭해롭

소개
고성능, 고확장성 엔터프라이즈 애플리케이션 구축을 전문적으로 하는 소프트웨어 컨설턴트입니다. 또한 복잡한 설계 이슈를 이해하고 해결하는 특별한 재능을 가진 숙련된 아키텍트입니다. 자바와 닷넷(.NET) 분야의 깊은 지식을 바탕으로 양 플랫폼을 사용하는 여러 프로젝트를 성공적으로 구축해 왔습니다. 또한 광범위한 산업 영역에서 풍부한 경험을 쌓아왔는데 특히 리테일과 공공 영역에서 활발히 활동해 왔습니다. Harrop은 이 책을 포함해 다섯 권을 저술했으며, 스프링 프레임워크와 관련된 광범위한 자료를 제공해 널리 호평을 받은 이 책의 지난 네 번째 판까지의 역대 저자이기도 합니다.

ㆍ지은이 율리아나코스미나

소개
스프링 프레임워크와 스프링 부트 등의 여러 제품의 개발사인 Pivotal 사(社)가 운영하는 스프링 공인 스프링 웹 애플리케이션 개발자 자격과 스프링 공인 스프링 전문가 자격을 취득했습니다. 또한 Apress 출판사에서 출판한 Pivotal 공인 스프링 개발 전문가 자격증 관련 서적과 Pivotal 공인 스프링 웹 개발 전문가 자격 관련 서적을 저술했습니다. 현재 Bearing Point Software 사(社)의 소프트웨어 아키텍트이고 깃허브(GitHub)나 스택 오버플로(Stack Overflow) 등에서 활발하게 활동하는 코더이면서 소프트웨어 컨트리뷰터이기도 합니다.

ㆍ지은이 크리스샤이퍼

소개
스프링 프레임워크, 스프링 부트, 그 밖에 다른 도구를 만드는 Pivotal 사(社)에서 근무하는 스프링 프로젝트의 수석 소프트웨어 개발자입니다.

ㆍ지은이 클라렌스호

소개
홍콩에 위치한 소프트웨어 컨설팅 회사인 SkywideSoft Technology Limited(www.skywidesoft.com)의 자바 아키텍트다. 클라렌스는 IT 분야에서 20년 이상 여러 인하우스 애플리케이션 개발 프로젝트에서 팀 리더를 맡았으며, 클라이언트에게 엔터프라이즈 컨설팅 서비스를 제공했다. 클라렌스는 2001년부터 자바 프로그래밍을 시작했고, 2005년부터는 EJB, 스프링 프레임워크, 하이버네이트, JMS, WS 같은 기술을 사용해 JEE 애플리케이션을 설계하고 개발하는 업무를 집중적으로 담당했다. 클라렌스는 2005년부터 자바 엔터프라이즈 아키텍트로 근무하고 있다. 또한 국제 금융 기관의 컨설턴트로 근무하면서 자바 EE 아키텍처 설계, 교육, 기술 솔루션에 대한 컨설팅, 애플리케이션 개발 모범 기법에 대한 교육 등 여러 분야에서 기여하고 있다.

ㆍ옮긴이 김성윤

소개
21세기 직전부터 애플리케이션 개발자, 소프트웨어 아키텍트로 활동하다 현재는 시민의 일상을 뒷받침하는 대형 시스템을 운영하고 있습니다. 뭐든 손으로 직접 해봐야 직성이 풀리며, 운영 중인 업무에서 매일같이 발생하는 거대 데이터를 적시에 적절히 활용하는 방법에 관심이 많습니다.

ㆍ옮긴이 서경석

소개
IT 기업에서 오픈 소스 기반의 미들웨어 솔루션 개발 및 컨설팅 업무를 하고 있는 개발자이자 컨설턴트입니다. 자바를 기반으로 하는 다양한 IT 프로젝트에 참여했으며, 오픈 소스 기반의 기업용 프레임워크 개발과 모니터링 솔루션 개발에 관심이 많아 관련 업무를 수행했습니다.

ㆍ옮긴이 이승룡

소개
솔루션 아키텍트로 오픈 소스 기반 솔루션 개발 및 컨설팅 업무를 하고 있으며, IT와 관련된 다양한 분야에 관심이 많다. 특히 오픈 소스에 관심이 많아 전자정부 표준 프레임워크 에반젤리스트, 스프링 프레임워크 컨트리뷰터, 아파치 재단 커미터 등으로 활동하고 있으며, 다양한 커뮤니티에서 테크니컬 라이터로도 활동 중이다.

ㆍ감수 김성윤

소개
21세기 직전부터 애플리케이션 개발자, 소프트웨어 아키텍트로 활동하다 현재는 시민의 일상을 뒷받침하는 대형 시스템을 운영하고 있다. 뭐든 손으로 직접 해봐야 직성이 풀리며, 운영 중인 업무에서 매일같이 발생하는 거대 데이터를 적시에 적절히 활용하는 방법에 관심이 많다.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.