책은 스프링6 비기너를 위한 책인데.
책에 나와 있는 예제와 제공되는 소스간에 매칭이 잘 되지 않습니다.
책에 예제에 해당 예제가 소스 어디 예제 인지 명시해 줬으면 합니다.
그래야 예제를 좀 더 코딩해 보고 실행해 볼 수 있어 스프링을 익히는데 도움이 될 것 같습니다.
현장에 필요한 스프링 기본기 구축과 자바 실력 레벨업을 동시에!
* 최신 버전 스프링 프레임워크 기반 실습 제공
* 스프링 부트 3 포함
스프링은 자바를 배울 때 보지 못했던 새로운 개념, 이해하기 어려운 용어가 많아 입문자가 배우기 어렵습니다. 하지만 이 책은 『스프링3 입문』과 『스프링4 입문』을 집필한 스프링 전문가인 저자가 오랜 스프링 교육 경험을 토대로 구상한 그림과 설명으로 구성되어 있기 때문에 누구나 쉽게 이해할 수 있습니다. 크게 [기본편]과 [실무편]으로 구분되는데, [기본편]에서는 스프링 6의 전반적인 기능과 원리, 실무편에서는 실제 개발 현장에서 유용한 각종 스킬을 배울 수 있습니다. 따라서 이제 막 자바를 알게 된 스프링 입문자에게도 유용하지만, 그동안 스프링을 제대로 이해하지 못한 채로 사용했던 자바 개발자에게도 코드 한 줄 한 줄이 어떻게 작동하는지 확실히 배울 수 있는 기회가 될 것입니다. 자바 17, 스프링 6를 비롯한 최신 버전의 소프트웨어로 <수강 신청 애플리케이션>과 <상품 주문 애플리케이션>을 직접 만들어보며 기본기와 실무 스킬을 다져보세요!
[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 정의가 존재하는 이유
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 갱신 처리 후 화면 표시
20.2 리다이렉트로 해결하기(PRG 패턴)
20.3 리다이렉트 출발지와 목적지의 데이터 공유
20.4 플래시 스코프로 해결하기
20.5 PRG 패턴과 플래시 스코프 적용하기
실습
21장 Security Context 활용
21.1 스프링 시큐리티의 필터
21.2 인증한 사용자의 정보와 Security Context
21.3 ThreadLocal과 Security Context
21.4 Controller의 핸들러 메서드 인수로 받기
21.5 HTML에 사용자 정보 삽입하기
21.6 SecurityContextHolder.getContext로 가져오기
실습
22장 RESTful 웹 서비스 호출
22.1 RestTemplate 클래스
22.2 RestTemplate과 HttpMessageConverter
22.3 RestTemplate 클래스의 주요 메서드
22.4 GET을 위한 메서드
22.5 POST를 위한 메서드
22.6 PUT을 위한 메서드
22.7 DELETE를 위한 메서드
22.8 RestTemplate 객체 준비하기
_22.8.1 DI 컨테이너를 사용하지 않는 경우
_22.8.2 DI 컨테이너를 사용하는 경우
22.9 RestTemplate 클래스
22.10 응답의 상세 데이터를 참조하는 경우
22.11 요청의 상세 데이터를 설정하는 경우
22.12 WebClient 클래스
실습
23장 프로퍼티 외부화
23.1 외부화한 프로퍼티를 설정하는 곳
23.2 프로퍼티 불러오기
23.3 application.properties와 프로파일
23.4 프로퍼티를 가져오는 방법
_23.4.1 @Value 사용법
_23.4.2 @ConfigurationProperties 사용법
실습
24장 자동 테스트와 스프링의 테스트 지원
24.1 수동 테스트와 자동 테스트
24.2 대표적인 자동 테스트
24.3 웹 애플리케이션과 자동 테스트 패턴
24.4 단위 테스트와 Mock
24.5 스프링의 테스트 지원 기능
24.6 DI 컨테이너를 생성하기 위한 애너테이션
24.7 테스트 클래스
24.8 JavaConfig 클래스를 자동으로 찾게 하기
24.9 테스트를 실행할 때만 불러오는 application.properties
실습
25장 Repository 단위 테스트
25.1 Repository 단위 테스트의 개요
25.2 DI 컨테이너를 생성하기 위한 애너테이션
25.3 DI 컨테이너 캐싱
25.4 데이터베이스에 데이터 준비하기
25.5 @Sql 애너테이션
25.6 데이터 정리
25.7 갱신 계열 처리 테스트
25.8 JdbcTemplate으로 데이터 확인하기
실습
26장 Service 단위 테스트
26.1 Service 단위 테스트의 개요
26.2 Mockito란?
26.3 Mockito를 사용한 Service 단위 테스트
26.4 Mockito와 static 임포트
26.5 Mock 객체에 동작 지정하기
26.6 Mock 객체의 메서드 인수 지정하기
26.7 여러 번 호출되는 Mock 객체의 메서드 지정하기
26.8 Mock 객체의 메서드 호출을 확인하는 어설션
26.9 Mock 객체의 메서드에 전달된 인자 확인하기
26.10 Mock을 사용한 테스트의 단점
실습
27장 Service·Repository 통합 테스트
27.1 Service·Repository 통합 테스트의 개요
27.2 DI 컨테이너를 생성하기 위한 애너테이션
27.3 데이터베이스에 데이터 준비하기
27.4 @Sql 애너테이션
27.5 데이터 정리
27.6 갱신 계열 처리 테스트
27.7 JdbcTemplate으로 데이터 확인하기
실습
28장 Controller 단위 테스트
28.1 Controller 단위 테스트의 개요
28.2 MockMvc란?
28.3 MockMvc 사용법
28.4 DI 컨테이너를 생성하기 위한 애너테이션
28.5 MockMvc와 static 임포트
28.6 요청 지정하기
28.7 응답 어설션
28.8 입력 검사 오류 어설션
28.9 디버깅을 위한 로그 출력
28.10 Mock 객체에 동작 지정하기
실습
29장 Controller·Service·Repository 통합 테스트
29.1 Controller·Service·Repository 통합 테스트의 개요
29.2 테스트 클래스
29.3 Controller에서 세션 스코프와 플래시 스코프를 사용한 테스트
실습
30장 RESTful 웹 서비스 테스트
30.1 RESTful 웹 서비스 테스트에 필요한 것들
30.2 Controller 단위 테스트
30.3 JSON 문자열 쉽게 생성하기
30.4 JSONPath를 사용하여 응답 확인하기
30.5 눈으로 JSON 문자열 확인하기
30.6 RESTful 웹 서비스 통합 테스트
_30.6.1 MockMvc를 사용한 통합 테스트
_30.6.2 내장 AP 서버를 사용한 통합 테스트
실습
31장 스프링 시큐리티의 테스트 지원
31.1 스프링 시큐리티의 테스트 지원 기능
31.2 MockMvc와 연동한 스프링 시큐리티의 테스트 지원 기능
31.3 인증한 사용자의 정보를 임의로 지정하기
31.4 CSRF 토큰 지정하기
31.5 애너테이션을 사용하는 기능
31.6 메서드의 인가 테스트
31.7 webEnvironment = WebEnvironment.NONE을 지정하지 않은 이유
31.8 TestRestTemplate을 사용한 테스트
실습
32장 Selenide를 사용한 E2E 테스트
32.1 E2E 테스트
32.2 Selenide란?
32.3 @SpringBootTest와 함께 사용하기
32.4 @Sql과 함께 사용하기
32.5 데이터 정리
32.6 Selenide와 static 임포트
32.7 브라우저 실행 방법
32.8 화면 요소 참조 방법
32.9 화면 요소의 검색 조건 지정하기
32.10 $와 $$의 차이점
32.11 화면 요소 조작하기
32.12 요소의 정보 가져오기
32.13 요소의 내용 어설션
32.14 Selenide를 사용한 테스트
실습
[3부 부록]
A.1 트랜잭션
A.2 AP 서버
A.3 인터페이스
A.4 커맨드라인 인수
A.5 애너테이션
A.6 DataSource
A.7 내장 DB
A.8 검사 예외와 비검사 예외
A.9 Map
A.10 ThreadLocal
A.11 로그 레벨과 로거
A.12 Maven
A.13 클래스 패스
A.14 템플릿 파일과 템플릿 엔진
A.15 HTTP 요청과 HTTP 응답의 데이터 구조
A.16 요청 파라미터
A.17 컨텍스트 패스
A.18 YAML
A.19 JSON
A.20 서블릿과 서블릿 필터
A.21 리다이렉트와 포워드
A.22 Serializable
A.23 JUnit
A.24 JSONPath
A.25 수강 신청 애플리케이션
A.26 상품 주문 애플리케이션
그림과 실습으로 쉽게 익히는 최신 스프링 6 입문서
스프링은 초보자뿐만 아니라 현직 자바 개발자들도 완전히 이해하기 어려운 프레임워크입니다. 따라서 이 책은 [1부 기본편]과 [2부 실무편]으로 나누어 누구나 쉽게 스프링의 내부 동작을 이해하고 실제 개발 현장에서 바로 활용할 수 있도록 구성되었습니다. 친절한 그림과 설명으로 개념을 익히고, 각 장의 마지막에 제공되는 실습 과제에 도전하다 보면 스프링에 금방 익숙해질 수 있을 것입니다.
< [1부 기본편]에서 다루는 내용 >
< [2부 실무편]에서 다루는 내용 >
== 이런 분들께 추천합니다 ==
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2024-04-05 | 다운로드 |