본문 바로가기

출간 도서 소개

8. 스타트 스프링 부트

[제목] 스타트 스프링 부트

[부제] 초급 개발자들을 위한 가볍고 넓은 스프링 부트

저자: 구멍가게 코딩단
출판사: 남가람북스
발행일: 2017-07-20
ISBN: 979-11-954845-7-7
가격: 30000
페이지:584 
판형: 182*232*25
바코드: 9 791195 484577 93000

[상세 이미지]

 

[저자 소개]
프로그래밍을 좋아하지만, 남들 앞에 나설 용기가 없는 10년차 이상 개발자, 현업 관리자, 강사들의 비공개 모임. 어린 시절 구멍가게 앞 아저씨들이 인생의 진리를 가볍게 던졌던 것처럼 프로그래밍의 오의(奧義)를 가볍게 던지고 싶은 사람들의 모임.
http://cafe.naver.com/gugucoding을 통해서 독자들과 커뮤니케이션을 하고 있으며, 스프링 외에도 여러 주제에 대한 자료를 제공하며, 저서로는 《코드로 배우는 스프링 웹 프로젝트》가 있음.


[책 소개]
이 책은 Spring Boot와 Spring Data JPA, Thymeleaf를 이용해서 프로젝트를 사용하는 방법에 대해 설명합니다. 이 책의 대상 독자는 Spring 프레임워크를 어느 정도 학습해본 초급 개발자들을 대상으로 현실적인 개발 가이드를 제공하는 것을 목표로 하고 있습니다.

 * JSP와 서블릿 등 Java 관련 웹 개발 경험이 있는 분들
 * Spring Framework를 사용해본 경험이 있는 분들
 * 기타 JDBC 및 SQL 등을 사용해 본 경험이 있는 분들

이 책에서 다루는 내용

 * Spring Boot를 이용한 프로젝트의 생성과 설정들
 * Spring Data JPA를 이용한 JPA 사용해 보기
 * Thymeleaf와 Spring Boot의 연동
 * Spring Security와 Spring Boot를 이용한 보안 처리

 

[출판사 리뷰]
스프링 부트로 인해 기존의 스프링 프레임워크가 얼마나 간편해졌는지  느낌을 가지도록 하는 것이 이 책의 목표입니다. 최소한의 설정과 자동 설정을 이용해서 복잡한 설정 없이 프로젝트의 개발이 가능하게 된 점, Spring Data JPA를 이용해서 ORM을 경험해 보는 데 중점을 둡니다.

스프링 부트는 기존의 스프링 프레임워크를 이용해왔던 사용자들에게 좀 더 빠른 개발이 가능하고, 손쉽게 프로젝트를 구성할 수 있는 다양한 방식을 제공합니다. 때문에 이 책은 스프링 부트라는 이름을 달고 있기는 하지만, 책의 내용은 스프링 부트 자체보다는 Spring Data JPA나 Thymeleaf에 대한 내용이 주를 이루게 될 것입니다. 책의 내용이 이렇게 되는 이유를 굳이 변명하자면 ‘스프링 부트가 자동으로 하는 일이 너무 많아서’라고 해야 할 것 같습니다.

스프링 부트를 사용하다 보면 기존에 스프링으로 개발하던 방식에서 어려웠던 설정이나, 개발 환경 등이 하나의 선물 세트처럼 만들어졌다는 느낌이 듭니다. 스프링 개발에 필요했던 복잡한 설정이나 라이브러리 간의 충돌 등 여러 문제가 해결되어 있기도 하고, 개발 부분에 있어 설정이 자동화된 부분이 많아져서 개발 자체에 집중할 수 있는 환경을 갖추고 있습니다.

이 책에서는 다음과 같은 기술이나 라이브러리들을 이용해서 프로젝트를 생성할 것입니다.
 * 데이터베이스 MySQL 5.7
 * JDK 버전 1.8 이상
 * 스프링 부트 버전 1.5.4/ 2.0.0(M2)

 

[목차]

PART 1 Spring Boot/Spring Data JPA 사용해보기 

1. 프로젝트를 위한 준비
 
1.1   통합 개발 도구 설정 
1.1.1 Eclipse와 스프링 플러그인
1.1.2 Spring Starter Project를 이용한 프로젝트 생성
1.1.3 생성한 프로젝트 실행 
1.2   스프링 프레임워크와 스프링 부트
1.2.1 스프링 부트 내의 빈(Bean) 테스트 하기
1.3   Lombok 라이브러리 소개/설치 
1.3.1 Lombok 라이브러리 설치
1.3.2 Lombok 사용해 보기 
1.4   스프링 부트 프로젝트의 실행과 테스트
1.4.1 Controller의 테스트 진행

2. Spring Data JPA 맛보기

2.1   JPA 소개
2.1.1 엔티티(Entity), 엔티티 매니저(EntityManager)
2.1.2 영속 컨텍스트(Persistence Context)와 엔티티 객체
2.1.3 기존의 JPA 개발과 Spring Data JPA 
2.2   Spring Data JPA를 위한 프로젝트 생성
2.2.1 프로젝트 실행과 DataSource 설정 
2.2.2 엔티티 클래스 설계
2.2.3 JPA 처리를 담당하는 Repository 인터페이스 설계하기 
2.2.4 작성한 엔티티 테스트
 
3. Spring Data JPA를이용한단순게시물의처리

3.1   쿼리 연습을 위한 준비
3.1.1 쿼리 메소드 이용하기
3.1.2 페이징 처리와 정렬 
3.1.3 Page<T> 타입
3.2   @Query를 이용하기
3.2.1 단순 게시물의 처리를 위한 @Query 작성
3.2.2 @Query의 활용
3.2.3 @Query와 Paging 처리/정렬
3.3   Querydsl을 이용한 동적 SQL의 처리
3.3.1 Querydsl을 위한 준비
3.3.2 Predicate 준비
3.3.3 Predicate 생성 및 테스트

PART 2 JPA 연관관계와 Thymeleaf

4. 다양한 연관관계 처리

4.1   연관관계 처리의 순서와 사전 설계
4.1.1 관계형 데이터베이스의 설계와 JPA
4.1.2 작성하려는 예제의 개요 
4.2   회원과 프로필 사진의 관계 - 단방향 처리1 
4.2.1 예제 프로젝트 작성
4.2.2 각각의 엔티티 클래스 설계
4.2.3 연관관계의 설정과 단방향/양방향 
4.2.4 Repository 작성
4.2.5 테스트를 통한 검증
4.2.6 단방향의 문제와 Fetch Join 
4.3   자료실과 첨부 파일의 관계 - 단방향 2
4.3.1 엔티티 클래스 작성
4.3.2 등록과 Cascading 처리
4.3.3 첨부 파일 수정과 @Modifying, @Transactional
4.3.4 첨부 파일 삭제
4.3.5 조인 처리
4.4   게시물과 댓글의 관계 - 양방향
4.4.1 연관관계의 설정
4.4.2 Repository 작성
4.4.3 테스트 코드 
4.4.4 게시물의 페이징 처리와 @Query
4.4.5 게시물 조회와 인덱스

5. Thymeleaf 사용해 보기

5.1   프로젝트 설정 
5.1.1 기타 환경 설정
5.2   Thymeleaf 동작 확인하기
5.2.1 컨트롤러 작성 
5.2.2 템플릿 페이지 작성
5.2.3 Eclipse에 Thymeleaf 플러그인 설치하기
5.3   Thymeleaf 간단한 예제 몇 가지
5.3.1 객체를 화면에 출력하기
5.3.2 리스트를 화면에 출력하기
5.3.3 지역변수의 선언, if ~unless 제어 처리
5.3.4 인라인 스타일로 Thymeleaf 사용하기
5.4   Thymeleaf의 유틸리티 객체
5.4.1 유틸리티 객체
5.5   Thymeleaf 링크 처리
5.6   Thymeleaf의 레이아웃 기능
5.6.1 th:insert를 이용해서 페이지의 헤더와 푸터 처리하기 
5.6.2 Thymeleaf layout dialect를 이용한 레이아웃 재사용하기
 
PART 3 웹 애플리케이션 구성 

6. Spring MVC를 이용한 통합

6.1   프로젝트의 기본 구조 생성하기
6.1.1 레이아웃 분리해 두기
6.1.2 컨트롤러 생성 및 화면 확인하기
6.1.3 엔티티 클래스와 Repository 설계
6.1.4 Querydsl 설정
6.1.5 테스트 코드 작성
6.2   페이징, 검색 처리
6.2.1 Repository 페이징 테스트 
6.2.2 컨트롤러의 페이징 처리
6.2.3 검색 조건의 처리 
6.3   새로운 게시물 등록
6.3.1 게시물의 입력과 처리
6.4   게시물의 조회 
6.4.1 컨트롤러의 처리
6.4.2 조회 페이지에서의 링크 처리
6.5   게시물의 삭제와 수정
6.5.1 게시물 수정/삭제를 위한 페이지
6.5.2 삭제 처리
6.5.3 수정 처리

7. REST 방식의 댓글 처리와 JPA 처리

7.1   프로젝트의 구성과 @RestController 
7.1.1 REST 방식과 @RestController 
7.2   JPA의 설계와 Repository의 설계/테스트
7.2.1 연관관계의 설정
7.2.2 ReplyRepository 추가
7.2.3 WebReplyRepository의 테스트
7.3   ReplyController의 설계
7.3.1 특정 게시물의 댓글 등록 처리
7.3.2 REST 방식 테스트
7.3.3 댓글 등록 후 목록 처리
7.3.4 댓글 삭제
7.3.5 댓글 수정
7.3.6 댓글 목록
7.4   화면에서의 댓글 처리
7.4.1 댓글 목록의 출력
7.4.2 댓글 추가
7.4.3 댓글 삭제 처리
7.4.4 댓글 수정 처리
7.5   게시물 리스트에서의 댓글 개수 처리
7.5.1 게시물과 댓글 수의 문제
7.5.2 @Query의 한계
7.5.3 사용자 정의 쿼리 - 동적으로 JPQL 처리
7.5.4 컨트롤러와 화면 처리

PART 4 스프링 웹 시큐리티 적용하기 

8. Spring Web Security

8.1   예제 프로젝트 생성
8.1.1 시큐리티의 기본 설정 추가하기
8.1.2 샘플 URI 생성
8.2   회원과 권한 설계
8.2.1 도메인 클래스 설계 
8.2.2 Repository 생성
8.2.3 테스트를 통한 데이터 추가/조회 
8.3   단순 시큐리티 적용 
8.3.1 로그인/로그아웃 관련 처리
8.4   다양한 인증 방식 
8.4.1 스프링 시큐리티의 용어에 대한 이해
8.4.2 JDBC를 이용한 인증 처리 
8.4.3 사용자 정의(custom) UserDetailsService 작성하기
8.4.4 MemberRepository와의 연동
8.5   화면에서 로그인한 사용자 정보 사용하기
8.5.1 Thymeleaf에서 스프링 시큐리티 처리하기
8.6   Remember-Me 인증하기
8.6.1 로그인 화면에서 ‘remember-me’ 체크박스 처리
8.6.2 SecurityConfig에서의 설정 
8.6.3 remember-me를 데이터베이스에 보관하기 
8.7   기타 시큐리티 설정
8.7.1 MVC에 어노테이션 처리하기
8.7.2 PasswordEncoder 사용하기
8.7.3 컨트롤러를 이용한 회원가입 처리

9. Spring MVC와 Web Security의 통합

9.1   프로젝트 구성
9.1.1 기존 프로젝트 통합 
9.1.2 시큐리티 설정 
9.2   게시물 작성 부분
9.2.1 게시물 작성 시 사용자 아이디 편집
9.3   게시물 조회
9.3.1 게시물 수정/삭제 버튼의 제어
9.4   게시물의 수정/삭제
9.5   Ajax의 시큐리티 처리
9.5.1 댓글 추가
9.5.2 댓글 수정/삭제
9.6   기타 설정 - 로그인 후 페이지 이동
9.6.1 인터셉터 추가
9.6.2 인터셉터 설정
9.6.3 AuthenticationSuccessHandler 추가

APPENDIX 부록
 
A.  오라클11g이하데이터베이스시퀀스사용하기
A.1 오라클 11g Express Edition/SQL Developer 설치
A.2 JDBC 드라이버 설정 및 JPA 테스트

B.  MyBatis 이용하기

C.  JSP 이용하기

D.  Gradle 사용하기
D.1 Gradle Buildship 이용하기
D.2 STS Gradle 사용하기

E.  MySQL 설치

F.  Intellij 사용하기
F.1 Intellij 설치 
F.2 Maven 스프링 부트 프로젝트 생성하기 
F.2.1 Lombok의 처리와 실행 
F.2.2 프로젝트 자동 종료 문제
F.2.3 Maven 환경에서의 Querydsl 설정 
F.3   Gradle 스프링 부트 프로젝트 생성하기
F.3.1 Gradle 환경에서 Querydsl 설정 

찾아보기