그림으로 배우는 스프링 6 입문 (애플리케이션을 직접 만들어보며 익히는 스프링 기본기와 실무 스킬)

그림으로 배우는 스프링 6 입문 (애플리케이션을 직접 만들어보며 익히는 스프링 기본기와 실무 스킬)

$41.73
Description
현장에 필요한 스프링 기본기 구축과 자바 실력 레벨업을 동시에!
* 최신 버전 스프링 프레임워크 기반 실습 제공
* 스프링 부트 3 포함
스프링은 자바를 배울 때 보지 못했던 새로운 개념, 이해하기 어려운 용어가 많아 입문자가 배우기 어렵습니다. 하지만 이 책은 『스프링3 입문』과 『스프링4 입문』을 집필한 스프링 전문가인 저자가 오랜 스프링 교육 경험을 토대로 구상한 그림과 설명으로 구성되어 있기 때문에 누구나 쉽게 이해할 수 있습니다. 크게 [기본편]과 [실무편]으로 구분되는데, [기본편]에서는 스프링 6의 전반적인 기능과 원리, 실무편에서는 실제 개발 현장에서 유용한 각종 스킬을 배울 수 있습니다. 따라서 이제 막 자바를 알게 된 스프링 입문자에게도 유용하지만, 그동안 스프링을 제대로 이해하지 못한 채로 사용했던 자바 개발자에게도 코드 한 줄 한 줄이 어떻게 작동하는지 확실히 배울 수 있는 기회가 될 것입니다. 자바 17, 스프링 6를 비롯한 최신 버전의 소프트웨어로 〈수강 신청 애플리케이션〉과 〈상품 주문 애플리케이션〉을 직접 만들어보며 기본기와 실무 스킬을 다져보세요!
저자

토키 코헤이

(土岐 孝平)
대학에서 정보 공학을 전공했지만 졸업 후에는 캐주얼 숍에서 판매원으로 일하다가 IT 업계에 합류했다. 2002년에 스프링의 창시자인 로드 존슨(Rod Johnson)의 책 『J2EE Design and Development』을 접하고 스프링의 팬이 되었다. 다양한 개발 프로젝트에 참여하며 비효율적인 개발 환경을 겪고 교육의 중요성을 통감했다. 이러한 이유로 2008년부터는 교육 분야에서 활동을 시작했다. 2012년에는 주식회사 현장지향(https://www.genba-oriented.com)을 설립해 스프링을 중심으로 한 교육 프로그램 강사로 활동 중이다. 저서로는 『OpenID Connect入門(OpenID Connect 입문)』(Kindle Direct Publishing, 2021), 『[改訂新版] Spring入門(스프링 입문 개정판)』(기술평론사, 2016), 『間違いだらけのソフトウェアㆍアーキテクチャ(오류 투성이 소프트웨어 아키텍처)』(기술평론사, 2010) 등이 있다.

목차

[1부 기본편]

1장 스프링 개요
1.1 스프링이란?
1.2 스프링의 다양한 프로젝트
1.3 스프링 프레임워크 개요
1.4 스프링 시큐리티 개요
1.5 스프링 부트 개요
1.6 스프링의 탄생과 개발 조직
1.7 스프링이 인기 있는 이유

2장 웹 애플리케이션 개요
2.1 웹 애플리케이션이란?
2.2 MPA
2.3 SPA
2.4 프로그램의 역할
2.5 처리 흐름

3장 DI의 개념
3.1 DI란?
3.2 DI로 무엇을 할까?
3.3 DI 설명을 위한 클래스와 인터페이스 소개
3.4 객체를 준비하는 간편한 방법
3.5 DI 사용법
3.6 다시, DI란?
3.7 DI와 인터페이스
실습

4장 DI 컨테이너
4.1 외부에서 직접 객체를 준비할 때의 문제점
4.2 DI 컨테이너를 사용한 솔루션
4.3 DI 컨테이너 관련 기본 용어
4.4 JavaConfig에 설정 정보 작성하기
4.5 Bean 정의 작성하기

5장 스테레오타입 애너테이션
5.1 스테레오타입 애너테이션이란?
5.2 스테레오타입 애너테이션의 종류
5.3 인젝션 지시
5.4 컴포넌트 스캔
5.5 DI 컨테이너를 생성하고 Bean 가져오기
5.6 3가지 인젝션 방법
_5.6.1 생성자 인젝션
_5.6.2 Setter 인젝션
_5.6.3 필드 인젝션
5.7 같은 타입의 Bean이 여러 개 존재할 때 인젝션 방법
실습

6장 프로파일로 설정 전환하기
6.1 프로파일이란?
6.2 환경별 프로파일
6.3 프로파일 사용법
6.4 활성화할 프로파일 지정하기
실습

7장 JavaConfig와 @Bean 메서드
7.1 JavaConfig란?
7.2 여러 개의 JavaConfig 클래스 불러오기
_7.2.1 AnnotationConfigApplicationContext 클래스의 생성자 인수로 지정하기
_7.2.2 @Import로 가져오기
_7.2.3 컴포넌트 스캔하기
7.3 @Bean 메서드란?
7.4 인젝션
7.5 적절한 Bean 정의 방법 선택하기
7.6 〈bean〉 태그의 Bean 정의가 존재하는 이유
7.7 라이브러리의 클래스를 Bean으로 정의하기
7.8 JavaConfig와 프로파일
실습

8장 스프링 JDBC: 데이터베이스 접근
8.1 스프링과 데이터베이스 접근
_8.1.1 다른 라이브러리와의 연동
_8.1.2 스프링 데이터
_8.1.3 스프링 JDBC
8.2 자바와 데이터베이스 접근
8.3 스프링 JDBC란?
8.4 JDBC와 스프링 JDBC의 비교
8.5 스프링 JDBC의 활용 사례
8.6 JdbcTemplate 클래스
8.7 검색 계열 처리
_8.7.1 하나의 컬럼만 가져오기
_8.7.2 레코드를 Map 객체로 변환해서 가져오기
_8.7.3 레코드를 Entity 객체로 변환해서 가져오기
8.8 갱신 계열 처리
_8.8.1 INSERT 문
_8.8.2 UPDATE 문
_8.8.3 DELETE 문
8.9 JdbcTemplate 클래스의 Bean 정의
실습

9장 선언적 트랜잭션
9.1 트랜잭션이란?
9.2 웹 애플리케이션의 트랜잭션
9.3 트랜잭션과 커넥션
9.4 트랜잭션을 자체적으로 제어할 때의 문제점
9.5 스프링의 선언적 트랜잭션
9.6 트랜잭션의 내부 구조
9.7 PlatformTransactionManager의 구상 클래스
9.8 PlatformTransactionManager의 Bean 정의
9.9 @Transactional을 활성화하는 설정
9.10 로그 출력 방법
실습

10장 스프링 부트로 생산성 향상하기
10.1 라이브러리 준비하기
10.2 자동 설정
_10.2.1 자동 설정의 메커니즘
_10.2.2 자동 설정의 프로퍼티
10.3 내장 AP 서버
10.4 스프링 부트를 사용할 때 DI 컨테이너를 생성하는 방법
10.5 스프링 부트에서 오해하기 쉬운 것들
실습

11장 스프링 MVC + Thymeleaf
11.1 MVC란?
11.2 스프링 MVC란?
11.3 Thymeleaf란?
11.4 간단한 예제
_11.4.1 pom.xml 설정하기
_11.4.2 Controller 클래스 생성하기
_11.4.3 View 작성하기
_11.4.4 스프링 부트로 실행하기
_11.4.5 브라우저에서 확인하기
11.5 전체 처리 흐름
11.6 Service 객체 인젝션
11.7 핸들러 메서드와 @XxxMapping
11.8 요청 파라미터 가져오기
11.9 View에 데이터 전달하기
11.10 Thymeleaf로 데이터 참조하기
11.11 List 객체 참조하기
11.12 입력 화면과 입력 검사
11.13 Bean Validation을 이용한 입력 검사
11.14 입력 화면 표시 방법
11.15 입력 화면 템플릿 파일
11.16 입력 검사 방법
11.17 오류 문구 설정
11.18 요청 파라미터를 사용한 핸들러 메서드 호출
11.19 예외 핸들링
실습

12장 RESTful 웹 서비스 만들기
12.1 웹 서비스란?
12.2 최근의 개발 프로젝트와 웹 서비스
_12.2.1 SPA와 웹 서비스
_12.2.2 마이크로서비스와 웹 서비스
12.3 REST란?
12.4 REST의 규칙
_12.4.1 URL로 리소스 식별하기
_12.4.2 HTTP 메서드로 리소스 조작하기
_12.4.3 응답 바디의 데이터 형식
_12.4.4 요청 바디의 데이터 형식
_12.4.5 상태 코드 활용하기
_12.4.6 헤더 활용하기
_12.4.7 서버 측을 무상태로 만들기
12.5 스프링 MVC의 REST 지원
12.6 HTTP 메서드와 @XxxMapping
12.7 HttpMessageConverter로 요청/응답 데이터 변환하기
12.8 상태 코드 지정하기
12.9 요청 헤더 참조하기
12.10 응답 헤더 지정하기
12.11 참조 계열 REST API 만들기
실습

13장 갱신 계열 REST API 만들기
13.1 갱신 계열 HTTP 메서드
13.2 PUT의 요청과 응답
13.3 요청 바디 변환
13.4 PUT에 대응하는 핸들러 메서드
13.5 POST의 요청과 응답
13.6 POST에 대응하는 핸들러 메서드
13.7 DELETE의 요청과 응답
13.8 DELETE에 대응하는 핸들러 메서드
13.9 예외 발생 시 상태 코드 지정하기
실습

14장 스프링 시큐리티
14.1 인증과 인가
_14.1.1 인증이란?
_14.1.2 인가란?
14.2 스프링 시큐리티 인증의 개요
14.3 스프링 시큐리티 인가의 개요
14.4 스프링 시큐리티의 필터
14.5 시큐리티 필터 체인 설정하기
14.6 요청 인가
14.7 로그인 화면
14.8 인가 실패 시 오류 화면
14.9 인증용 데이터 가져오기
14.10 화면 표시 인가
14.11 인증한 사용자 정보를 화면에 표시하기
14.12 메서드 인가
14.13 CSRF 대응
14.14 스프링 시큐리티를 통한 CSRF 대응
실습


[2부 실무편]

15장 싱글톤과 스레드 세이프
15.1 싱글톤과 Bean
15.2 싱글톤과 스레드 세이프
15.3 스레드 세이프하지 않은 코드
15.4 스레드 세이프한 코드
15.5 Bean으로 관리하지 않는 객체
실습

16장 스프링 JDBC: JOIN 결과 가져오기
16.1 테이블 JOIN 예제
16.2 컬럼명 중복 문제
16.3 JOIN한 레코드 매핑하기
16.4 DataClassRowMapper의 단점
16.5 RowMapper 인터페이스로 해결하기
16.6 일대다 변환
16.7 ResultSetExtractor 인터페이스
16.8 실제 개발 프로젝트에 적용하기
실습

17장 데이터베이스 접근 시 예외 처리
17.1 데이터베이스 접근 방식과 예외 문제
17.2 범용 예외 클래스로 해결하기
17.3 DataAccessException 클래스의 대표적인 서브 클래스
17.4 DataAccessException 클래스의 처리 흐름
실습

18장 트랜잭션 전파
18.1 트랜잭션 전파란?
18.2 트랜잭션 전파 설정하기
18.3 REQUIRED의 동작
18.4 REQUIRED_NEW의 동작
18.5 REQUIRED_NEW가 필요한 상황
18.6 주의 사항
실습

19장 세션 스코프
19.1 세션 스코프란?
19.2 세션 스코프의 활용 사례
19.3 스프링 MVC와 세션 스코프
19.4 세션 스코프의 Bean
19.5 세션 스코프의 Proxy
19.6 세션 스코프의 Bean 정의
19.7 세션 스코프의 Bean 인젝션
19.8 세션 스코프의 Bean 조작
_19.8.1 사용자 입력 시 ReservationInput 객체를 저장한다
_19.8.2 신청 확정 시 ReservationInput 객체를 가져온다
_19.8.3 신청 완료 시 ReservationInput 객체를 삭제한다
19.9 여러 개의 Controller에서 세션 스코프 Bean 공유하기
실습

20장 플래시 스코프
20.1 갱

출판사 서평

그림과 실습으로 쉽게 익히는 최신 스프링 6 입문서

스프링은 초보자뿐만 아니라 현직 자바 개발자들도 완전히 이해하기 어려운 프레임워크입니다. 따라서 이 책은 [1부 기본편]과 [2부 실무편]으로 나누어 누구나 쉽게 스프링의 내부 동작을 이해하고 실제 개발 현장에서 바로 활용할 수 있도록 구성되었습니다. 친절한 그림과 설명으로 개념을 익히고, 각 장의 마지막에 제공되는 실습 과제에 도전하다 보면 스프링에 금방 익숙해질 수 있을 것입니다.

〈 [1부 기본편]에서 다루는 내용 〉
● 입문자가 놓치고 지나갈 수 있는 용어(예: SPA, 애너테이션 등)
● 스프링의 전체적인 기능
● 스프링의 기본 기능을 기반으로 한 예제

〈 [2부 실무편]에서 다루는 내용 〉
● 1부에서 다룬 기본 기능의 추가적인 사용법
● 실제 개발 현장에서 쓸 수 있는 다양한 기능과 실무 스킬
● JUnit을 사용한 테스트 자동화
● 수강 신청 애플리케이션과 상품 주문 애플리케이션 구축 실습

== 이런 분들께 추천합니다 ==
● 스프링이 아예 처음인 입문자
● 스프링에 익숙해지고 싶은 초급~중급 자바 개발자