길벗·이지톡

도서 IT전문서/IT입문서

스프링 기초 이론부터 스프링 부트, 웹 애플리케이션 구현, 보안 강화, 리팩터링, 테스트까지

개발 전반의 내용을 책 한 권에 모두 담았다!

 

이 책의 최종 목표는 스프링을 다양한 예제를 천천히 따라 하며 배우고, 더불어 실무 감각을 높여 실전에 바로 적용하는 것이다. 이를 위해 1부에서는 기초를 배우고 2부에서는 주어진 실습으로 직접 웹 애플리케이션을 구현한다. 1부에서는 스프링의 기본 구성 요소인 스프링 컨텍스트와 스프링 애스팩트의 사용 방법을 학습한다. 책의 후반부에서 모든 스프링의 기능이 이러한 필수 구성 요소에 의존한다는 것을 알게 될 것이다. 2부에서는 실제로 자주 사용되는 스프링 기능으로 앱을 구현하는 방법을 학습한다. 그리고 스프링이 이러한 작업을 간단하고 쉽게 만들어준다는 것을 알게 될 것이다. 스프링 앱에서 구현한 기능에 대한 단위 테스트와 통합 테스트 작성 방법까지 다루고 있기에 이 한 권으로 개발 전반의 내용을 배울 수 있다. 꼭 배워야 할 개념들만 확실하게 담은 이 책으로 스프링에 쉽게 입문하고 실무에 바로 적용해 보자.

 

목차

1부 기초

 

1장 현실 세계의 스프링

1.1 마이크로서비스 아키텍처로 진화

1.2 스프링 생태계

__1.2.1 스프링 코어의 이해: 스프링 기초

__1.2.2 스프링 데이터 액세스 기능을 사용한 앱 영속성 구현

__1.2.3 웹 앱 개발을 위한 스프링 MVC 기능

__1.2.4 스프링 테스트 기능

__1.2.5 스프링 생태계의 프로젝트

1.3 실제 시나리오에서 스프링

__1.3.1 백엔드 앱 개발에서 스프링 사용

__1.3.2 자동화 테스트 앱에서 스프링 사용

__1.3.3 데스크톱 앱 개발에서 스프링 사용

__1.3.4 모바일 앱에서 스프링 사용

1.4 프레임워크를 사용하지 말아야 할 때

__1.4.1 작게 만들어야 한다

__1.4.2 보안에는 맞춤형 코드가 필요하다

__1.4.3 기존의 과도한 맞춤화로 프레임워크가 실용적이지 못하다

__1.4.4 프레임워크로 바꾸어도 이점이 없다

1.5 이 책에서 배울 것

1.6 요약

 

2장 스프링 컨텍스트: 빈 정의

2.1 메이븐 프로젝트 생성

2.2 스프링 컨텍스트에 새로운 빈 추가

__2.2.1 @Bean 애너테이션을 사용하여 스프링 컨텍스트에 빈 추가

__2.2.2 스테레오타입 애너테이션으로 스프링 컨텍스트에 빈 추가

__2.2.3 프로그래밍 방식으로 스프링 컨텍스트에 빈 추가

2.3 요약

 

3장 스프링 컨텍스트: 빈 작성

3.1 구성 파일에서 정의된 빈 간 관계 구현

__3.1.1 두 @Bean 메서드 간 직접 메서드를 호출하는 빈 작성

__3.1.2 @Bean 메서드의 매개변수로 빈 와이어링하기

3.2 @Autowired 애너테이션을 사용한 빈 주입

__3.2.1 @Autowired로 클래스 필드를 이용한 값 주입

__3.2.2 @Autowired를 사용하여 생성자로 값 주입

__3.2.3 setter를 이용한 의존성 주입 사용

3.3 순환 의존성 다루기

3.4 스프링 컨텍스트에서 여러 빈 중 선택하기

3.5 요약

 

4장 스프링 컨텍스트: 추상화

4.1 계약 정의를 위한 인터페이스 사용

__4.1.1 구현 분리를 위해 인터페이스 사용

__4.1.2 시나리오 요구 사항

__4.1.3 프레임워크 없이 요구 사항 구현

4.2 추상화와 함께 의존성 주입

__4.2.1 스프링 컨텍스트에 포함될 객체 정하기

__4.2.2 추상화에 대한 여러 구현체 중에서 오토와이어링할 것을 선택

4.3 스테레오타입 애너테이션으로 객체의 책임에 집중

4.4 요약

5장 스프링 컨텍스트: 빈의 스코프 및 수명 주기

5.1 싱글톤 빈 스코프 사용

__5.1.1 싱글톤 빈의 작동 방식

__5.1.2 실제 시나리오의 싱글톤 빈

__5.1.3 즉시 및 지연 인스턴스 생성 방식

5.2 프로토타입 빈 스코프 사용

__5.2.1 프로토타입 빈의 동작 방식

__5.2.2 실제 시나리오에서 프로토타입 빈 관리

5.3 요약

 

6장 스프링 AOP로 애스펙트 사용

6.1 스프링에서 애스펙트 작동 방식

6.2 스프링 AOP를 사용한 애스펙트 구현

__6.2.1 간단한 애스펙트 구현

__6.2.2 가로챈 메서드의 매개변수 및 반환 값 변경

__6.2.3 애너테이션된 메서드 가로채기

__6.2.4 사용 가능한 다른 어드바이스 애너테이션

6.3 애스펙트 실행 체인

6.4 요약

 

2부 구현

7장 스프링 부트와 스프링 MVC 이해

7.1 웹 앱이란

__7.1.1 웹 앱에 대한 일반적인 개요

__7.1.2 스프링으로 웹 앱을 구현하는 다양한 방식

__7.1.3 웹 앱 개발에서 서블릿 컨테이너 사용

7.2 스프링 부트의 마법

__7.2.1 프로젝트 초기화 서비스를 이용한 스프링 부트 프로젝트 생성

__7.2.2 의존성 스타터를 사용한 의존성 관리 간소화

__7.2.3 의존성에 기반을 둔 관례에 따라 autoconfiguration 사용

7.3 스프링 MVC로 웹 앱 구현

7.4 요약

 

8장 스프링 부트와 스프링 MVC를 이용한 웹 앱 구현

8.1 동적 뷰를 사용한 웹 앱 구현

__8.1.1 HTTP 요청에서 데이터 얻기

__8.1.2 클라이언트에서 서버로 데이터를 전송하려고 요청 매개변수 사용

__8.1.3 경로 변수로 클라이언트에서 서버로 데이터 전송

8.2 HTTP GET과 POST 메서드 사용

8.3 요약

 

9장 스프링 웹 스코프

9.1 스프링 웹 앱에서 요청 스코프 사용

9.2 스프링 웹 앱에서 세션 스코프 사용

9.3 스프링 웹 앱에서 애플리케이션 스코프 사용

9.4 요약

10장 REST 서비스 구현

10.1 REST 서비스를 이용한 앱 간 데이터 교환

10.2 REST 엔드포인트 구현

10.3 HTTP 응답 관리

__10.3.1 객체를 응답 본문에 전송

__10.3.2 응답 상태 및 헤더 설정

__10.3.3 엔드포인트 수준에서 예외 관리

10.4 요청 본문을 사용하여 클라이언트의 데이터 가져오기

10.5 요약

 

11장 REST 엔드포인트 사용

11.1 스프링 클라우드 OpenFeign으로 REST 엔드포인트 호출

11.2 RestTemplate으로 REST 엔드포인트 호출

11.3 WebClient로 REST 엔드포인트 호출

11.4 요약

 

12장 스프링 앱에서 데이터 소스 사용

12.1 데이터 소스

12.2 JdbcTemplate으로 영속성 데이터 작업

12.3 데이터 소스 구성을 사용자 정의

__12.3.1 애플리케이션 프로퍼티 파일에서 데이터 소스 정의

__12.3.2 사용자 정의 DataSource 빈 사용

12.4 요약

 

13장 스프링 앱에서 트랜잭션 사용

13.1 트랜잭션

13.2 스프링에서 트랜잭션의 작동 방식

13.3 스프링 앱에서 트랜잭션 사용

13.4 요약

 

14장 스프링 데이터로 데이터 영속성 구현

14.1 스프링 데이터란

14.2 스프링 데이터의 작동 방식

14.3 스프링 데이터 JDBC 사용

14.4 요약

 

15장 스프링 앱 테스트

15.1 올바른 테스트 작성

15.2 스프링 앱에서 테스트 구현

__15.2.1 단위 테스트 구현

__15.2.2 통합 테스트 구현

15.3 요약

 

부록 A

A.1 아키텍처 방식

A.2 컨텍스트 구성에 XML 사용

A.3 HTTP 기초 이해

A.4 JSON 형식 사용

A.5 MySQL 설치와 데이터베이스 생성

A.6 권장 도구

A.7 심화 학습용 추천 자료

A.8 IntelliJ에서 예제 프로젝트 오픈 및 실행

 

 

 

더보기접기

저자&기여자

ㆍ지은이 로렌티우 스필카

소개
엔다바(Endava)에서 전문 개발 리드이자 트레이너로 일하며 유럽, 미국, 아시아의 고객을 대상으로 하는 금융 시장 프로젝트의 개발을 이끌고 있다. 10년 이상의 경력이 있는 그는 고품질의 소프트웨어를 제공하는 것뿐만 아니라 지식을 공유하고 다른 이들의 역량 향상을 돕는 것이 중요하다고 믿는다. 이러한 신념은 그가 자바 기술 관련 코스를 설계하고 가르치며, 발표와 워크숍을 진행하도록 이끌었다. 트위터에서도 활동하는데 계정은 @laurspilca이다.

ㆍ옮긴이 정성권

소개
마이크로서비스 아키텍처에 기반한 대규모 IoT 플랫폼(SmartThings) 구축과 13억 계정 플랫폼의 클라우드화를 리드했고, 미디어 플래폼의 MSA 전환 및 새로운 고객 주도형 서비스를 작게 시도하고 있다. 분산 시스템 설계와 클라우드 네이티브 개발, DevOps 활동, SRE, 개발 조직 문화에 주목해왔으며 100세 인생을 재미있게 보낼 프로그래밍과 소프트웨어 기술에 관심이 많다. 개인 시간에는 아이들과 게임이나 검도를 하고, 스쿠버 다이빙을 하며 시간을 보낸다. 『마이크로서비스 아키텍처 구축』을 번역했고, 『ABOUT .NET XML 웹 서비스』, 『PHP 웹 서버 구축하기』를 집필했다.

연관 프로그램

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