컨텐츠상세보기

스프링 부트 핵심 가이드
스프링 부트 핵심 가이드
  • 저자<장정우> 저
  • 출판사위키북스
  • 출판일2022-08-17
  • 등록일2023-08-08
보유 1, 대출 0, 예약 0, 누적대출 7, 누적예약 4

책소개

입문자의 눈높이에 맞춰 차근차근 따라 하면서 배우는 스프링 부트 입문서!

《스프링 부트 핵심 가이드》는 스프링 부트 기반의 애플리케이션을 개발할 때 필요한 기초적인 내용들을 소개하고, 스프링에서 제공하는 각종 라이브러리의 기능들을 이해할 수 있게 동작 원리를 상세히 설명한다. 또한 ‘스프링 부트’다운 코드를 작성하는 방법에 초점을 맞춰 스프링 부트에서 제공하는 편의 기능들을 최대한 활용하고, 스프링 부트 기반의 애플리케이션을 어떻게 설계하고 구현하는지 안내한다.

저자소개

삼성SDS에서 인프라 엔지니어 및 백엔드 개발자로 근무했으며, 현재는 위대한상상에서 결제 시스템 개발 업무를 담당하고 있다. 그리고 유튜브 〈어라운드허브 스튜디오〉를 운영하면서 프로그래밍 정보를 공유하고 있다.

목차

 01장: 스프링 부트란? 

1.1 스프링 프레임워크 
__1.1.1 제어 역전(IoC) 
__1.1.2 의존성 주입(DI) 
__1.1.3 관점 지향 프로그래밍(AOP) 
__1.1.4 스프링 프레임워크의 다양한 모듈 
1.2 스프링 프레임워크 vs. 스프링 부트 
__1.2.1 의존성 관리 
__1.2.2 자동 설정 
__1.2.3 내장 WAS 
__1.2.4 모니터링 

 02장: 개발에 앞서 알면 좋은 기초 지식  

2.1 서버 간 통신 
2.2 스프링 부트의 동작 방식 
2.3 레이어드 아키텍처 
2.4 디자인 패턴 
__2.4.1 디자인 패턴의 종류 
__2.4.2 생성 패턴 
__2.4.3 구조 패턴 
__2.4.4 행위 패턴 
2.5 REST API 
__2.5.1 REST란? 
__2.5.2 REST API란? 
__2.5.3 REST의 특징 
__2.5.4 REST의 URI 설계 규칙 

 03장: 개발 환경 구성  

3.1 자바 JDK 설치 
3.2 인텔리제이 IDEA 설치 

 04장: 스프링 부트 애플리케이션 개발하기  

4.1 프로젝트 생성 
__4.1.1 인텔리제이 IDEA에서 프로젝트 생성하기 
__4.1.2 스프링 공식 사이트에서 프로젝트 생성하기 
4.2 pom.xml(Project Object Model) 살펴보기 
__4.2.1 빌드 관리 도구 
__4.2.2 메이븐 
__4.3 Hello World 출력하기 
__4.3.1 컨트롤러 작성하기 
__4.3.2 애플리케이션 실행하기 
__4.3.3 웹 브라우저를 통한 동작 테스트 
__4.3.4 Talend API Tester를 통한 동작 테스트 

 05장: API를 작성하는 다양한 방법  

5.1 프로젝트 설정 
5.2 GET API 만들기 
__5.2.1 @RequestMapping으로 구현하기 
__5.2.2 매개변수가 없는 GET 메서드 구현 
__5.2.3 @PathVariable을 활용한 GET 메서드 구현 
__5.2.4 @RequestParam을 활용한 GET 메서드 구현 
__5.2.5 DTO 객체를 활용한 GET 메서드 구현 
5.3 POST API 만들기 
__5.3.1 @RequestMapping으로 구현하기 
__5.3.2 @RequestBody를 활용한 POST 메서드 구현 
5.4 PUT API 만들기 
__5.4.1 @RequestBody를 활용한 PUT 메서드 구현 
__5.4.2 ResponseEntity를 활용한 PUT 메서드 구현 
5.5 DELETE API 만들기 
__5.5.1 @PathVariable과 @RequestParam을 활용한 DELETE 메서드 구현 
5.6 [ 한걸음 더 ] REST API 명세를 문서화하는 방법 - Swagger 
5.7 [ 한걸음 더 ] 로깅 라이브러리 - Logback 
__5.7.1 Logback 설정 
__5.7.2 Logback 적용하기 
5.8 정리 

 06장: 데이터베이스 연동  

6.1 마리아DB 설치 
6.2 ORM 
6.3 JPA 
6.4 하이버네이트 
__6.4.1 Spring Data JPA 
6.5 영속성 컨텍스트 
__6.5.1 엔티티 매니저 
__6.5.2 엔티티의 생명주기 
6.6 데이터베이스 연동 
__6.6.1 프로젝트 생성 
6.7 엔티티 설계 
__6.7.1 엔티티 관련 기본 어노테이션 
6.8 리포지토리 인터페이스 설계 
__6.8.1 리포지토리 인터페이스 생성 
__6.8.2 리포지토리 메서드의 생성 규칙 
6.9 DAO 설계 
__6.9.1 DAO 클래스 생성 
6.10 DAO 연동을 위한 컨트롤러와 서비스 설계 
__6.10.1 서비스 클래스 만들기 
__6.10.2 컨트롤러 생성 
__6.10.3 Swagger API를 통한 동작 확인 
6.11 [한걸음 더] 반복되는 코드의 작성을 생략하는 방법 - 롬복 
__6.11.1 롬복 설치 
__6.11.2 롬복 적용 
__6.11.3 롬복의 주요 어노테이션 

 07장: 테스트 코드 작성하기  

7.1 테스트 코드를 작성하는 이유 
7.2 단위 테스트와 통합 테스트 
__7.2.1 단위 테스트의 특징 
__7.2.2 통합 테스트의 특징 
7.3 테스트 코드를 작성하는 방법 
__7.3.1 Given-When-Then 패턴 
__7.3.2 좋은 테스트를 작성하는 5가지 속성(F.I.R.S.T) 
7.4 JUnit을 활용한 테스트 코드 작성 
__7.4.1 JUnit의 세부 모듈 
__7.4.2 스프링 부트 프로젝트 생성 
__7.4.3 스프링 부트의 테스트 설정 
__7.4.4 JUnit의 생명주기 
__7.4.5 스프링 부트에서의 테스트 
__7.4.6 컨트롤러 객체의 테스트 
__7.4.7 서비스 객체의 테스트 
__7.4.8 리포지토리 객체의 테스트 
7.5 JaCoCo를 활용한 테스트 커버리지 확인 
__7.5.1 JaCoCo 플러그인 설정 
__7.5.2 JaCoCo 테스트 커버리지 확인 
7.6 테스트 주도 개발(TDD) 
__7.6.1 테스트 주도 개발의 개발 주기 
__7.6.2 테스트 주도 개발의 효과 
7.7 정리 

 08장: Spring Data JPA 활용  

8.1 프로젝트 생성 
8.2 JPQL 
8.3 쿼리 메서드 살펴보기 
__8.3.1 쿼리 메서드의 생성 
__8.3.2 쿼리 메서드의 주제 키워드 
__8.3.3 쿼리 메서드의 조건자 키워드 
8.4 정렬과 페이징 처리 
__8.4.1 정렬 처리하기 
__8.4.2 페이징 처리 
8.5 @Query 어노테이션 사용하기 
8.6 QueryDSL 적용하기 
__8.6.1 QueryDSL이란? 
__8.6.2 QueryDSL의 장점 
__8.6.3 QueryDSL을 사용하기 위한 프로젝트 설정 
__8.6.4 기본적인 QueryDSL 사용하기 
__8.6.5 QuerydslPredicateExecutor, QuerydslRepositorySupport 활용 
8.7 [ 한걸음 더 ] JPA Auditing 적용 
__8.7.1 JPA Auditing 기능 활성화 
__8.7.2 BaseEntity 만들기 
8.8 정리 

 09장: 연관관계 매핑  

9.1 연관관계 매핑 종류와 방향 
9.2 프로젝트 생성 
9.3 일대일 매핑 
__9.3.1 일대일 단방향 매핑 
__9.3.2 일대일 양방향 매핑 
9.4 다대일, 일대다 매핑 
__9.4.1 다대일 단방향 매핑 
__9.4.2 다대일 양방향 매핑 
__9.4.3 일대다 단방향 매핑 
9.5 다대다 매핑 
__9.5.1 다대다 단방향 매핑 
__9.5.2 다대다 양방향 매핑 
9.6 영속성 전이 
__9.6.1 영속성 전이 적용 
__9.6.2 고아 객체 
9.7 정리 

 10장: 유효성 검사와 예외 처리  

10.1 일반적인 애플리케이션 유효성 검사의 문제점 
10.2 Hibernate Validator 
10.3 스프링 부트에서의 유효성 검사 
__10.3.1 프로젝트 생성 
__10.3.2 스프링 부트용 유효성 검사 관련 의존성 추가 
__10.3.3 스프링 부트의 유효성 검사 
__10.3.4 @Validated 활용 
__10.3.5 커스텀 Validation 추가 
10.4 예외 처리 
__10.4.1 예외와 에러 
__10.4.2 예외 클래스 
__10.4.3 예외 처리 방법 
__10.4.4 스프링 부트의 예외 처리 방식 
__10.4.5 커스텀 예외 
__10.4.6 커스텀 예외 클래스 생성하기 

 11장: 액추에이터 활용하기  

11.1 프로젝트 생성 및 액추에이터 종속성 추가 
11.2 엔드포인트 
11.3 액추에이터 기능 살펴보기 
__11.3.1 애플리케이션 기본 정보(/info) 
__11.3.2 애플리케이션 상태(/health) 
__11.3.3 빈 정보 확인(/beans) 
__11.3.4 스프링 부트의 자동설정 내역 확인(/conditions) 
__11.3.5 스프링 환경변수 정보(/env) 
__11.3.6 로깅 레벨 확인(/loggers) 
11.4 액추에이터에 커스텀 기능 만들기 
__11.4.1 정보 제공 인터페이스의 구현체 생성 
__11.4.2 커스텀 엔드포인트 생성 

 12장: 서버 간 통신  

12.1 RestTemplate이란? 
__12.1.1 RestTemplate의 동작 원리 
__12.1.2 RestTemplate의 대표적인 메서드 
12.2 RestTemplate 사용하기 
__12.2.1 서버 프로젝트 생성하기 
__12.2.2 RestTemplate 구현하기 
__12.2.3 RestTemplate 커스텀 설정 
12.3 WebClient란? 
__12.3.1 WebClient 구성 
12.4 WebClient 사용하기 
__12.4.1 WebClient 구현 
12.5 정리 

 13장: 서비스의 인증과 권한 부여  

13.1 보안 용어 이해 
__13.1.1 인증 
__13.1.2 인가 
__13.1.3 접근 주체 
13.2 스프링 시큐리티 
13.3 스프링 시큐리티의 동작 구조 
13.4 JWT 
__13.4.1 JWT의 구조 
__13.4.2 JWT 디버거 사용하기 
13.5 스프링 시큐리티와 JWT 적용 
__13.5.1 UserDetails와 UserDetailsService 구현 
__13.5.2 JwtTokenProvider 구현 
__13.5.3 JwtAuthenticationFilter 구현 
__13.5.4 SecurityConfiguration 구현 
__13.5.5 커스텀 AccessDeniedHandler, AuthenticationEntryPoint 구현 
__13.5.6 회원가입과 로그인 구현 
__13.5.7 스프링 시큐리티 테스트 
13.6 정리