스프링 부트 3.0 3/e : 프로덕션급 애플리케이션 개발 간소화 - 에이콘 프로그래밍 언어 시리즈

스프링 부트 3.0 3/e : 프로덕션급 애플리케이션 개발 간소화 - 에이콘 프로그래밍 언어 시리즈

$28.00
Description
스프링 부트 3에 대한 포괄적인 가이드로, 초보자부터 숙련된 개발자까지 모든 수준의 독자들이 활용할 수 있도록 구성돼 있다. 복잡한 인프라 설정을 피하고 효율적인 개발 방법에 초점을 맞춰 웹 애플리케이션 개발의 기초부터 고급 주제까지 다룬다. 주요 내용으로는 빠른 애플리케이션 시작, 데이터 처리, 보안, 테스팅, 그리고 GraalVM을 이용한 네이티브 이미지 배포와 반응형 프로그래밍 같은 최신 기술 트렌드를 포함한다. 또한 실용적인 예제를 통해 애플리케이션의 설계, 개발, 테스트, 그리고 배포 과정을 체계적으로 안내하며, 다양한 환경에서의 애플리케이션 운영 방법도 제시한다.

저자

그렉턴키스트

저자:그렉턴키스트(GregL.Turnquist)(
스프링데이터JPA와스프링웹서비스의수석개발자다.스프링헤이티오스(HATEOAS,HypermediaAsTheEngineOfApplicationState),스프링데이터레스트(REST),스프링시큐리티(Security),스프링프레임워크(Framework),스프링포트폴리오의다른많은부분에기여해왔다.수년간스크립트-푸(script-fu)를통해스프링데이터팀의CI시스템을유지관리해왔다.『스프링부트2.02/e』(에이콘출판,2019)과시장에출시된최초의스프링부트책을비롯해스프링부트에관한여러권의책을저술했다.심지어자신의유튜브채널인SpringBootLearning(http://bit.ly/3uSPLCz)을개설해스프링부트에대해배우고재미있게실습할수있는채널을만들기도했다.스프링팀에합류하기전에는해리스(HarrisCorp.)에서선임소프트웨어엔지니어로근무하며미국연방항공청(FAA,FederalAviationAdministration)과의15억달러규모의전국상시접속네트워크구축계약을비롯한여러프로젝트에참여했다.테스트에몰두하는스크립트전문가인그렉은한밤중의장애에도익숙하다.컴퓨터공학석사학위를취득했으며아내와자녀들과함께미국에서살고있다.

역자:김진웅
관측가능성과컨테이너기술에관심이많은19년차엔지니어다.클라우드엔지니어,데브옵스,SRE업무를거쳐현재는AWSKoreaProfessionalServices팀에서고객의모더나이제이션여정을돕는클라우드아키텍트업무를수행하고있다.

목차


1부.스프링부트기본
1장.스프링부트의핵심기능
__기술요구사항
____자바17설치
____최신IDE설치
____깃허브계정생성
____추가지원찾기
__스프링빈자동설정
____애플리케이션콘텍스트이해
____스프링부트의자동설정정책살펴보기
__스프링부트스타터를사용해포트폴리오구성요소추가
__설정프로퍼티를사용해설정사용자지정
____사용자지정프로퍼티생성
____애플리케이션설정외부화
____프로퍼티기반빈설정
__애플리케이션의존성관리
__요약

2부.스프링부트로애플리케이션만들기
2장.스프링부트로웹애플리케이션만들기
__start.spring.io을사용해애플리케이션빌드
__스프링MVC웹컨트롤러생성
__start.spring.io를사용해기존프로젝트보강
__템플릿을활용해콘텐츠생성
____템플릿에데모데이터추가
____더나은디자인으로애플리케이션빌드
____생성자호출을통한의존성주입
____HTML템플릿을통해데이터변경
__JSON기반API생성
__스프링부트웹애플리케이션에Node.js후킹
____Node.js로자바스크립트빌드
____React.js애플리케이션생성
__요약

3장.스프링부트로데이터쿼리하기
__기존스프링부트애플리케이션에스프링데이터추가하기
____스프링데이터를사용해손쉽게데이터관리
____프로젝트에스프링데이터JPA추가
__DTO,엔티티,POJO
____엔티티
____DTO
____POJO
__스프링데이터리포지터리생성
__사용자지정파인더사용
__결과정렬
__쿼리결과제한
__까다로운답변을찾기위한쿼리예제
__자바퍼시스턴트API사용
__요약

4장.스프링부트애플리케이션보호
__프로젝트에스프링시큐리티추가
__사용자지정보안정책으로자체사용자생성
__하드코딩된사용자를스프링데이터지원사용자집합으로교체
__웹경로및HTTP메서드보안
____CSRF를사용할것인가말것인가,그것이문제로다
__스프링데이터메서드보안
____모델업데이트
____데이터소유권확보
____삭제버튼추가
____데이터소유자에대한액세스권한잠그기
____메서드수준보안활성화
____사이트에사용자세부정보표시
__구글을활용해사용자인증
____OAuth사용의장점
____OAuth사용의단점
____구글OAuth2.0애플리케이션생성
____스프링부트프로젝트에OAuth클라이언트추가
____원격으로OAuth2API호출
____OAuth2기반웹애플리케이션생성
__요약

5장.스프링부트테스트
__애플리케이션에JUnit5추가
__도메인기반테스트케이스생성
__MockMVC를사용해웹컨트롤러테스트
__모킹으로데이터리포지터리테스트
__임베디드데이터베이스로데이터리포지터리테스트
__애플리케이션에테스트컨테이너추가
__테스트컨테이너를사용한데이터리포지터리테스트
__스프링시큐리티테스트로보안정책테스트
__요약

3부.스프링부트애플리케이션릴리스
6장.스프링부트애플리케이션설정
__사용자지정프로퍼티생성
__프로파일기반프로퍼티파일생성
__YAML전환
__환경변수로프로퍼티설정
__프로퍼티오버라이드순서
__요약

7장.스프링부트애플리케이션릴리스
__uberJAR생성
__도커컨테이너베이킹
____‘올바른’유형의컨테이너빌드
__애플리케이션을도커허브에릴리스
__프로덕션환경조정
____스프링부트스케일링
__요약

8장.스프링부트로네이티브전환
__GraalVM이중요한이유
__GraalVM에맞게애플리케이션갱신
__GraalVM으로기본스프링부트애플리케이션실행
____GraalVM을다시사용해야하는이유
__GraalVM으로도커컨테이너베이킹
____스프링부트3.0과스프링부트2.7및스프링네이티브비교
____GraalVM및기타라이브러리
__요약

4부.스프링부트애플리케이션확장
9장.반응형웹컨트롤러작성
__반응형이란무엇이며관심을가져야할이유
____반응형
____반응형스트림세부정보
__반응형스프링부트애플리케이션생성
__반응형GET메서드로데이터서비스
__반응형POST메서드로들어오는데이터소비
____프로젝트리액터로애플리케이션확장
____자바동시성프로그래밍역사빠르게훑어보기
__반응형템플릿서비스
____리액티브웹컨트롤러생성
____타임리프템플릿생성
__반응형하이퍼미디어생성
__요약

10장.반응형데이터작업
__반응형으로데이터를가져온다는것의의미
__반응형데이터저장소선택
__반응형데이터리포지터리만들기
__R2DBC사용
____R2dbcEntityTemplate로데이터로드
____API컨트롤러에반응형으로데이터반환
____템플릿에서데이터를반응형으로처리
__요약

출판사 서평

이책에서다루는내용

번거로움을최소화하고강력한프로덕션수준의웹애플리케이션만들기
하나의아티팩트로여러환경을지원하고,프로덕션급지원기능추가하기
다양한속성을통해자바앱을조정하는방법알아보기
앱의보안모델강화하기
스프링부트에서네이티브배포및반응형프로그래밍과같은향상된기능활용하기
가벼운단위테스트부터완전히실행되는임베디드웹컨테이너통합테스트까지빌드하기
반응형프로그래밍을알아보고적합한접근방식인지의사결정하기

이책의대상독자

스프링부트3.0을사용하고자하는초보자와숙련된스프링개발자모두를위해만들어졌다.자바에대한기초적인이해가있어야하며,가급적이면자바8이상버전이어야한다.람다(lambda)함수,메서드(method)참조,레코드(record)유형,자바17버전에서새롭게개선된컬렉션API에익숙하면좋지만필수는아니다.

필수는아니지만이전버전의스프링부트(1.x,2.x)를사용해본경험이있다면도움이될것이다.

이책의구성

1장,‘스프링부트의핵심기능’에서는애플리케이션을빌드할때사용할수있는기본기능과함께스프링부트의매력을알아본다.
2장,‘스프링부트로웹애플리케이션만들기’는서버및클라이언트측옵션을모두사용해자바애플리케이션의웹레이어(layer)를쉽게제작하는방법을알려준다.
3장,‘스프링부트로데이터쿼리하기’에서는스프링데이터로데이터베이스를최대한활용하는방법을보여준다.
4장,‘스프링부트애플리케이션보호’에서는스프링시큐리티의최첨단기능을사용해애플리케이션을내부와외부의악당으로부터보호하는방법을살펴본다.
5장,‘스프링부트테스트’는모의데이터베이스와임베디드데이터베이스로테스트하고,실제데이터베이스와결합된테스트컨테이너(Testcontainer)를사용해시스템에대한신뢰를구축하는방법을알려준다.
6장,‘스프링부트애플리케이션구성’에서는애플리케이션이빌드된후조정하고적용하는방법을알아본다.
7장,‘스프링부트애플리케이션릴리스’에서는애플리케이션을프로덕션환경으로전환하고사용자에게제공하는다양한방법을살펴본다.
8장,‘스프링부트로네이티브전환’에서는몇초만에시작하고모든리소스를차지하지않는네이티브이미지를사용해애플리케이션의속도를비약적으로향상시키는방법을보여준다.
9장,‘리액티브웹컨트롤러작성’에서는반응형웹컨트롤러를작성하는것이얼마나쉬운지,그리고반응형웹컨트롤러가어떻게더효율적인애플리케이션의핵심이될수있는지를설명한다.
10장,‘반응형데이터작업’에서는R2DBC를사용해반응형데이터를쿼리하는방법을알아보고애플리케이션의효율성을확인하는데도움을준다.

지은이의말

이책은초보자와숙련된스프링개발자모두를위해설계됐다.인프라및기타지루한세부사항에시간을낭비하지않고자바애플리케이션을빌드하는방법을알려준다.대신최신보안관행으로잠긴실제데이터베이스위에웹애플리케이션을구축하는데집중할수있도록도와준다.

또한,애플리케이션을프로덕션환경으로옮기는다양한방법을알아볼수있다.그것만으로충분하지않다면마지막에는반응형프로그래밍을선택해기존서버또는클라우드를통해더많이활용할수있는비밀스러운방법도포함돼있다.사실비밀은아니다.

옮긴이의말

스프링부트프레임워크는작고빠르게사용할수있어많은조직에서선호하며사용하고있다.2022년에3.0버전을릴리스한이후2024년7월현재3.3.x버전까지출시돼작은스타트업부터대규모엔터프라이즈까지폭넓게활용되고있다.스프링부트3.0의주요특징으로는자바17을기본으로지원하고,기존의자바EEAPI에서자카르타(Jakarta)EE9API로전환된부분이있다.또한,GraalVM을사용해서클라우드네이티브이미지를빌드해경량화된이미지를통해부트스트랩시간을단축하고메모리사용량을최적화할수있는것이큰장점중하나다.이번책에서는자세히다루지않지만Micrometer및MicrometerTracing기능이통합돼더효율적으로관측데이터를수집할수있게된것도중요한특징이다.

이책은스프링부트3.0을활용해자바와스프링으로빠른시간내에애플리케이션개발을단순화하는종합적인가이드로활용할수있다.초보자와경험많은개발자모두를대상으로하며,기본설정에서부터고급기능까지실용적인예제와함께다루고있다.초보자들이반드시알아야하는스프링부트의핵심요소인자동설정,스타터,설정프로퍼티,의존성관리등을초반에설명하고,Thymeleaf기반의간단한웹애플리케이션부터시작한다.JPA,스프링시큐리티,테스트등을살펴보고GraalVM을사용해서클라우드네이티브이미지를빌드하고여러가지도구를사용해도커컨테이너기반으로베이크하는방법도다룬다.후반부에는웹플럭스를통해반응형웹컨트롤러를작성하는방법과반응형데이터를처리하는방법까지다룬다.

사실이책은스프링부트의모든내용을담고있지는않지만,스프링을사용해본경험이있거나스프링부트에대해기초적인지식이있는분들께유용하게활용될것이라생각한다.