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

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

$37.86
저자

토키코헤이

저자:토키코헤이

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



역자:김성훈

주로IT관련서적을번역하는번역가다.주요번역서로는『따라하며배우는언리얼엔진5입문』(한빛미디어,2024),『그림으로배우는5G네트워크』(영진닷컴,2022),『그림으로이해하는IT지식과트렌드』(길벗,2021),『파이썬으로배우는머신러닝입문』(성안당,2021),『Scratch가보이는그림책』(성안당,2020),『C가보이는그림책』(성안당,2018),『실무에서바로통하는자바』(한빛미디어,2017),『안드로이드개발레벨업교과서』(위키북스,2017),『프로그래밍이보이는그림책』(성안당,2017),『24가지예제로배우는게임수학&물리입문』(길벗,2014),『세가의신입사원교육과정에서배우는게임프로그래밍의정석』(한빛미디어,2012),『웹개발자를위한웹을지탱하는기술』(멘토르,2011)등이있다.

목차

[1부기본편]

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

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

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

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

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

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

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

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

9장선언적트랜잭션
9.1트랜잭션이란?
9.2웹애플리케이션의트랜잭션
9.3트랜잭션과커넥션
9.4트랜잭션을자체적으로제어할때의문제점
9.5스프링의선언적트랜잭션
9.6트랜잭션의내부구조
9.7PlatformTransactionManager의구상클래스
9.8PlatformTransactionManager의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.1MVC란?
11.2스프링MVC란?
11.3Thymeleaf란?
11.4간단한예제
_11.4.1pom.xml설정하기
_11.4.2Controller클래스생성하기
_11.4.3View작성하기
_11.4.4스프링부트로실행하기
_11.4.5브라우저에서확인하기
11.5전체처리흐름
11.6Service객체인젝션
11.7핸들러메서드와@XxxMapping
11.8요청파라미터가져오기
11.9View에데이터전달하기
11.10Thymeleaf로데이터참조하기
11.11List객체참조하기
11.12입력화면과입력검사
11.13BeanValidation을이용한입력검사
11.14입력화면표시방법
11.15입력화면템플릿파일
11.16입력검사방법
11.17오류문구설정
11.18요청파라미터를사용한핸들러메서드호출
11.19예외핸들링
실습

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

13장갱신계열RESTAPI만들기
13.1갱신계열HTTP메서드
13.2PUT의요청과응답
13.3요청바디변환
13.4PUT에대응하는핸들러메서드
13.5POST의요청과응답
13.6POST에대응하는핸들러메서드
13.7DELETE의요청과응답
13.8DELETE에대응하는핸들러메서드
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.13CSRF대응
14.14스프링시큐리티를통한CSRF대응
실습


[2부실무편]

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

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

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

18장트랜잭션전파
18.1트랜잭션전파란?
18.2트랜잭션전파설정하기
18.3REQUIRED의동작
18.4REQUIRED_NEW의동작
18.5REQUIRED_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.5PRG패턴과플래시스코프적용하기
실습

21장SecurityContext활용
21.1스프링시큐리티의필터
21.2인증한사용자의정보와SecurityContext
21.3ThreadLocal과SecurityContext
21.4Controller의핸들러메서드인수로받기
21.5HTML에사용자정보삽입하기
21.6SecurityContextHolder.getContext로가져오기
실습

22장RESTful웹서비스호출
22.1RestTemplate클래스
22.2RestTemplate과HttpMessageConverter
22.3RestTemplate클래스의주요메서드
22.4GET을위한메서드
22.5POST를위한메서드
22.6PUT을위한메서드
22.7DELETE를위한메서드
22.8RestTemplate객체준비하기
_22.8.1DI컨테이너를사용하지않는경우
_22.8.2DI컨테이너를사용하는경우
22.9RestTemplate클래스
22.10응답의상세데이터를참조하는경우
22.11요청의상세데이터를설정하는경우
22.12WebClient클래스
실습

23장프로퍼티외부화
23.1외부화한프로퍼티를설정하는곳
23.2프로퍼티불러오기
23.3application.properties와프로파일
23.4프로퍼티를가져오는방법
_23.4.1@Value사용법
_23.4.2@ConfigurationProperties사용법
실습

24장자동테스트와스프링의테스트지원
24.1수동테스트와자동테스트
24.2대표적인자동테스트
24.3웹애플리케이션과자동테스트패턴
24.4단위테스트와Mock
24.5스프링의테스트지원기능
24.6DI컨테이너를생성하기위한애너테이션
24.7테스트클래스
24.8JavaConfig클래스를자동으로찾게하기
24.9테스트를실행할때만불러오는application.properties
실습

25장Repository단위테스트
25.1Repository단위테스트의개요
25.2DI컨테이너를생성하기위한애너테이션
25.3DI컨테이너캐싱
25.4데이터베이스에데이터준비하기
25.5@Sql애너테이션
25.6데이터정리
25.7갱신계열처리테스트
25.8JdbcTemplate으로데이터확인하기
실습

26장Service단위테스트
26.1Service단위테스트의개요
26.2Mockito란?
26.3Mockito를사용한Service단위테스트
26.4Mockito와static임포트
26.5Mock객체에동작지정하기
26.6Mock객체의메서드인수지정하기
26.7여러번호출되는Mock객체의메서드지정하기
26.8Mock객체의메서드호출을확인하는어설션
26.9Mock객체의메서드에전달된인자확인하기
26.10Mock을사용한테스트의단점
실습

27장Service·Repository통합테스트
27.1Service·Repository통합테스트의개요
27.2DI컨테이너를생성하기위한애너테이션
27.3데이터베이스에데이터준비하기
27.4@Sql애너테이션
27.5데이터정리
27.6갱신계열처리테스트
27.7JdbcTemplate으로데이터확인하기
실습

28장Controller단위테스트
28.1Controller단위테스트의개요
28.2MockMvc란?
28.3MockMvc사용법
28.4DI컨테이너를생성하기위한애너테이션
28.5MockMvc와static임포트
28.6요청지정하기
28.7응답어설션
28.8입력검사오류어설션
28.9디버깅을위한로그출력
28.10Mock객체에동작지정하기
실습

29장Controller·Service·Repository통합테스트
29.1Controller·Service·Repository통합테스트의개요
29.2테스트클래스
29.3Controller에서세션스코프와플래시스코프를사용한테스트
실습

30장RESTful웹서비스테스트
30.1RESTful웹서비스테스트에필요한것들
30.2Controller단위테스트
30.3JSON문자열쉽게생성하기
30.4JSONPath를사용하여응답확인하기
30.5눈으로JSON문자열확인하기
30.6RESTful웹서비스통합테스트
_30.6.1MockMvc를사용한통합테스트
_30.6.2내장AP서버를사용한통합테스트
실습

31장스프링시큐리티의테스트지원
31.1스프링시큐리티의테스트지원기능
31.2MockMvc와연동한스프링시큐리티의테스트지원기능
31.3인증한사용자의정보를임의로지정하기
31.4CSRF토큰지정하기
31.5애너테이션을사용하는기능
31.6메서드의인가테스트
31.7webEnvironment=WebEnvironment.NONE을지정하지않은이유
31.8TestRestTemplate을사용한테스트
실습

32장Selenide를사용한E2E테스트
32.1E2E테스트
32.2Selenide란?
32.3@SpringBootTest와함께사용하기
32.4@Sql과함께사용하기
32.5데이터정리
32.6Selenide와static임포트
32.7브라우저실행방법
32.8화면요소참조방법
32.9화면요소의검색조건지정하기
32.10$와$$의차이점
32.11화면요소조작하기
32.12요소의정보가져오기
32.13요소의내용어설션
32.14Selenide를사용한테스트
실습


[3부부록]

A.1트랜잭션
A.2AP서버
A.3인터페이스
A.4커맨드라인인수
A.5애너테이션
A.6DataSource
A.7내장DB
A.8검사예외와비검사예외
A.9Map
A.10ThreadLocal
A.11로그레벨과로거
A.12Maven
A.13클래스패스
A.14템플릿파일과템플릿엔진
A.15HTTP요청과HTTP응답의데이터구조
A.16요청파라미터
A.17컨텍스트패스
A.18YAML
A.19JSON
A.20서블릿과서블릿필터
A.21리다이렉트와포워드
A.22Serializable
A.23JUnit
A.24JSONPath
A.25수강신청애플리케이션
A.26상품주문애플리케이션

출판사 서평

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

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

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

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

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

추천사

스프링을이제막배우는개발자에게꼭필요한부분만엄선해설명하는책입니다.기존의스프링도서들은많은것을알려주려고하여읽기부담스러웠으나이책은업무에주로사용하는기능위주로설명이쉽게되어있습니다.
-홍스(프리랜서개발자)

초보자가헷갈리기쉽거나확실히알기어려운개념들을차근차근설명해주고,제공된샘플코드를직접실행해보며스프링의개념과용법에익숙해지도록돕는책입니다.
-권성민(스마트레이더시스템선임연구원)

세심한설명과함께제목이말해주듯다양한다이어그램으로복잡한스프링의기능을명확하게소개합니다.따라서쉽게이해할수있을뿐만아니라원하는내용을빠르게찾아보기에도좋습니다.
-정현준(AtlasLabs,VPofEngineering)

내가‘읽은’스프링관련지식이내가‘알고있는’지식으로바뀌는기분좋은경험을하고싶은가요?그럼당장이책을읽으면됩니다!각주제가적절한분량으로구성되어있고,실습을통해읽은내용을복습할수있어누구나부담없이재미있게읽을수있습니다.
-채민석(integrate.io기술영업)

특히테스트에대해자세히설명하는데,테스트의목적과방법을이해한다면실무에서큰도움이될거라고생각합니다.탄탄하게스프링기초를다질수있는책으로,스프링애플리케이션개발을시작하는분들에게강력히추천합니다.
-이동규(데이터엔지니어)

이책은스프링시큐리티,MVC,DI,JUnit등필수적인지식을쉽고간략하게설명하며실습코드를제공해주므로손쉽게따라갈수있습니다.스프링으로웹서버개발에도전하는분들에게추천드립니다.
-조현규(페리지에어로스페이스,SREEngineer)