책소개
- 자바 백엔드 개발자가 되고 싶다면- 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려면 시작이 중요합니다. 그래서 이 책은 무엇부터 익혀야 하는지 막막한 입문자에게 백엔드 개발의 필수 지식을 학습 로드맵 중심으로 설명합니다. 이어서 스프링 부트 3 개발에 꼭 필요한 4대장인 JPA ORM, OAuth2 인증, AWS 배포, CI/CD를 최신 트렌드에 맞게 그리고 실무에 유용하게 알려줍니다. 모든 장 끝에는 연습문제가 수록되어 있어 배운 내용을 점검할 수 있습니다. 이 책이 여러분의 백엔드 개발자 여정에 든든한 나침반이 되어 줄 겁니다.
저자소개
리멤버 백엔드 개발자. 하드 스킬과 소프트 스킬 역량을 강화하고자 부단히 공부하고 글로 남기는 백엔드 개발자입니다. 평일 기준 하루 평균 600뷰의 기술 블로그를 운영하고, 모교 학생을 대상으로 정기 세미나와 멘토링을 진행합니다. 구독자가 1,000명 정도 되는 사이드 프로젝트를 기획하고 개발하고 운영한 경험이 있습니다.
목차
[레벨 1 | 스프링 부트로 백엔드 입문하기]00장 개발 환경 구축하기 _0.1 인텔리제이 설치 및 설정 __0.1.1 윈도우에 인텔리제이 설치하기 __0.1.2 macOS에 인텔리제이 설치하기 __0.1.3 프로젝트 생성하기 _0.2 스프링 부트 3 프로젝트 만들기 _0.3 포스트맨 설치하기_0.4 예제 코드 저장소 위치 _0.5 개발 편의와 속도를 확 올려줄 꿀 단축키 01장 자바 백엔드 개발자가 알아두면 좋은 지식_1.1 서버와 클라이언트__1.1.1 클라이언트란?__1.1.2 서버란? _1.2 데이터베이스 __1.2.1 RDB란?__1.2.2 SQL이란?__1.2.3 NoSQL이란?_1.3 아이피와 포트 _1.4 라이브러리와 프레임워크 __1.4.1 라이브러리란?__1.4.2 프레임워크란?_1.5 백엔드 개발자의 업무 _1.6 백엔드 프로그래밍 언어 _1.7 자바 애너테이션 02장 스프링 부트 3 시작하기 _2.1 스프링과 스프링 부트 3__2.1.1 스프링의 등장 __2.1.2 스프링을 더 쉽게 만들어주는 스프링 부트 _2.2 스프링 콘셉트 공부하기 __2.2.1 제어의 역전과 의존성 주입 __2.2.2 빈과 스프링 컨테이너 __2.2.3 관점 지향 프로그래밍 __2.2.4 이식 가능한 서비스 추상화 _2.3 스프링 부트 3 둘러보기 __2.3.1 첫 번째 스프링 부트 3 예제 만들기 __2.3.2 스프링 부트 스타터 살펴보기 __2.3.3 자동 구성 __2.3.4 스프링 부트 3과 자바 버전 _2.4 스프링 부트 3 코드 이해하기 __2.4.1 @SpringBootApplication 이해하기 __2.4.2 테스트 컨트롤러 살펴보기 _학습 마무리 _연습문제 03장 스프링 부트 3 구조 이해하기 _3.1 스프링 부트 3 구조 살펴보기 __3.1.1 카페와 빵집으로 이해하는 계층 __3.1.2 스프링 부트 프로젝트 디렉터리 구성하며 살펴보기 __3.1.3 main 디렉터리 구성하기 _3.2 스프링 부트 3 프로젝트 발전시키기 __3.2.1 build.gradle에 의존성 추가하기 __3.2.2 프레젠테이션, 서비스, 퍼시스턴스 계층 만들기__3.2.3 임포트 오류 처리하기 __3.2.4 작동 확인하기 _3.3 스프링 부트 요청-응답 과정 한 방에 이해하기_학습 마무리 _연습문제 04장 스프링 부트 3와 테스트 _4.1 테스트 코드 개념 익히기 __4.1.1 테스트 코드란? _4.2 스프링 부트 3와 테스트 __4.2.1 JUnit이란? _4.3 제대로 테스트 코드 작성해 보기 _학습 마무리 _연습문제 05장 데이터베이스 조작이 편해지는 ORM_5.1 데이터베이스란? __5.1.1 데이터베이스 관리자, DBMS_5.2 ORM이란? _5.3 JPA와 하이버네이트? __5.3.1 엔티티 매니저란? __5.3.2 영속성 컨텍스트란? __5.3.3 엔티티의 상태 _5.4 스프링 데이터와 스프링 데이터 JPA__5.4.1 스프링 데이터 JPA란?__5.4.2 스프링 데이터 JPA에서 제공하는 메서드 사용해보기 _5.5 예제 코드 살펴보기 _학습 마무리 _연습문제 [레벨 2 | 스프링 부트 3로 블로그 제대로 만들기]06장 [Project] 블로그 기획하고 API 만들기 _6.1 사전 지식 : API와 REST API__6.1.1 식당으로 알아보는 API__6.1.2 웹의 장점을 최대한 활용하는 REST API_6.2 블로그 개발을 위한 엔티티 구성하기 __6.2.1 프로젝트 준비하기 __6.2.2 엔티티 구성하기 __6.2.3 리포지터리 만들기 _6.3 블로그 글 작성을 위한 API 구현하기 __6.3.1 서비스 메서드 코드 작성하기 __6.3.2 컨트롤러 메서드 코드 작성하기 __6.3.3 API 실행 테스트하기 __6.3.4 반복 작업을 줄여 줄 테스트 코드 작성하기 _6.4 블로그 글 목록 조회를 위한 API 구현하기__6.4.1 서비스 메서드 코드 작성하기 __6.4.2 컨트롤러 메서드 코드 작성하기 __6.4.3 실행 테스트하기 __6.4.4 테스트 코드 작성하기 _6.5 블로그 글 조회 API 구현하기 __6.5.1 서비스 메서드 코드 작성하기 __6.5.2 컨트롤러 메서드 코드 작성하기 __6.5.3 테스트 코드 작성하기___6.6 블로그 글 삭제 API 구현하기 __6.6.1 서비스 메서드 코드 작성하기 __6.6.2 컨트롤러 메서드 코드 작성하기 __6.6.3 실행 테스트하기 __6.6.4 테스트 코드 작성하기 _6.7 블로그 글 수정 API 구현하기 __6.7.1 서비스 메서드 코드 작성하기 __6.7.2 컨트롤러 메서드 코드 작성하기 __6.7.3 실행 테스트하기 __6.7.4 테스트 코드 작성하기 _학습 마무리 _연습문제 07장 [Project] 블로그 화면 구성하기 _7.1 사전 지식 : 타임리프 __7.1.1 템플릿 엔진 개념 잡기 __7.1.2 타임리프 사용을 위한 의존성 추가하기 __7.1.3 타임리프 문법 익히기용 컨트롤러 작성하기 __7.1.4 뷰 작성하기 __7.1.5 뷰 테스트하기 _7.2 블로그 글 목록 뷰 구현하기 __7.2.1 컨트롤러 메서드 작성하기 __7.2.2 HTML 뷰 만들고 테스트하기 _7.3 블로그 글 뷰 구현하기 __7.3.1 엔티티에 생성, 수정 시간 추가하기 __7.3.2 컨트롤러 메서드 작성하기 __7.3.3 HTML 뷰 만들기 __7.3.4 실행 테스트하기 _7.4 삭제 기능 추가하기 __7.4.1 삭제 기능 코드 작성하기 __7.4.2 실행 테스트하기 _7.5 수정/생성 기능 추가하기 __7.5.1 수정/생성 뷰 컨트롤러 작성하기 __7.5.2 수정/생성 뷰 만들기 __7.5.3 실행 테스트하기 _7.6 생성 기능 마무리하기 __7.6.1 생성 기능 작성하기 __7.6.2 실행 테스트하기 _학습 마무리 _연습문제 08장 [Project] 스프링 시큐리티로 로그인/로그아웃, 회원 가입 구현하기 _8.1 사전 지식 : 스프링 시큐리티 _8.2 회원 도메인 만들기 __8.2.1 의존성 추가하기 __8.2.2 엔티티 만들기 __8.2.3 리포지터리 만들기 __8.2.4 서비스 메서드 코드 작성하기 _8.3 시큐리티 설정하기 _8.4 회원 가입 구현하기 __8.4.1 서비스 메서드 코드 작성하기 __8.4.2 컨트롤러 작성하기 _8.5 회원 가입, 로그인 뷰 작성하기 __8.5.1 뷰 컨트롤러 구현하기 __8.5.2 뷰 작성하기 _8.6 로그아웃 구현하기 __8.6.1 로그아웃 메서드 추가하기 __8.6.2 로그아웃 뷰 추가 _8.7 실행 테스트하기 __8.7.1 테스트를 위한 환경 변수 추가하기 __8.7.2 로그인, 회원 가입 실행 테스트하기 __8.7.3 로그아웃 실행 테스트하기 _학습 마무리 _연습문제 09장 [Project] JWT로 로그인/로그아웃 구현하기 _9.1 사전 지식 : 토큰 기반 인증 __9.1.1 토큰 기반 인증이란? __9.1.2 JWT_9.2 JWT 서비스 구현하기 __9.2.1 의존성 추가하기 __9.2.2 토큰 제공자 추가하기 __9.2.3 리프레시 토큰 도메인 구현하기 __9.2.4 토큰 필터 구현하기 _9.3 토큰 API 구현하기 __9.3.1 토큰 서비스 추가하기 __9.3.2 컨트롤러 추가하기 _학습 마무리 _연습문제 10장 [Project] OAuth2로 로그인/로그아웃 구현하기 _10.1 사전 지식 : OAuth__10.1.1 OAuth이란? __10.1.2 권한 부여 코드 승인 타입이란? __10.1.3 쿠키란? _10.2 토큰 발급받기 _10.3 스프링 시큐리티로 OAuth2 구현하고 적용하기 __10.3.1 의존성 추가하기 __10.3.2 쿠키 관리 클래스 구현하기 __10.3.3 OAuth2 서비스 구현하기 __10.3.4 OAuth2 설정 파일 작성하기 __10.3.5 글에 글쓴이 추가하기 __10.3.6 OAuth 뷰 구성하기 __10.3.7 글 수정, 삭제, 본인 확인 로직 추가하기 _10.4 OAuth2 실행 테스트하기 _10.5 테스트 코드 실패 해결하고 코드 수정하기 _학습 마무리 _연습문제 [레벨 3 | AWS와 깃허브 액션으로 배포/유지보수 편안하게 하기]11장 [Project] AWS에 프로젝트 배포하기 _11.1 사전 지식 : AWS__11.1.1 AWS란?__11.1.2 AWS 서비스로 우리의 서비스 배포하기 __11.1.3 설정이 간편한 일래스틱 빈스토크 _11.2 AWS 계정 생성하기 _11.3 일래스틱 빈스토크로 서버 구축하기 __11.3.1 일래스틱 빈스토크 서비스 생성하기 __11.3.2 일래스틱 빈스토크에서 RDS 생성하기__11.3.3 로컬에서 RDS 연결하기 _11.4 일래스틱 빈스토크에 우리의 서비스 배포하기__11.4.1 애플리케이션 배포하기 __11.4.2 OAuth 서비스에 승인된 URI 추가 _학습 마무리 _연습문제 12장 [Project] CI/CD 도입하기 _12.1 사전 지식 : CI/CD__12.1.1 CI/CD란?__12.1.2 깃과 깃허브 _12.2 깃허브 액션 사용하기 __12.2.1 깃허브 리포지터리 생성하고 코드 푸시하기 __12.2.2 깃허브 액션 스크립트 작성하기, CI__12.2.3 깃허브 액션 스크립트 작성하기, CD_학습 마무리 _연습문제부록 A 값 검증 가이드부록 B 예외 처리 가이드