길벗·이지톡

도서 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  아파치 톰캣에 애플리케이션 배포


 

더보기접기

저자

ㆍ지은이 롭해롭

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

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

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

ㆍ지은이 크리스샤이퍼

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

ㆍ지은이 클라렌스호

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

ㆍ옮긴이 김성윤

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

ㆍ옮긴이 서경석

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

ㆍ옮긴이 이승룡

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

ㆍ감수 김성윤

감수 소개
나카무라 게이고(JIEC 기반엔지니어링사업부 시스템3부) 1999년 입사 이후 유닉스(UNIX) 계열 인프라 엔지니어로 일하며 금융, 보험, 유통 등 다양한 업종에서 시스템을 설계하고 구축했습니다. 웹 애플리케이션 서버 기술도 뛰어나 고객에게 두터운 신뢰를 얻고 있습니다. 이 책의 전체적인 내용을 검토했고 리뷰를 담당했습니다. 가족으로 아내와 2남 1녀가 있습니다. 아이와 함께 조깅하면서 흥미를 느껴, 취미로 도쿄와 요코하마의 마라톤 대회를 완주할 정도의 실력을 갖추었습니다. 요시다 다케미(JIEC 기반엔지니어링사업부 시스템1부) 지금까지 서버, 네트워크 장비, 각종 소프트웨어 등 제품 판매와 IT 관련 고객의 요구사항이나 과제를 최적의 형태로 해결할 수 있는 솔루션 제안 등 영업 업무부터 모 지자체 클라우드 서비스 인프라 구축, 운영, 유지보수 등 인프라 SE 업무까지 폭넓게 경험했습니다. 현재는 모 은행의 개발 프로젝트 환경 운영 및 유지보수 업무 팀의 리더로 활약하고 있습니다. 취미는 아홉 살부터 시작한 축구의 연장선인 풋살이며, 언젠가 경기장에서 화려한 터치로 딸에게 골을 어시스트해 주고 싶어 합니다. 나카니시 히데노리(JIEC 기반엔지니어링사업부 시스템1부) 벤더 회사에서 보안 솔루션을 다루는 것을 시작으로 대규모 네트워크 운영 및 모니터링 시스템의 설계와 구축, 웹 시스템 개발 등 다양한 업무 경험을 쌓았습니다. 이것을 바탕으로 ‘요구사항 정의’부터 ‘운영 및 품질 관리’까지 일련의 업무를 담당하고 있습니다. 현재는 모 외국계 IT 기업에서 거시적 관점에서 시스템 전체 균형을 생각하여 사용자가 원하는 요구사항이 무엇인지 파악하며 인프라를 중심으로 한 요구사항 정의와 개발 추진 업무를 진행합니다. 앞으로I T 산업에 참여하고 싶은 사람이나 현재 성장을 고민하는 사람에게 서포터가 되는 것을 목표로 매일 정진하고 있습니다. 히키츠구 미츠테루(JIEC 비즈니스기획개발본부 솔루션개발부) 1993년 입사한 이후로 시스템 엔지니어로서 여러 은행의 시스템 인프라를 구축했습니다. 2017년부터 AI, 클라우드를 활용한 신규 서비스 기획, 개발 업무를 진행하며 2018년 봄에 Al 문의 지원 서비스 ‘manaBrain’을 출시했습니다. 두 살배기 아들을 매우 사랑하며 개인 SNS는 이미 육아 일기가 되었습니다.

연관 프로그램

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