저자소개
저자 : 크레이그 월즈
저자 : 크레이그 월즈
피보탈(Pivotal)의 메인 엔지니어다. 스프링 프레임워크의 열성적인 후원자로 로컬 사용자 그룹 및 콘퍼런스에서 연설 등의 활동과 함께 스프링 관련 집필에도 힘을 쏟고 있다. 앞으로 디즈니월드나 디즈니랜드 여행을 계획하고 있으며, 평소에는 아내와 두 딸, 두 마리의 새, 세 마리의 개와 함께 시간을 보내고 있다.
역자 : 심재철
현재 프리랜서로, 데이터베이스/모바일 시스템 컨설팅과 강의를 하고 있다. 또한, 20년 넘게 데이터베이스와 객체지향 시스템 설계 및 개발 프로젝트와 건설/금융 분야 애플리케이션 개발 등에 참여했다. 새로운 테크놀로지와 다양한 프로그래밍 언어를 사용해서 실무에 활용하고 가르치는 것을 좋아한다. 저서로는 《핵심만 골라 배우는 코틀린 프로그래밍》이 있으며, 번역서로는 《카프카 핵심 가이드》, 《핵심만 골라 배우는 안드로이드 스튜디오 3 & 프로그래밍》, 《실무에 적용하는 안드로이드 프로그래밍(제2판)》, 《Learn Android Studio》, 《SQLite 마스터북(제2판)》, 《프로 오브젝티브-C 디자인 패턴》, 《세븐 데이터베이스: 만들면서 파악하는 NoSQL》, 《UML 사용자 지침서》, 《Thinking in JAVA 4/e》, 《이펙티브 자바》 등이 있다.
목차
1.
PART 1 스프링 기초 1
CHAPTER 1 스프링 시작하기 3
1.1 스프링이란? 4
1.2 스프링 애플리케이션 초기 설정하기 7
1.2.1 STS를 사용해서 스프링 프로젝트 초기 설정하기 8
1.2.2 스프링 프로젝트 구조 살펴보기 12
1.3 스프링 애플리케이션 작성하기 18
1.3.1 웹 요청 처리하기 19
1.3.2 뷰 정의하기 20
1.3.3 컨트롤러 테스트하기 22
1.3.4 애플리케이션 빌드하고 실행하기 24
1.3.5 스프링 부트 DevTools 알아보기 26
1.3.6 리뷰하기 28
1.4 스프링 살펴보기 30
1.4.1 핵심 스프링 프레임워크 30
1.4.2 스프링 부트 31
1.4.3 스프링 데이터 31
1.4.4 스프링 시큐리티 32
1.4.5 스프링 통합과 배치 32
1.4.6 스프링 클라우드 32
요약 33
CHAPTER 2 웹 애플리케이션 개발하기 34
2.1 정보 보여주기 35
2.1.1 도메인 설정하기 36
2.1.2 컨트롤러 클래스 생성하기 41
2.1.3 뷰 디자인하기 45
2.2 폼 제출 처리하기 51
2.3 폼 입력 유효성 검사하기 57
2.3.1 유효성 검사 규칙 선언하기 58
2.3.2 폼과 바인딩될 때 유효성 검사 수행하기 60
2.3.3 유효성 검사 에러 보여주기 62
2.4 뷰 컨트롤러로 작업하기 65
2.5 뷰 템플릿 라이브러리 선택하기 68
2.5.1 템플릿 캐싱 70
요약 71
CHAPTER 3 데이터로 작업하기 72
3.1 JDBC를 사용해서 데이터 읽고 쓰기 73
3.1.1 퍼시스턴스를 고려한 도메인 객체 수정하기 75
3.1.2 JdbcTemplate 사용하기 76
3.1.3 스키마 정의하고 데이터 추가하기 84
3.1.4 타코와 주문 데이터 추가하기 87
3.2 스프링 데이터 JPA를 사용해서 데이터 저장하고 사용하기 103
3.2.1 스프링 데이터 JPA를 프로젝트에 추가하기 103
3.2.2 도메인 객체에 애노테이션 추가하기 104
3.2.3 JPA 리퍼지터리 선언하기 108
3.2.4 JPA 리퍼지터리 커스터마이징하기 112
요약 115
CHAPTER 4 스프링 시큐리티 116
4.1 스프링 시큐리티 활성화하기 117
4.2 스프링 시큐리티 구성하기 120
4.2.1 인메모리 사용자 스토어 123
4.2.2 JDBC 기반의 사용자 스토어 125
4.2.3 LDAP 기반 사용자 스토어 132
4.2.4 사용자 인증의 커스터마이징 138
4.3 웹 요청 보안 처리하기 148
4.3.1 웹 요청 보안 처리하기 148
4.3.2 커스텀 로그인 페이지 생성하기 152
4.3.3 로그아웃하기 155
4.3.4 CSRF 공격 방어하기 155
4.4 사용자 인지하기 158
4.5 각 폼에 로그아웃 버튼 추가하고 사용자 정보 보여주기 164
요약 166
CHAPTER 5 구성 속성 사용하기 167
5.1 자동-구성 세부 조정하기 168
5.1.1 스프링 환경 추상화 이해하기 169
5.1.2 데이터 소스 구성하기 171
5.1.3 내장 서버 구성하기 172
5.1.4 로깅 구성하기 174
5.1.5 다른 속성의 값 가져오기 176
5.2 우리의 구성 속성 생성하기 176
5.2.1 구성 속성 홀더 정의하기 180
5.2.2 구성 속성 메타데이터 선언하기 182
5.3 프로파일 사용해서 구성하기 185
5.3.1 프로파일 특정 속성 정의하기 186
5.3.2 프로파일 활성화하기 188
5.3.3 프로파일을 사용해서 조건별로 빈 생성하기 189
요약 191
PART 2 통합된 스프링 193
CHAPTER 6 REST 서비스 생성하기 195
6.1 REST 컨트롤러 작성하기 196
6.1.1 서버에서 데이터 가져오기 198
6.1.2 서버에 데이터 전송하기 204
6.1.3 서버의 데이터 변경하기 205
6.1.4 서버에서 데이터 삭제하기 208
6.2 하이퍼미디어 사용하기 209
6.2.1 하이퍼링크 추가하기 212
6.2.2 리소스 어셈블러 생성하기 215
6.2.3 embedded 관계 이름 짓기 220
6.3 데이터 기반 서비스 활성화하기 221
6.3.1 리소스 경로와 관계 이름 조정하기 224
6.3.2 페이징과 정렬 226
6.3.3 커스텀 엔드포인트 추가하기 228
6.3.4 커스텀 하이퍼링크를 스프링 데이터 엔드포인트에 추가하기 230
6.4 앵귤러 IDE 이클립스 플러그인 설치와 프로젝트 빌드 및 실행하기 231
6.4.1 앵귤러 IDE 이클립스 플러그인 설치하기 232
6.4.2 타코 클라우드 애플리케이션 빌드하고 실행하기 237
요약 244
CHAPTER 7 REST 서비스 사용하기 245
7.1 RestTemplate으로 REST 엔드포인트 사용하기 246
7.1.1 리소스 가져오기(GET) 248
7.1.2 리소스 쓰기(PUT) 250
7.1.3 리소스 삭제하기(DELETE) 250
7.1.4 리소스 데이터 추가하기(POST) 251
7.2 Traverson으로 REST API 사용하기 252
7.3 REST API 클라이언트가 추가된 타코 클라우드 애플리케이션 빌드 및 실행하기 255
요약 258
CHAPTER 8 비동기 메시지 전송하기 259
8.1 JMS로 메시지 전송하기 260
8.