로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

스프링 부트로 배우는 자바 웹 개발

 [서블릿부터 Spring Data JPA, Rest API, 액추에이터를 활용한 모니터링, 클라우드 서비스를 이용한 배포까지]
   
지은이 윤석진   |   출판사 주식회사 제이펍  |   발행일 2018년 06월 29일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 27,000원24,300원 10%
마일리지 5% 1,350원
발행일 2018-06-29
ISBN 1188621270 | 9791188621279
기타정보 국내서 | 408쪽 | 일반
예상출고일 1~2일 이내 (근무일기준)
배송비 무료배송
   
프로그래밍언어
   
 

자바 기반의 웹 서비스를 가장 쉽고 빠르게 배운다!

시중에는 자바 웹 개발자를 위한 스프링과 JSP 관련 서적이 많이 나와 있긴 하지만, 입문자가 끝까지 따라 할 만한 책은 많지 않습니다. 이 책은 독자들이 자바 기반의 웹 서비스를 만들거나 공부할 때 가장 쉽게 따라 할 수 있도록 집필되었습니다. 자바 웹 개발 환경에 대한 기초 설명과 개발에 필요한 필수 기술을 다루며, 나아가 모니터링 및 헤로쿠를 이용한 클라우드 배포까지 웹 서비스에 필요한 전반적인 내용을 담고 있습니다.

출판사 서평
자바 기반의 웹 서비스를 가장 쉽고 빠르게 배운다!
서블릿부터 Spring Data JPA, Rest API, 액추에이터를 활용한 모니터링, 클라우드 서비스를 이용한 배포까지

시중에는 자바 웹 개발자를 위한 스프링과 JSP 관련 서적이 많이 나와 있긴 하지만, 입문자가 끝까지 따라 할 만한 책은 많지 않습니다. 이 책은 독자들이 자바 기반의 웹 서비스를 만들거나 공부할 때 가장 쉽게 따라 할 수 있도록 집필되었습니다. 자바 웹 개발 환경에 대한 기초 설명과 개발에 필요한 필수 기술을 다루며, 나아가 모니터링 및 헤로쿠를 이용한 클라우드 배포까지 웹 서비스에 필요한 전반적인 내용을 담고 있습니다.

C 언어를 학습한 이후 자바 기반의 웹 서비스 개발을 배우려는 분, 한두 권의 자바 입문 서적을 읽은 후 한 걸음 더 나아가고자 하는 분, 서블릿부터 스프링 부트까지 체계적으로 배우고자 하는 분들에게 추천합니다. 스프링 설정만 하다 포기한 적이 있다면 바로 이 책이 당신을 위한 책입니다.

이 책의 주요 내용
• 인프라의 변화와 아키텍처
• 서블릿과 HTTP
• 스프링과 의존성 주입
• REST API
• 스프링 데이터와 QueryDSL
• 스프링 부트 스타터 만들기
• 클라우드 서비스 헤로쿠에 애플리케이션 배포하기

책속으로
클래스 로더에는 네 가지 유형이 있다. 부트스트랩 클래스 로더(bootstrap class loader), 확장 클래스 로더(extension class loader), 시스템 클래스 로더(system class loader) 그리고 개발자가 만든 사용자 정의 클래스 로더(user-defined class loader)가 있다.
_7쪽

세션(session) 서버와 클라이언트의 유효한 커넥션을 식별하는 정보다. 그래서 서버는 클라이언트가 요청을 보내면 요청을 식별할 수 있는 ID를 부여하는데, 이 ID가 세션 ID다. 세션 ID는 JSESSIONID란 이름으로 쿠키로 저장되고, 클라이언트가 재접속할 때 해당 쿠키를 이용해 세션 ID 값을 서버에 전달한다. 서블릿에서는 세션이 javax.servlet.http 패키지에 HttpSession 인터페이스로 정의되어 있다.
_36쪽

대부분의 아키텍처 스타일들이 그렇듯이 REST 역시 특정 기술에 종속성을 가지지 않고 분산 처리를 위한 서버를 만들기 위해서 반드시 REST의 특성을 준수해야 할 의무는 없다. 다만 일반적으로 서버 개발의 경우에는 고가용성과 확장성이 요구되므로 REST의 특성을 지켜 개발을 진행하면 보다 더 확장성 있는 서버 애플리케이션을 개발할 수 있다.
_120쪽

이 장에서는 데이터베이스 프로그래밍에 필요한 기술들을 알아봤다. 로컬에서 실행할 수 있는 HSQLDB, 데이터베이스 커넥션 라이브러리인 Hikaricp, 국내에서 많이 사용하고 있는 쿼리 매퍼인 Mybatis 그리고 도메인 주도 개발 시에 데이터베이스에 대한 로직 의존성을 낮출 수 있는 JPA(Spring Data JPA) 등을 다뤘다. JPA 학습 시에는 연관 관계 설정에 따라서 쿼리가 전혀 다르게 수행될 수 있으므로 Spring Data JPA의 API에 익숙해지는 것보다도 클래스 간의 연관 관계를 구성하고 객체 간의 관계에 맞는 테이블 설계를 하는 것이 중요하다.
_219쪽

@Transactional 어노테이션은 트랜잭션 제어가 필요한 메서드에 사용하는데 인터페이스나 추상 클래스에는 사용할 수 없고, 실제 구현 클래스 내에서 사용할 수 있다. @Transactional 어노테이션에 롤백에 관련된 속성값을 정의할 수 있는데 @Transactional에 사용할 수 있는 속성값들은 다음과 같다.
_268쪽

Jcache는 자바 표준 캐싱 API로 애플리케이션이 메모리 내에 캐시 객체를 만들고 작업할 수 있는 API를 제공한다. 직접 Jcache API를 사용할 일은 거의 없을 것이다. 하지만 Jcache가 자바에서 캐싱에 대한 표준 스펙이므로 Oracle Coherence, Infinispan, Ehcache, Hazelcast와 같은 자바를 지원하는 캐시 솔루션들이 Jcache 스펙을 바탕으로 구현된다. 그래서 Jcache를 이해하면 다른 캐시 솔루션들도 쉽게 이해할 수 있다.
_328쪽
CHAPTER 1 개발 환경의 변화와 자바 • 1
1.1 인프라와 스프링 프레임워크의 변화 3
1.1.1 아키텍처의 변화 3
1.1.2 스프링 프레임워크의 변화 5
1.2 웹 애플리케이션 컨테이너 6
1.2.1 자바 개발을 위해 꼭 필요한 클래스 로더 6
1.3 WAR 파일의 특성 8

CHAPTER 2 서블릿 • 11
2.1 서블릿 시작하기 13
2.1.1 서블릿 설정 13
2.2 서블릿 내부 동작 16
2.2.1 서블릿의 생명주기 16
2.3 서블릿 활용 20
2.3.1 HTTP 요청과 응답 20
2.3.2 멀티파트 24
2.4 서블릿 관련 객체들 28
2.4.1 필터 28
2.4.2 쿠키 30
2.4.3 세션 36
2.5 디자인 패턴 활용 40
2.5.1 Java EE 패턴 40
2.5.2 프론트 컨트롤러 패턴 41

CHAPTER 3 스프링 프레임워크 • 49
3.1 빈 + 컨테이너 51
3.2 IoC 패턴 활용 52
3.2.1 인터페이스와 스프링 53
3.2.2 스프링 XML 설정 56
3.2.3 스프링 JavaConfig 설정 63
3.3 스프링 MVC 69
3.3.1 스프링 MVC 구조 69
3.3.2 스프링 MVC 설정 70
3.3.3 DispatcherServlet 설정 72
3.3.4 컨트롤러와 뷰 73
3.3.5 인터셉터 75

CHAPTER 4 스프링 부트 웹 개발 • 81
4.1 스프링 부트에 대한 이해 83
4.1.1 스프링 부트의 프로젝트 레이아웃 83
4.1.2 스프링 부트 실행하기 84
4.2 정적 자원 관리 94
4.2.1 정적 자원 기본 설정 94
4.2.2 웹 리소스 폴더 설정 96
4.3 템플릿 엔진 100
4.3.1 타임리프 적용 101
4.3.2 타임리프 속성 102
4.4 WebJars를 이용한 프론트라이브러리 관리 108
4.4.1 WebJars 적용 109
4.4.2 인터셉터 활용 113

CHAPTER 5 REST API 서버 만들기 • 117
5.1 REST 119
5.1.1 REST의 특성과 규칙 119
5.2 리소스 121
5.2.1 리소스의 구분 121
5.3 REST API 만들기 122
5.3.1 REST 컨트롤러 활용 122
5.3.2 REST API에서 HTTP Method 사용 125
5.3.3 스프링에서 URI 템플릿 활용 127
5.4 HATEOS를 이용한 자기주소정보 표현 128
5.4.1 HATEOS를 이용한 URI 정보 표현 129
5.5 REST API 문서화 131
5.5.1 swagger 설정 및 라이브러리 추가 131
5.5.2 컨트롤러 URL 경로 설정 133
5.5.3 HTTP 메서드별 확인 134
5.5.4 파라미터 검증 136
5.6 REST 클라이언트 개발 137
5.6.1 RestTemplate 137
5.6.2 UriComponentsBuilder 활용 139
5.6.3 HTTP 메서드별 RestTemplate 메서드 명세 141

CHAPTER 6 스프링 부트와 데이터 • 149
6.1 데이터베이스 프로그래밍 151
6.1.1 프로젝트 구성 151
6.2 ORM 도구의 활용 152
6.2.1 Spring Data JPA 153
6.2.2 데이터베이스와 객체 매핑 156
6.2.3 연관 관계 163
6.3 QueryDSL을 이용한 Type Safe한 쿼리 작성 172
6.3.1 QueryDSL 설정 172
6.3.2 QueryDslRepositorySupport 활용 176
6.4 쿼리 매퍼 182
6.4.1 MyBatis 182
6.4.2 MyBatis를 이용한 쿼리 실행 186
6.4.3 명시적인 DataSource 지정 193
6.5 데이터베이스 서버와 연동 195
6.5.1 MariaDB 설치 195
6.5.2 MariaDB client 도구를 이용한 서버 접속 197
6.6 Database Connection pool 설정 199
6.6.1 HikariCP 200
6.6.2 MyBatis와 MariaDB 연동 205
6.7 MyBatis의 고급 기능 활용 208
6.7.1 selectKey 208
6.7.2 동적 쿼리 태그 216

CHAPTER 7 커스텀 스프링 부트 스타터 • 221
7.1 어노테이션 223
7.1.1 어노테이션 만들기 223
7.1.2 스프링 부트 어노테이션 226
7.2 스프링 부트의 구성 요소 238
7.2.1 스프링 부트 모듈 238
7.3 스프링 부트 스타터 만들기 243
7.3.1 스타터 개발 환경 구축 244

CHAPTER 8 예외 처리 및 테스트 • 249
8.1 자바 예외 처리 251
8.1.1 throw와 throws 구문 활용 251
8.2 Validation 활용 253
8.2.1 필드에 validation 적용 257
8.3 예외 처리를 위한 ControllerAdvice 259
8.3.1 Controller에 대한 예외 처리 259
8.4 데이터베이스 예외 처리 264
8.4.1 트랜잭션 264
8.4.2 PlatformTransactionManager 265
8.5 스프링 부트 테스트 269
8.5.1 데이터베이스 연동 테스트 269
8.5.2 통합 테스트 274

CHAPTER 9 배포 • 281
9.1 빌드 283
9.1.1 Runnable JAR 283
9.2 웹 서비스를 위한 배포 288
9.2.1 클라우드 서비스에 배포 288

CHAPTER 10 모니터링 • 299
10.1 액추에이터 301
10.1.1 액추에이터 적용 301
10.1.2 지표 정보 활용 303
10.1.3 기본 설정 변경 307
10.2 JMX와 JConsole을 이용한 모니터링 308
10.2.1 JConsole 308

CHAPTER 11 캐시 • 311
11.1 캐시의 유형 313
11.1.1 위치에 따른 캐시 구분 313
11.1.2 유형에 따른 구분 314
11.1.3 캐시 데이터 저장 방식 314
11.2 스프링 캐시 315
11.2.1 캐시 적용을 위한 기본 예제 316
11.2.2 스프링 캐시 활용 322
11.3 Jcache 활용 328
11.3.1 Jcache 구조 및 설정 329
11.3.2 Jcache 객체 생성 및 실행 330
11.4 Ehcache 활용 332
11.4.1 Ehcache 설정 332
11.4.2 Ehcache 사용 333
11.4.3 커스텀 키 생성 및 적용 335

CHAPTER 12 회원 관리 • 341
12.1 스프링 시큐리티 343
12.1.1 인증과 인가 343
12.1.2 스프링 시큐리티 설정 345
12.2 페이지 구성 348
12.2.1 의존성 설정 348
12.2.2 타임리프 레이아웃 구성 349
12.3 회원가입 355
12.3.1 접근 경로 설정 355
12.3.2 사용자 정보와 회원가입 페이지 개발 356
12.4 로그인 366
12.4.1 회원정보 조회 366
12.4.2 Remember Me 368

APPENDIX A 인텔리제이를 이용한 예제 프로젝트 실행 방법 • 375
A.1 개발 도구 활용 방법 377
A.1.1 인텔리제이 설치 377
A.1.2 기본 프로젝트 생성 378
A.2 Lombok 및 Annotation processing 설정 382

찾아보기 386
윤석진
현재 네이버에서 동영상 플랫폼 개발 업무를 담당하고 있으며, 백오피스 구축과 프레임워크 설계 및 개발에 관심이 많다. 저서로는 《엔터프라이즈 빌드 자동화를 위한 Gradle》(한빛미디어)이 있다. www.facebook.com/thecodinglive
등록된 서평이 없습니다.
JSP 2.1 웹 프로그래밍(입문에서 완성까지)(SECOND EDITION)...
손진곤
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
SQL 전문가 가이드 [The Guide for SQL Professional](2013 Edition)...
한국데이터베이스진흥원
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
초보자를 위한 C 언어 300제 2판...
김 은 철
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(0)
회원평점   회원서평수 0
주식회사 제이펍 출판사의 신간
어서 와, 컴퓨터 없는 코딩은 처음이지?
노훈 저
16,020원
(10%↓+5%)
 
아마존 웹 서비스 부하 테스트 입문
나카가와 타루하치, 모리시타 켄 저
28,800원
(10%↓+5%)
 
코딩 교육을 위한 마이크로비트
아이씨뱅큐 저
15,300원
(10%↓+5%)
 
패턴 인식과 머신 러닝
크리스토퍼 비숍 저
41,400원
(10%↓+5%)
 
마이크로소프트 봇 프레임워크 프로그래밍
조 마요 저
25,200원
(10%↓+5%)
 
이메일주소수집거부