티스토리 뷰

이 책은 스프링 부트에 관련된 책이지만, 전 Thymeleaf를 공부하기 위해 공부했습니다.스프링을 알고 있는 개발자라면 , 스프링과 스프링부트에 관련하여 가장 큰 차이점은 Thymelear라고 생각합니다. 이번에 프로젝트를 할때 처음 스프링 부트를 써보았는데, 기존 스프링 보다 편리함을 느꼈습니다. 기존 스프링 환경설정이 일단 없어서 , 설정자체가 스프링보다 쉬웠고, 가장 큰 어려움은 역시 Thymeleaf라고 생각합니다. 이책은 Thymeleaf에 관련하여 비교적 알기 쉽게 설명되어 있어서, 이해하기 쉬웠고, 하나의 프로젝트를 모듈별로 설명을 해놓아서, 따라하기가 쉬웠습니다. 

이 책은 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를 이용한 보안 처리


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 설정

찾아보기