React.js, 스프링 부트, AWS로 배우는 웹 개발 101 2/e : SPA, REST API 기반 웹 애플리케이션 개발

React.js, 스프링 부트, AWS로 배우는 웹 개발 101 2/e : SPA, REST API 기반 웹 애플리케이션 개발

$36.39
Description
다수의 사용자를 지원하는 Todo 웹 애플리케이션을 구현하고 배포한다. 또한 현장에서 많이 사용하는 프론트엔드와 백엔드 서버가 분리된 아키텍처(Decoupled Architecture)를 구현한다. 또한 배포 시 단순히 로컬 환경이나 임시 HTTP 서버로 배포하는 데 그치지 않고, HTTPS 인증서 설정, 로드 밸런서, 오토 스케일링 그룹 등 AWS 클라우드 서비스를 사용해 실제 서비스 운영에 필요한 배포, 스케일링 기술을 전달한다. 이 책을 통해 스프링 부트와 리액트를 이용해 애플리케이션을 구현하면서 확장 가능한 아키텍처를 구축하고 운영해볼 수 있다. 2판에서는 OAuth 2.0를 이용해 소셜 로그인 기능을 구현하는 내용을 추가했다.

저자

김다정

저자:김다정
건국대학교컴퓨터공학부를졸업한후미국LA에서웹개발을시작했다.현재는아마존웹서비스에서서버리스서비스를구현하는분산시스템을개발하고있다.여가시간에는블로그삐멜소프트웨어엔지니어링을통해개발에관련된여러가지소프트웨어엔지니어링관련기술과지식을나눈다.

목차

1장.개발을시작하기전에
1.1이책을읽는방법
1.1.1예제와실습코드
1.1.2소스코드
1.1.3커맨드라인인터페이스
1.1.4정리
1.2Todo웹애플리케이션
1.2.1Todo웹애플리케이션기능
1.2.2Todo웹애플리케이션아키텍처
1.2.3기술과구현사이
1.2.4정리
1.3배경지식
1.3.1하이퍼텍스트트랜스퍼프로토콜
1.3.2자바스크립트오브젝트노테이션
1.3.3서버란?
1.3.4정적웹서버
1.3.5동적웹서버
1.3.6자바서블릿컨테이너/엔진
1.3.7정리

2장.백엔드개발
2.1백엔드개발환경설정
2.1.1AmazonCorretto11설치
2.1.2이클립스설치
2.1.3스프링프레임워크와의존성주입
2.1.4스프링프레임워크와디스패쳐서블릿
2.1.5스프링부트프로젝트설정
2.1.6메인메서드와@SpringBootApplication
2.1.7빌드자동화툴:Gradle과라이브러리
2.1.8디펜던시라이브러리추가
2.1.9롬복
2.1.10포스트맨API테스트
2.1.11정리
2.2백엔드서비스아키텍처
2.2.1레이어드아키텍처
2.2.2모델,엔티티,DTO
2.2.3RESTAPI
2.2.4컨트롤러레이어:스프링RESTAPI컨트롤러
2.2.5서비스레이어:비즈니스로직
2.2.6퍼시스턴스레이어:스프링데이터JPA
2.2.7정리
2.3서비스개발및실습
2.3.1CreateTodo구현
2.3.2RetrieveTodo구현
2.3.3UpdateTodo구현
2.3.4DeleteTodo구현
2.3.5정리

3장.프론트엔드개발
3.1프론트엔드개발환경설정
3.1.1Node
3.1.2비주얼스튜디오코드설치
3.1.3프론트엔드애플리케이션생성
3.1.4material-ui패키지설치
3.1.5브라우저의작동원리
3.1.6React
3.1.7정리
3.2프론트엔드서비스개발
3.2.1Todo리스트
3.2.2Todo추가
3.2.3Todo삭제
3.2.4Todo수정
3.2.5정리
3.3서비스통합
3.3.1CORS
3.3.2EffectHook을이용한Todo리스트초기화
3.3.3fetch
3.3.4정리

4장.인증백엔드통합
4.1RESTAPI인증기법
4.1.1Basic인증
4.1.2토큰기반인증
4.1.3JSON웹토큰
4.1.4정리
4.2User레이어구현
4.2.1UserEntity
4.2.2UserRepository
4.2.3UserService
4.2.4UserController
4.2.5정리
4.3스프링시큐리티통합
4.3.1JWT생성및반환구현
4.3.2스프링시큐리티와서블릿필터
4.3.3JWT를이용한인증구현
4.3.4스프링시큐리티설정
4.3.5TodoController에서인증된유저사용하기
4.3.6패스워드암호화
4.3.7정리

5장.인증프론트엔드통합
5.1라우팅
5.1.1react-router-dom
5.1.2react-router-dom라이브러리가필요한이유
5.1.3로그인컴포넌트
5.1.5정리
5.2로그인페이지
5.2.1로그인을위한API서비스메서드작성
5.2.2로그인에성공
5.2.3정리
5.3로컬스토리지를이용한액세스토큰관리
5.3.1로컬스토리지
5.3.2액세스토큰저장
5.3.3정리
5.4로그아웃과글리치해결
5.4.1로그아웃서비스
5.4.2네비게이션바와로그아웃
5.4.3UI글리치해결
5.4.4정리
5.5계정생성페이지
5.5.1계정생성로직
5.5.2정리

6장.프로덕션배포
6.1서비스아키텍처
6.1.1EC2
6.1.2라우트53-DNS
6.1.3애플리케이션로드밸런서
6.1.4오토스케일링그룹
6.1.5VPC와서브넷
6.1.6일래스틱빈스톡
6.1.7정리
6.2AWSCLI와EBCLI설치
6.2.1AWS계정생성
6.2.2파이썬설치
6.2.3AWSCLI설치
6.2.4AWSCLI설정
6.2.5pip을이용해EBCLI설치
6.2.6윈도우사용자를위한환경변수설정
6.2.7정리
6.3AWS일래스틱빈스톡을이용한백엔드배포
6.3.1일래스틱빈스톡이란?
6.3.2ebinit을이용해애플리케이션생성
6.3.3백엔드애플리케이션설정
6.3.4ebcreate를이용해AWS에환경생성
6.3.5애플리케이션배포
6.3.6환경구성
6.3.7엔드포인트테스팅
6.3.8프론트엔드통합테스팅
6.3.9정리
6.4AWS일래스틱빈스톡을이용한프론트엔드배포
6.4.1ebinit을이용해애플리케이션생성
6.4.2ebcreate을이용한애플리케이션배포
6.4.3크로스-오리진문제
6.4.4정리
6.5Route53도메인설정
6.5.1도메인구매
6.5.2호스팅영역생성
6.5.3백엔드재배포
6.5.4프론트엔드재배포
6.5.5정리
6.6백엔드/프론트엔드AWSCertificateManager를이용한https설정
6.6.1인증서요청
6.6.2백엔드애플리케이션HTTPS설정
6.6.3프론트엔드애플리케이션HTTPS설정
6.6.3정리

7장.OAuth2.0와소셜로그인개발
7.1OAuth2.0
7.1.1다른애플리케이션과의통합
7.1.2OAuth2.0인가프레임워크
7.1.3OAuth2.0흐름
7.1.4정리
7.2소셜로그인백엔드구현
7.2.1소셜로그인사이트에서클라이언트애플리케이션생성하기
7.2.2OAuth2.0라이브러리추가
7.2.3application-dev.yaml에서OAuth2.0설정
7.2.4Todo백엔드OAuth2.0엔드포인트설정..
7.2.5소셜로그인후자동으로회원가입
7.2.6Todo애플리케이션토큰발행
7.2.7정리
7.3소셜로그인프론트엔드구현
7.3.1백엔드AuthenticationEntryPoint설정
7.3.2소셜로그인엔드포인트추가
7.3.3소셜로그인기능추가
7.3.4프론트엔드로Bearer토큰전달하기
7.3.5임의의프론트엔드로토큰전달하기
7.3.6정리

출판사 서평

이책에서다루는내용
◆REST백엔드,React프론트엔드,AWS를이용한간단한Todo애플리케이션개발
◆스프링부트,그래들,메이븐리포지터리,롬복,JPA등RESTAPI개발에필요한내용
◆React.js의원리와프론트엔드개발에필요한기초지식
◆React.js와같은싱글페이지애플리케이션(SinglePageApplication)의동작방식
◆JWT를이용한인증이론과구현
◆AWS일라스틱빈스톡을이용해애플리케이션을배포하는방법및배포시사용되는EC2,오토스케일링그룹,로드밸런서,RDS등의리소스
◆Route53에서DNS를등록하는방법과DNS를로드밸런서로연결하는방법
◆OAuth2.0를이용해소셜로그인기능구현

이책의대상독자
◆스프링MVC를개발할줄알지만다른아키텍처를경험해보고싶은학생/주니어개발자
◆프론트엔드와백엔드가분리된아키텍처를구축해보고싶은학생/주니어개발자
◆실제웹서비스를작성하고운영해보고싶은학생/주니어개발자
◆AWS에서웹서비스를운영해보고자하는학생/주니어개발자
◆서비스스케일에관심이있는학생/주니어개발자
◆실무에서많이사용하는아키텍처패턴에관심있는학생/주니어개발자