본문 바로가기

리디북스 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디북스 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기


배워서 바로 쓰는 스프링 프레임워크 상세페이지

컴퓨터/IT 개발/프로그래밍

배워서 바로 쓰는 스프링 프레임워크

AOP, 보안, 메시징부터 스프링 웹 MVC까지 실용적인 예제로 한눈에 알아보는 스프링 가이드

구매종이책 정가50,000
전자책 정가40,000(20%)
판매가40,000
배워서 바로 쓰는 스프링 프레임워크

책 소개

<배워서 바로 쓰는 스프링 프레임워크> 88가지 단계별 프로젝트로 익히는 스프링 프레임워크

이 책은 스프링 5 기본과 개념, 최신 업데이트된 프레임워크 전반을 단계별로 접근합니다. IoC 컨테이너 같은 스프링 기초부터 스프링 데이터, 스프링 AOP, 스프링 메시징, 스프링 웹 MVC, 스트림 API, 스프링 시큐리티, RESTful 웹 서비스, 반응형 프로그래밍, 함수형 프로그래밍, RxJava 2, 스프링 웹플럭스, 리액터 등 고급 주제까지 다룹니다.
88가지 실전 프로젝트를 단계별로 학습하면 스프링을 처음 배우는 독자라도 실제 사례를 개념적으로 이해하며 해결책을 만들어볼 수 있습니다. 손으로 직접 따라 해보며 유지보수 및 테스트하기 좋은 애플리케이션을 개발해보세요.


출판사 서평

애플리케이션 개발을 위한 구조를 한 번에 익히는 비법 대방출

이 책은 스프링 프레임워크의 동작과 구조를 이해하고, 여러분이 원하는 작업을 XML, 애너테이션, 자바 메서드 호출을 사용해 달성하는 방법을 설명한다. 따라서 이 책은 스프링을 배울 때는 물론, 실무에서 스프링을 사용하며 필요한 부분을 찾아보는 참고서로도 활용할 수 있다.


1장. 스프링 프레임워크 소개
스프링을 이루는 여러 모듈을 소개하고 각각의 장점을 알아본다. 스프링 DI 기능을 사용하는 간단한 스프링 애플리케이션을 살펴보면서 스프링 및 웹 애플리케이션 개발에 중요한 애플리케이션의 아키텍처를 이해한다.

2장. 스프링 프레임워크 기초
스프링의 기본 개념을 다룬다. ‘인터페이스를 사용하는 프로그래밍’ 설계 접근 방법을 살펴보고, 빈 인스턴스를 만드는 다양한 접근 방법과 생성자 기반 DI, 빈 스코프에 대해 알아본다. 스프링 코어의 하나인 DI를 살펴본다. DI의 개요를 설명하고 스프링에서 DI를 어떻게 이용하는지 알아본 후, 그 특징과 사용법을 이해한다.

3장. 빈 설정
빈 설정 방법을 살펴본다. 빈 정의 상속과 스프링 util 스키마, p-이름공간과 c-이름공간, FactoryBean 인터페이스 등을 살펴본다.

4장. 의존 관계 주입
스프링이 다양한 의존 관계 주입을 어떻게 처리하는지 살펴본다. 3에서는 스프링 컨테이너가 빈 인스턴스 생성과 의존 관계 주입을 책임지는 내용이 나온다.

데이터 액세스 층의 설계상 문제점과 해결책을 알아본 다음, 스프링 JDBC와 스프링 Data JPA를 살펴본다. 스프링 JDBC와 스프링 Data JPA의 이점 및 사용법을 이해할 수 있다.

5장. 빈과 빈 정의 커스텀화하기
커스텀 초기화와 정리 로직을 빈 인스턴스에 추가하는 방법을 살펴본다. 그리고 BeanPostProcessor 구현을 사용해 새로 생성된 빈 인스턴스를 변경하고, BeanFactoryPostProcessor를 사용해 빈 정의를 변경하는 방법도 알아본다. 스프링은 내부적으로 BeanPostProcessor와 BeanFactoryPostProcessor를 사용해 여러 프레임워크 기능을 제공한다.

6장. 애너테이션 기반 개발
스프링의 애너테이션 기반 개발 지원에 대해 살펴본다. 애너테이션을 사용해 3, 4, 5장에서 배운 빈 정의와 똑같은 정보를 빈 클래스에 지정한다. 이 장을 마치고 나면 XML 파일에 명시적으로 빈을 설정하는 수고를 덜 수 있다.

7장. 자바 기반 컨테이너 설정
프로그램 코드로 스프링 컨테이너를 설정하고, 컨테이너에 빈을 등록하는 방법을 살펴본다. 이 장을 마치고 나면 애플리케이션 개발에서 XML이나 자바 애너테이션, 자바 기반 컨테이너 설정 중 원하는 방법을 취향에 맞게 선택할 수 있다.

8장. 스프링을 사용해 데이터베이스와 상호 작용하기
대표적인 ORM 데이터 액세스 기술인 하이버네이트와 연계하는 방법을 알아본다. 이 장을 마치면 ORM 단독으로 사용하는 것보다 스프링과 연계하는 편이 좋다는 점을 알 수 있으며, 각 ORM의 특징을 이해한 후 실제 현장에서 무엇이 최적인지 판단할 수 있다.

9장. 스프링 데이터
스프링 데이터 JPA와 스프링 데이터 몽고DB 프로젝트를 사용해 애플리케이션의 리포지터리 레이어를 만드는 방법을 살펴본다. 이 장을 마치면 대부분의 스프링 데이터 프로젝트가 따르는 핵심 개념을 이해할 수 있다.

10장. 스프링을 사용한 메시징, 전자우편, 비동기 메시지 실행, 캐싱
자바 메시지 서비스를 사용한 메시징, 전자우편, 비동기 메시지를 전송하는 방법을 알아본다. 스프링 5부터 지원하는 java.util.concurrent.ConcurrentMap, Ehcache, Caffeine, Guava, GemFire나 JSR 107(자바 임시 캐싱 API)을 구현한 캐시 솔루션에 대한 캐시 추상화를 알아본다.

11장. AOP
이번 장에서는 AOP의 개념을 살펴보고, 스프링 AOP를 사용해 스프링 애플리케이션에서 횡단 관심사를 표현하는 방법을 살펴본다. 그리고 AspectJ 애너테이션 스타일과 XML 스키마 스타일로 애스팩트를 만드는 방법도 알아본다.

12장. 스프링 웹 MVC 기초
스프링 웹 MVC 애플리케이션에서 중요한 객체를 살펴본다. 샘플 애플리케이션을 학습하며 스프링의 MVC 프레임워크 개념을 이해하고, MVC 프레임워크를 구성하는 기본적인 클래스 이용법을 알아본다.

13장. 스프링 웹 MVC를 활용한 검증과 데이터 바인딩
스프링 웹 MVC의 핵심 기능들을 학습한다. 애너테이션을 설정한 컨트롤러를 개발할 때 자주 쓰는 @ModelAttribute와 @SessionAttribute에 대해 알아본 후, 스프링이 데이터 바인딩과 검증을 어떻게 수행하는지 자세히 살펴본다.

14장. 스프링 웹 MVC로 RESTful 웹 서비스 개발하기
스프링 웹 MVC를 사용해 RESTful 웹 서비스를 어떻게 개발하는지 살펴본다. 그리고 RestTemplate을 사용해 RESTful 웹 서비스에 동기적으로 접근하고, WebClient를 사용해 RESTful 웹 서비스에 비동기적으로 접근하는 방법도 알아본다.

15장. 스프링 웹 MVC 더 살펴보기 - 국제화, 파일 업로드, 비동기 요청 처리
이번 장에서는 웹 애플리케이션을 개발할 때 필요한 스프링 웹 MVC 프레임워크의 기능을 조금 더 깊이 살펴본다. 이 장을 마치면 웹 애플리케이션 개발을 편하게 해주는 스프링 웹 MVC 프레임워크의 중요성을 깨달을 수 있을 것이다

16장. 스프링 시큐리티를 사용한 애플리케이션 보안
스프링 시큐리티 프레임워크를 사용해 스프링 애플리케이션을 보호하는 방법을 살펴본다. 웹 애플리케이션에는 반드시 필요하지만 그 중요성에 비해 이해하는 사람이 적다고 생각되는 인증 기능을 설명한다. 기본적인 개념부터 인증·기능을 구현하는 방법까지 알아본다.

17장. 자바 함수형 프로그래밍
함수형 스타일 프로그래밍을 지원하는 자바 구성 요소를 살펴본다. 자바 8에서 함수형 스타일 프로그래밍을 지원하기 위해 추가된 새로운 언어 요소와 기능을 학습한다.

18장. RxJava 2를 사용한 반응형 프로그래밍
반응형 설계 원칙과 반응형 스트림 명세에 정의된 핵심 개념과 API를 설명한다. 그리고 RxJava 2 라이브러리를 통해 반응형 애플리케이션을 개발하는 방법도 알아본다.

19장. 스프링 웹플럭스, 스프링 데이터, 스프링 시큐리티를 사용해 반응형 RESTful 웹 서비스 개발하기
몽고DB의 반응형 JDBC 드라이버, 스프링 데이터, 스프링 시큐리티, 스프링 웹플럭스를 사용해 실제로 반응형 애플리케이션을 개발하는 방법을 살펴본다. 이 장은 앞에서 배운 내용을 기반으로 반응형 RESTful 웹 서비스를 개발한다.



저자 소개

지은이 애시시 사린 Ashish Sarin
썬 공인 엔터프라이즈 아키텍트(SCEA)로서 18년 이상 애플리케이션 아키텍처를 설계한 경력이 있다. 『Spring Roo 1.1 Cookbook』(팩트, 2017)과 『Portlets in Action』(매닝, 2011)의 저자다.

지은이 제이 샤르마 J Sharma
다양한 스프링 애플리케이션 개발 경력을 지닌 프리랜서 자바 개발자다.

옮긴이 오현석
KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 현재 호주 브리즈번 JNF Soft에서 소프트웨어 개발자 및 컨설턴트로 일한다. 최근에는 블록체인 관련 기반 기술 연구 개발과 블록체인을 활용한 서비스 개발에 참여했다. 함수형 프로그래밍을 활용해 오류 발생 가능성이 적으면서도 유지보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 『엔터프라이즈 자바 마이크로서비스』(한빛미디어, 2019), 『Kotlin in Action』(에이콘, 2017) 등 20여 권의 책을 번역했다.

목차

CHAPTER 1 스프링 프레임워크 소개
1.1 소개
1.2 스프링 모듈
1.3 스프링 IoC 컨테이너
1.4 스프링의 장점
1.5 간단한 스프링 애플리케이션
1.6 스프링 5의 새로운 내용
1.7 스프링에 기반한 프레임워크들
1.8 요약

CHAPTER 2 스프링 프레임워크 기초
2.1 소개
2.2 ‘인터페이스를 사용하는 프로그래밍’ 설계 원칙
2.3 정적 팩토리 메서드나 인스턴스 팩토리 메서드를 사용해 빈 만들기
2.4 생성자 기반 DI
2.5 설정 정보를 빈에 전달하기
2.6 빈 스코프
2.7 요약

CHAPTER 3 빈 설정
3.1 소개
3.2 빈 정의 상속
3.3 생성자 인수 매치하기
3.4 다른 타입의 빈 프로퍼티와 생성자 인수 설정하기
3.5 내장 프로퍼티 에디터
3.6 스프링 컨테이너에 프로퍼티 에디터 등록하기
3.7 이름공간으로 빈 정의를 간결하게 만들기
3.8 util 스키마
3.9 FactoryBean 인터페이스
3.10 빈 설정 모듈화하기
3.11 요약

CHAPTER 4 의존 관계 주입
4.1 소개
4.2 내부 빈
4.3 depends-on 속성을 통해 빈 초기화 순서 제어하기
4.4 싱글턴과 프로토타입 스코프 빈의 의존 관계
4.5 싱글턴 빈 내부에서 새로운 프로토타입 빈 인스턴스 얻기
4.6 의존 관계 자동 연결
4.7 요약

CHAPTER 5 빈과 빈 정의 커스텀화하기
5.1 소개
5.2 빈의 초기화와 정리 로직 커스텀화하기
5.3 BeanPostProcessor를 사용해 새로 생성된 빈 인스턴스와 상호 작용하기
5.4 BeanFactoryPostProcessor를 사용해 빈 정의 변경하기
5.5 요약

CHAPTER 6 애너테이션 기반 개발
6.1 소개
6.2 @Component - 스프링 빈 식별하기
6.3 @Autowired - 객체의 타입으로 의존 관계 자동 연결하기
6.4 @Qualifier - 빈 이름으로 의존 관계 자동 연결하기
6.5 JSR 330 @Inject와 @Named 애너테이션
6.6 JSR 250 @Resource 애너테이션
6.7 @Scope, @Lazy, @DependsOn, @Primary 애너테이션
6.8 @Value 애너테이션을 사용해 빈 클래스 설정하기
6.9 스프링 Validator 인터페이스를 사용해 객체 검증하기
6.10 JSR 380(빈 검증 2.0) 애너테이션을 사용해 제약 사항 지정하기
6.11 빈 정의 프로파일
6.12 요약

CHAPTER 7 자바 기반의 컨테이너 설정
7.1 소개
7.2 @Configuration과 @Bean 애너테이션으로 빈 설정하기
7.3 빈 의존 관계 주입하기
7.4 스프링 컨테이너 설정하기
7.5 생명주기 콜백
7.6 자바 기반 설정 임포트하기
7.7 다른 주제들
7.8 요약

CHAPTER 8 스프링을 사용해 데이터베이스와 상호 작용하기
8.1 소개
8.2 MyBank 애플리케이션 요구 사항
8.3 스프링 JDBC 모듈로 MyBank 애플리케이션 개발하기
8.4 하이버네이트로 MyBank 애플리케이션 개발하기
8.5 스프링을 통한 트랜잭션 관리
8.6 자바 기반 설정을 사용하는 MyBank 애플리케이션 개발하기
8.7 요약

CHAPTER 9 스프링 데이터
9.1 소개
9.2 핵심 개념과 인터페이스
9.3 스프링 데이터 JPA
9.4 Querydsl을 사용해 질의 만들기
9.5 예제를 통한 질의
9.6 스프링 데이터 몽고DB
9.7 요약

CHAPTER 10 스프링을 사용한 메시징, 전자우편, 비동기 메시지 실행, 캐싱
10.1 소개
10.2 MyBank 애플리케이션의 요구 사항
10.3 JMS 메시지 보내기
10.4 JMS 메시지 받기
10.5 전자우편 보내기
10.6 작업 스케줄링과 비동기 실행
10.7 캐싱
10.8 MyBank 애플리케이션 실행하기
10.9 요약

CHAPTER 11 AOP
11.1 소개
11.2 간단한 AOP 예제
11.3 스프링 AOP 프레임워크
11.4 포인트컷 식
11.5 어드바이스 유형
11.6 스프링 AOP - XML 스키마 스타일
11.7 요약

CHAPTER 12 스프링 웹 MVC 기초
12.1 소개
12.2 샘플 웹 프로젝트의 디렉터리 구조
12.3 ‘Hello World’ 애플리케이션 이해하기
12.4 DispatcherServlet - 프론트 컨트롤러
12.5 @Controller와 @RequestMapping을 사용해 컨트롤러 개발하기
12.6 MyBank 웹 애플리케이션 요구 사항
12.7 스프링 웹 MVC 애너테이션 - @RequestMapping과 @RequestParam
12.8 검증
12.9 @ExceptionHandler 애너테이션으로 예외 처리하기
12.10 루트 웹 애플리케이션 컨텍스트 XML 파일(들) 로드하기
12.11 요약

CHAPTER 13 스프링 웹 MVC를 활용한 검증과 데이터 바인딩
13.1 소개
13.2 @ModelAttribute 애너테이션을 사용해 모델 추가하고 가져오기
13.3 @SessionAttribute 애너테이션을 사용해 모델 속성 캐싱하기
13.4 스프링의 데이터 바인딩 지원
13.5 스프링의 검증 지원
13.6 스프링 form 태그 라이브러리
13.7 자바 기반 설정을 사용해 웹 애플리케이션 설정하기
13.8 요약


CHAPTER 14 스프링 웹 MVC로 RESTful 웹 서비스 개발하기
14.1 소개
14.2 정기 예금 웹 서비스
14.3 스프링 웹 MVC를 사용해 RESTful 웹 서비스 구현하기
14.4 RestTemplate과 WebClient로 RESTful 웹 서비스에 접근하기
14.5 HttpMessageConverter로 자바 객체를 HTTP 요청이나 응답으로 변경하거나, 반대 방향으로 변경하기
14.6 @PathVariable과 @MatrixVariable 애너테이션
14.7 요약

CHAPTER 15 스프링 웹 MVC 더 살펴보기
- 국제화, 파일 업로드, 비동기 요청 처리
15.1 소개
15.2 핸들러 인터셉터를 사용해 요청을 전처리/후처리하기
15.3 자원 번들을 사용해 국제화하기
15.4 요청을 비동기적으로 처리하기
15.5 타입 변환과 형식화 지원
15.6 스프링 웹 MVC의 파일 업로드 지원
15.7 요약

CHAPTER 16 스프링 시큐리티를 사용한 애플리케이션 보안
16.1 소개
16.2 MyBank 웹 애플리케이션의 보안 요구 사항
16.3 스프링 시큐리티로 MyBank 웹 애플리케이션 보호하기
16.4 MyBank 웹 애플리케이션 - 스프링 시큐리티에 ACL 모듈을 사용해 FixedDepositDetails 인스턴스 보호하기
16.5 자바 기반 설정 방식을 사용해 스프링 시큐리티 설정하기
16.6 요약

CHAPTER 17 자바 함수형 프로그래밍
17.1 소개
17.2 명령형 스타일과 함수형 스타일 비교
17.3 람다식
17.4 간단한 함수와 고차 함수 만들기
17.5 Stream API
17.6 메서드 참조
17.7 요약

CHAPTER 18 RxJava 2를 사용한 반응형 프로그래밍
18.1 소개
18.2 반응형 스트림
18.3 뜨거운 출간자와 차가운 출간자
18.4 배압
18.5 요약

CHAPTER 19 스프링 웹플럭스, 스프링 데이터, 스프링 시큐리티를 사용해 반응형 RESTful 웹 서비스 개발하기
19.1 소개
19.2 리액터와 RxJava 2에 정의된 반응형 타입
19.3 스프링 데이터를 사용해 데이터 접근 레이어 개발하기
19.4 스프링 웹플럭스를 사용해 웹 레이어 개발하기
19.5 웹플럭스 애플리케이션 보호하기
19.6 요약

부록 A 몽고DB 데이터베이스 설치하기
A.1 몽고DB 데이터베이스 다운로드하고 설치하기
A.2 몽고DB 데이터베이스에 연결하기

부록 B 이클립스 IDE에서 예제 프로젝트 임포트하기
B.1 이클립스 IDE와 톰캣 9 설치하기
B.2 예제 프로젝트를 이클립스 IDE로 임포트하기
B.3 이클립스 IDE와 톰캣 9 서버 설정하기
B.4 웹 프로젝트를 톰캣 9 서버에 배포하기

부록 C 스프링 부트 2 소개와 스프링 부트 테스트
C.1 들어가며
C.2 스프링 부트 애플리케이션 만들기
C.3 스프링 부트의 동작
C.4 MyBank 애플리케이션 개발 - TDD를 사용한 웹 API 개발
C.5 요약


리뷰

구매자 별점

0.0

점수비율

  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디북스에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전