스프링 부트 3 백엔드 개발자 되기 : 자바 편 (2판)

스프링 부트 3 백엔드 개발자 되기 : 자바 편 (2판)

$32.54
Description
실력을 갖춘 개발자로 성장하려면 시작이 중요합니다. 그래서 이 책은 무엇부터 익혀야 하는지 막막한 입문자에게 백엔드 개발의 필수 지식을 학습 로드맵 중심으로 설명합니다. 이어서 스프링 부트 3 개발에 꼭 필요한 4대장인 JPA ORM, OAuth2 인증, AWS 배포, CI/CD를 최신 트렌드에 맞게 그리고 실무에 유용하게 알려줍니다. 모든 장 끝에는 연습문제가 수록되어 있어 배운 내용을 점검할 수 있습니다. 이번 2판에는 스프링 부트 프로젝트 진행을 위해 꼭 알아야 하는 SQL 기초와 실습, 스프링 시큐리티 업데이트, 블로그 댓글 기능 등을 추가하여 더욱 좋은 책으로 만들었습니다. 이 책이 여러분의 백엔드 개발자 여정에 든든한 나침반이 되어 줄 겁니다.


〈되기〉 시리즈 소개〈되기〉 시리즈는 이름 그대로 IT 분야에서 성장하려는 여러분을 위해 준비한 책입니다. 엄선된 IT 기술들을 로드맵과 함께 제시하고, 실무 중심으로 공부할 수 있도록 안내합니다. 여러분이 해당 분야에서 실무자로 빠르게 성장할 수 있도록 지원하겠습니다.

저자

신선영

저자:신선영

리멤버백엔드개발자.하드스킬과소프트스킬역량을강화하고자부단히공부하고글로남기는백엔드개발자입니다.평일기준하루평균600뷰의기술블로그를운영하고,모교학생을대상으로정기세미나와멘토링을진행합니다.구독자가1,000명정도되는사이드프로젝트를기획하고개발하고운영한경험이있습니다.

저자블로그shinsunyoung.tistory.com

저자깃허브github.com/shinsunyoung

목차


[레벨1|스프링부트로백엔드입문하기]

00장개발환경구축하기
_0.0그림으로이해하는프로젝트
_0.1인텔리제이설치및설정
__윈도우에인텔리제이설치하기
__macOS에인텔리제이설치하기
__프로젝트생성하기
_0.2스프링부트3프로젝트만들기
_0.3포스트맨설치하기
_0.4예제코드저장소위치와저자에게깃허브이슈로질문하기
_0.5개발편의와속도를확올려줄꿀단축키

01장자바백엔드개발자가알아두면좋은지식
_1.1서버와클라이언트
__클라이언트란?
__서버란?
_1.2데이터베이스
__RDB란?
__SQL이란?
__NoSQL이란?
_1.3아이피와포트
_1.4라이브러리와프레임워크
__라이브러리란?
__프레임워크란?
_1.5백엔드개발자의업무
_1.6백엔드프로그래밍언어
_1.7자바애너테이션
02장스프링부트3시작하기
_2.0그림으로이해하는프로젝트
_2.1스프링과스프링부트
__스프링의등장
__스프링을더쉽게만들어주는스프링부트
_2.2스프링콘셉트공부하기
__제어의역전과의존성주입
__빈과스프링컨테이너
__관점지향프로그래밍
__이식가능한서비스추상화
_2.3스프링부트3둘러보기
__첫번째스프링부트3예제만들기
__스프링부트스타터살펴보기
__자동구성
__스프링부트3와자바버전
_2.4스프링부트3코드이해하기
__@SpringBootApplication이해하기
__테스트컨트롤러살펴보기

__학습마무리
__연습문제

03장스프링부트3구조이해하기
_3.0그림으로이해하는프로젝트
_3.1스프링부트3구조살펴보기
__카페와빵집으로이해하는계층
__스프링부트프로젝트디렉터리구성하며살펴보기
__main디렉터리구성하기
_3.2스프링부트3프로젝트발전시키기
__build.gradle에의존성추가하기
__프레젠테이션,서비스,퍼시스턴스계층만들기
__임포트오류처리하기
__작동확인하기
_3.3스프링부트요청-응답과정한방에이해하기

__학습마무리
__연습문제

04장스프링부트3와테스트
_4.1테스트코드개념익히기
__테스트코드란?
_4.2스프링부트3와테스트
__JUnit이란?
_4.3제대로테스트코드작성해보기
__테스트코드패턴연습하기

__학습마무리
__연습문제

05장데이터베이스조작이편해지는ORM
_5.0그림으로이해하는프로젝트
_5.1데이터베이스란?
__데이터베이스관리자,DBMS
__SQL문으로데이터베이스조작하는연습하기
_5.2ORM이란?
_5.3JPA와하이버네이트?
__엔티티매니저란?
__영속성컨텍스트란?
__엔티티의상태
_5.4스프링데이터와스프링데이터JPA
__스프링데이터JPA란?
__스프링데이터JPA에서제공하는메서드사용해보기
_5.5예제코드살펴보기

__학습마무리
__연습문제

[레벨2|스프링부트3로블로그제대로만들기]

[프로젝트]06장블로그기획하고API만들기
_6.0그림으로이해하는프로젝트
_6.1사전지식:API와RESTAPI
__식당으로알아보는API
__웹의장점을최대한활용하는RESTAPI
6.2블로그개발을위한엔티티구성하기
__프로젝트준비하기
__엔티티구성하기
__리포지터리만들기
6.3블로그글작성을위한API구현하기
__서비스메서드코드작성하기
__컨트롤러메서드코드작성하기
__API실행테스트하기
__반복작업을줄여줄테스트코드작성하기
6.4블로그글목록조회를위한API구현하기
__서비스메서드코드작성하기
__컨트롤러메서드코드작성하기
__실행테스트하기
__테스트코드작성하기
6.5블로그글조회API구현하기
__서비스메서드코드작성하기
__컨트롤러메서드코드작성하기
__테스트코드작성하기
6.6블로그글삭제API구현하기
__서비스메서드코드작성하기
__컨트롤러메서드코드작성하기
__실행테스트하기
__테스트코드작성하기
6.7블로그글수정API구현하기
__서비스메서드코드작성하기
__컨트롤러메서드코드작성하기
__실행테스트하기
__테스트코드작성하기

__학습마무리
__연습문제

[프로젝트]07장블로그화면구성하기
_7.1사전지식:타임리프
__템플릿엔진개념잡기
__타임리프사용을위한의존성추가하기
__타임리프문법익히기용컨트롤러작성하기
__뷰작성하기
__뷰테스트하기
_7.2블로그글목록뷰구현하기
__컨트롤러메서드작성하기
__HTML뷰만들고테스트하기
_7.3블로그글뷰구현하기
__엔티티에생성,수정시간추가하기
__컨트롤러메서드작성하기
__HTML뷰만들기
__실행테스트하기
_7.4삭제기능추가하기
__삭제기능코드작성하기
__실행테스트하기
_7.5수정/생성기능추가하기
__수정/생성뷰컨트롤러작성하기
__수정/생성뷰만들기
__실행테스트하기
_7.6생성기능마무리하기
__생성기능작성하기
__실행테스트하기

__학습마무리
__연습문제

[프로젝트]08장스프링시큐리티로로그인/로그아웃,회원가입구현하기
_8.0그림으로이해하는프로젝트
_8.1사전지식:스프링시큐리티
_8.2회원도메인만들기
__의존성추가하기
__엔티티만들기
__리포지터리만들기
__서비스메서드코드작성하기
_8.3시큐리티설정하기
_8.4회원가입구현하기
__서비스메서드코드작성하기
__컨트롤러작성하기
_8.5회원가입,로그인뷰작성하기
__뷰컨트롤러구현하기
__뷰작성하기
_8.6로그아웃구현하기
__로그아웃메서드추가하기
__로그아웃뷰추가하기
_8.7실행테스트하기
__테스트를위한환경변수추가하기
__로그인,회원가입실행테스트하기
__로그아웃실행테스트하기

__학습마무리
__연습문제

[프로젝트]09장JWT로로그인/로그아웃구현하기
_9.1사전지식:토큰기반인증
__토큰기반인증이란?
__JWT
_9.2JWT서비스구현하기
__의존성추가하기
__토큰제공자추가하기
__리프레시토큰도메인구현하기
__토큰필터구현하기
_9.3토큰API구현하기
__토큰서비스추가하기
__컨트롤러추가하기

__학습마무리
__연습문제

[프로젝트]10장OAuth2로로그인/로그아웃구현하기
_10.1사전지식:OAuth
__OAuth란?
__권한부여코드승인타입이란?
__쿠키란?
_10.2토큰발급받기
_10.3스프링시큐리티로OAuth2를구현하고적용하기
__의존성추가하기
__쿠키관리클래스구현하기
__OAuth2서비스구현하기
__OAuth2설정파일작성하기
__글에글쓴이추가하기
__OAuth뷰구성하기
__글수정,삭제,글쓴이확인로직추가하기
_10.4OAuth2실행테스트하기
_10.5테스트코드실패해결하고코드수정하기

__학습마무리
__연습문제

[레벨3|AWS와깃허브액션으로배포/유지보수편안하게하기]

[프로젝트]11장AWS에프로젝트배포하기
_11.1사전지식:AWS
__AWS란?
__AWS서비스로우리의서비스배포하기
__설정이간편한일래스틱빈스토크
_11.2AWS계정생성하기
_11.3일래스틱빈스토크로서버구축하기
__일래스틱빈스토크서비스생성하기
__일래스틱빈스토크에서RDS생성하기
__로컬에서RDS연결하기
_11.4일래스틱빈스토크에우리의서비스배포하기
__애플리케이션배포하기
__OAuth서비스에승인된URI추가하기

__학습마무리
__연습문제

[프로젝트]12장CI/CD도입하기
_12.1사전지식:CI/CD
__CI/CD란?
__깃과깃허브
_12.2깃허브액션사용하기
__깃허브리포지터리생성하고코드푸시하기
__깃허브액션스크립트작성하기,CI
__깃허브액션스크립트작성하기,CD

__학습마무리
__연습문제

부록A값검증가이드
부록B예외처리가이드
부록C디버깅가이드
부록D댓글기능추가가이드

출판사 서평

★출간즉시베스트셀러,스프링부트대표도서
★더강력하게2판으로돌아왔습니다!

이책의1판은출간즉시온오프라인서점에서베스트셀러로사랑을받았습니다.빠른기술흐름과높아진독자의눈높이에맞추고자이론과실습을더욱강화해2판으로다시돌아왔습니다.2판에서는강화된내용은다음과같이총64쪽분량입니다.

1.구조와원리이론보강
2.스프링부트프로젝트진행을위해꼭알아야하는SQL기초와실습
3.스프링시큐리티업데이트
4.블로그댓글기능등을추가

★백엔드세상에오신걸환영합니다
★자바그다음책을소개합니다

환영합니다.백엔드개발자가되고싶은데무엇을어떻게할지모르겠는분이라면,잘찾아오셨습니다.이책은자바를공부하고나서백엔드입문에필요한내용을알려줍니다.입문자뿐만아니라,더깊게체계적으로기본을다지고싶은주니어개발자와,대규모서비스노하우를담은수준높은코드를경험하고싶은개발자모두에게유용합니다.

4대장과함께공부하세요
자바백엔드환경의핵심은〈스프링부트〉입니다.〈스프링부트〉는자바기반의프레임워크이므로자바언어의기초문법부터클래스,인터페이스와같은기초지식은반드시알고있어야하며,데이터베이스,SQL관련지식도알아야합니다.너무많은기초지식을알아야할것같아서걱정인가요?걱정마세요.이런기초지식들은책에서충분히설명합니다.이책에서〈스프링부트〉와함께공부할4대장을소개합니다.

〈ORM(JPA+하이버네이트)〉JPA는자바에서관계형데이터베이스를사용하는방식을정의한인터페이스입니다.즉,스프링부트에서는SQL이아닌자바언어로데이터베이스를조작하죠.JPA는인터페이스이므로ORM프레임워크를추가로선택해야합니다.실무에서는대표적으로하이버네이트를많이사용합니다.

〈인증(ID/PW,OAuth2,JWT)〉블로그의기초기능인쓰기,수정하기,조회하기,삭제하기는기본이죠.여기서는회원가입부터,로그인,로그아웃을다양한방법으로구현합니다.단순ID/PW입력방식부터OAuth2를활용한구글로그인,JWT를활용한토큰인증방식까지!실무활용기법을모두다루면서도점점기능을업그레이드하는과정으로구성되어있죠.

〈AWS배포(일래스틱빈스토크)〉개발을마쳤다면배포도해봐야죠.여기서는AWS의일래스틱빈스토크를활용하여블로그를배포합니다.여기서는EC2,오토스케일링그룹,로드밸런서,RDS와같은AWS의구성설명부터스프링부트환경을제대로이용해서AWS에배포하는방법을공부합니다.

〈CI/CD(깃허브액션)〉CI/CD가뭐냐고요?쉽게말해개발자가개발을마치고,애플리케이션을빌드하고,테스트를하고,원격저장소에코드를업데이트하고,이를배포하는등의전과정을자동화하는과정을말합니다.대부분의실무환경에서는CI/CD를진행하죠.여기서는깃허브액션을활용하여CI/CD를진행해봅니다.

〈되기〉시리즈는여러분에게앞으로나아갈길을먼저제시합니다입문자를위한백엔드로드맵을만나보세요

저자는백엔드개발자로입문할때겪은난감함을떠올렸습니다.무엇을어떻게할지몰랐습니다.로드맵이필요했습니다.하지만누구도제대로된로드맵을제공해주지않았습니다.그래서저자는입문자에게필요한백엔드로드맵을먼저제시하고설명합니다.로드맵에는수많은기술이나열되어있습니다.책한권에로드맵에있는모든걸담을수도,한번에모두배울수도없습니다.이책은그중에서도출발점으로삼을스프링부트3를중심으로함께공부할로드맵을제시합니다.

실무에유용한기술로익히세요
기술은빠르게변합니다.지금은대세이지만지는기술,아직은미약하지만뜨는기술이있습니다.트렌드가변하는데는그럴만한이유가있습니다.반면기본은트렌드와무관하게변하지않습니다.그래서기본은탄탄하게,기술셋은트렌디하면서실무에유용하게설명했습니다.

경험을녹인고퀄리티코드를접하세요
인터넷을검색하면손쉽게동작하는코드를얻을수있습니다.그렇게얻은코드대부분은기능이부족하거나서비스가성장하면서다양한이슈를낳게됩니다.이책에들어있는코드는그런인터넷복붙코드가아닙니다.필자가서비스를개발하고운영한경험을녹인코드입니다.인터넷을검색하면블로그개발을위한코드가많습니다.하지만제대로JWT,OAuth2를녹여내거나CI/CD까지고려한개발을잘엮어준책은없습니다.이책에서는제대로동작하는블로그기능부터JWT,OAuth2를위한보안,향후실무에서경험할CI/CD까지만나볼수있습니다.

이책에서다루는내용을소개합니다
이책은학습흐름을끊지않기위해개발환경부터미리구축해놓은후,스프링부트3를중심으로레벨1부터레벨3로나눠자바백엔드개발소양을쌓아나갑니다.그리고모든장에는연습문제를수록하여공부한내용을확인할수있도록했습니다.

_Level1스프링부트로백엔드입문하기
스프링부트는도구자체에대한구조와개념을알아야제대로활용할수있습니다.개발환경을준비하며스프링부트의구조와개념을알아본다음,기본프로젝트실습을하며눈과손으로익힙니다.

_Level2스프링부트블로그제대로만들기
본격적인스프링부트개발을할시간입니다.여기서는나만의블로그를제대로개발합니다.RESTfulAPI개발,스프링시큐리티를활용한보안구성,유지보수를위한테스트코드작성및실행등실무에필요한내용도챙깁니다.본문의실습은반복패턴으로구성되어있습니다.스프링부트개발이처음인사람에게는이만큼연습하기좋은구성도없을겁니다.

_Level3AWS와깃허브액션으로배포/유지보수편안하게하기
실무에서는개발만하지않습니다.배포도할줄알아야하죠.여기서는AWS를이용한웹애플리케이션배포를다룹니다.그뿐만이아닙니다.깃허브액션을활용한CI/CD과정도경험하도록본문을구성했습니다.