상세정보
미리보기
스프링 부트 핵심 가이드
- 저자
- 장정우 저
- 출판사
- 위키북스
- 출판일
- 2022-08-17
- 등록일
- 2022-12-28
- 파일포맷
- PDF
- 파일크기
- 9MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
입문자의 눈높이에 맞춰 차근차근 따라 하면서 배우는 스프링 부트 입문서!《스프링 부트 핵심 가이드》는 스프링 부트 기반의 애플리케이션을 개발할 때 필요한 기초적인 내용들을 소개하고, 스프링에서 제공하는 각종 라이브러리의 기능들을 이해할 수 있게 동작 원리를 상세히 설명한다. 또한 ‘스프링 부트’다운 코드를 작성하는 방법에 초점을 맞춰 스프링 부트에서 제공하는 편의 기능들을 최대한 활용하고, 스프링 부트 기반의 애플리케이션을 어떻게 설계하고 구현하는지 안내한다.
저자소개
삼성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 정리