출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

스프링 6와 스프링 부트 3로 배우는 모던 API 개발 Java 17과 Spring Boot 3 기반의 REST, gRPC, GraphQL을 활용한 반응형 API 설계
소라브 샤르마 저 | 김광영,문종민,박천구 역 | 위키북스 | 2024년 12월
ISBN : 9791158395384 / 512쪽 / 973g / 188 x 240 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
정지훈
-
서길원, 김운호, 허상훈, 박재상, 박경규, 김종욱, 오윤우, 유지영
-
김현철, 신은경, 이민정, 박선우, 정기민, 곽소아, 정문수
-
성구(강성규)
- 25,200
- 31,500
- 21,420
- 21,600
반디앤루니스 리뷰
스프링은 자바를 사용해 확장 가능하고 신뢰할 수 있는 웹 애플리케이션을 구축할 때 사용 가능한 강력하고 널리 사용되는 프레임워크이며, 스프링 부트는 스프링 기반 애플리케이션의 설정과 구성을 단순화시켜 주는 인기 소프트웨어이다. 이 책은 웹 개발 시에 참고할 수 있는 스프링 6와 스프링 부트 3에 대한 깊이 있는 가이드로, 현대적이고 견고한 웹 API 및 서비스 구축에 대한 실용적인 지식을 제공한다.
이 책은 RESTful 웹 서비스 기본 지식, 스프링에 대한 개념 이해, API 스펙 설계를 포함한 API 개발에 필수적인 다양한 주제를 다루며 비동기 API 설계, 보안, 사용자 인터페이스 설계, API 테스트, 웹 서비스 배포 등을 설명한다. 나아가 실전 애플리케이션에 필요한 다양한 유형의 API 구축에 참조할 수 있는 실제 수준의 샘플 앱을 제공한다. 이 샘플 앱을 통해 설계 및 사양, 구현, 테스트, 배포를 포함한 전체 API 개발 주기에 대해 이해하게 될 것이다.
출판사 리뷰
실습을 통해 프로덕션 수준의 API를 설계, 테스트, 보안, 배포 및 유지보수 하는 방법을 배워 애플리케이션의 기능을 향상시켜 보자!
스프링은 자바를 사용해 확장 가능하고 신뢰할 수 있는 웹 애플리케이션을 구축할 때 사용 가능한 강력하고 널리 사용되는 프레임워크이며, 스프링 부트는 스프링 기반 애플리케이션의 설정과 구성을 단순화시켜 주는 인기 소프트웨어이다. 이 책은 웹 개발 시에 참고할 수 있는 스프링 6와 스프링 부트 3에 대한 깊이 있는 가이드로, 현대적이고 견고한 웹 API 및 서비스 구축에 대한 실용적인 지식을 제공한다.
이 책은 RESTful 웹 서비스 기본 지식, 스프링에 대한 개념 이해, API 스펙 설계를 포함한 API 개발에 필수적인 다양한 주제를 다루며 비동기 API 설계, 보안, 사용자 인터페이스 설계, API 테스트, 웹 서비스 배포 등을 설명한다. 나아가 실전 애플리케이션에 필요한 다양한 유형의 API 구축에 참조할 수 있는 실제 수준의 샘플 앱을 제공한다. 이 샘플 앱을 통해 설계 및 사양, 구현, 테스트, 배포를 포함한 전체 API 개발 주기에 대해 이해하게 될 것이다.
이 책에 대한 학습을 마치고 나면, Spring 6와 Spring Boot 3를 사용해 확장 가능하고 유지보수 가능한 현대적인 API를 설계, 개발, 테스트 및 배포하는 방법을 배우게 될 뿐만 아니라 애플리케이션의 보안과 신뢰성을 강화하고 전반적인 기능을 향상시키는 베스트 프랙티스를 익히게 될 것이다.
★ 이 책에서 다루는 내용 ★
* 스프링과 자바를 사용한 엔터프라이즈 수준의 API 생성
* 다양한 케이스에 사용 가능한 REST, gRPC, GraphQL 및 비동기 API의 이해와 구현
* 설계부터 배포까지 실제 웹 API 및 서비스의 개발
* API 사양 및 구현에 대한 베스트 프랙티스 학습
* 인증 및 권한 부여를 통한 안전한 API 설계 및 구현
* 워크플로 및 오케스트레이션 엔진을 사용한 마이크로서비스 기반 솔루션의 개발
* API에 접근하는 사용자 인터페이스의 설계 및 테스트 능력 습득
* 서비스 및 API에 대한 로깅 및 추적 메커니즘 구현

[1부] RESTful 웹 서비스
01장: RESTful 웹 서비스 기본사항
기술 요구 사항
REST API 소개
__REST의 역사
__REST의 기본사항
리소스와 URI 다루기
__URI 구문
__URL이란
__URN이란
HTTP 메소드와 상태 코드 살펴보기
__POST
__GET
__PUT
__DELETE
__PATCH
__HTTP 상태 코드
HATEOAS이란
REST API 설계 베스트 프랙티스
__엔드포인트 경로에서 리소스의 이름을 지정할
__동사형이 아닌 명사형 단어를 사용
__엔드포인트 경로에서 컬렉션 리소스의 이름을 지정할 때 복수형을 사용
__하이퍼미디어 사용(HATEOAS)
__API 버전 관리
__중첩된 리소스
__API 보안
__문서 유지 관리
__권장되는 상태 코드 준수
__캐싱 보장
__단위시간당 요청량 제한(Rate limit) 유지 관리
전자 상거래 앱 소개
요약
질문
답변
추가 읽을거리
02장: 스프링의 개념과 REST API
기술 요구 사항
스프링 패턴과 패러다임 이해하기
__IoC란
__DI란
__AOP란
IoC 컨테이너 이해하기
Bean과 그 범위 정의하기
__@ComponentScan 애노테이션
__Bean의 범위
자바를 사용하여 bean 설정
__@Import 애노테이션
__@DependsOn 애노테이션
DI 코딩 방법
__생성자로 의존성 정의
__설정자 메소드로 의존성 정의
__클래스 프로퍼티를 사용한 의존성 정의
애노테이션을 사용하여 bean의 메타데이터 설정
__@Autowired 사용 방법
__타입별 일치(Match by type)
__한정자별 일치(Match by qualifier)
__이름으로 일치(Match by name)
__@Primary의 목적은 무엇일까?
__@Value는 언제 사용할까?
AOP용 코드 작성
스프링 부트를 사용하는 이유
서블릿 디스패처의 중요성 이해
요약
질문
답변
추가 읽을거리
03장: API 명세 및 구현
기술 요구 사항
OAS로 API 설계
OAS의 기본 구조 이해
__OAS의 메타데이터 절
__OAS의 servers와 tags 절
OAS의 컴포넌트(components) 절
OAS의 경로(path) 절
OAS를 스프링 코드로 변환
OAS 코드 인터페이스 구현
전역 예외 처리기 추가
API 구현 테스트
요약
질문
답변
추가 읽을거리
04장: API를 위한 비즈니스 로직 작성
기술 요구 사항
서비스 설계 개요
Repository 컴포넌트 추가
__@Repository 애노테이션
__데이터베이스 및 JPA 설정
__데이터베이스 및 시드 데이터 스크립트
__엔터티 추가
__리포지토리 추가
서비스 컴포넌트 추가
하이퍼미디어 구현
서비스와 HATEOAS로 컨트롤러 향상
API 응답에 ETag 추가
API 테스트
요약
질문
답변
추가 읽을거리
05장: 비동기 API 설계
기술 요구 사항
리액티브 스트림 이해하기
__발행자(Publisher)
__구독자(Subscriber)
__구독(Subscription)
__프로세서(Processor)
스프링 웹플럭스 살펴보기
__리액티브 API 이해
__리액티브 코어
DispatcherHandler 이해하기
__컨트롤러
__함수형 엔드포인트
전자 상거래 앱용 리액티브 API 구현
__리액티브 API용 OpenAPI Codegen 변경
__build.gradle에 리액티브 의존성 추가
__예외 처리
__컨트롤러에 대한 전역 예외 처리
__API 응답에 하이퍼미디어 링크 추가
__엔터티 정의
__리포지토리 추가
__서비스 추가
__컨트롤러 구현 추가
__애플리케이션에 H2 콘솔 추가
__애플리케이션 설정 추가
__리액티브 API 테스트
요약
질문
답변
추가 읽을거리
[02부] 보안, UI, 테스트, 배포
06장: 권한부여와 인증을 통해 REST 엔드포인트 보호하기
기술 요구 사항
스프링 시큐리티 및 JWT를 사용한 인증 구현
__Gradle에 필요한 의존성 추가하기
__OAuth 2.0 리소스 서버를 사용한 인증 방법
__JWT의 구조
JWT로 REST API에 보안 적용하기
__새로운 API 추가하기
__데이터베이스 테이블에 리프레시 토큰 저장하기
__JWT 관리자 구현하기
새로운 API 구현
__findUserByUsername() 메소드 구현하기
__REST 컨트롤러 구현
__웹 기반 보안 설정
CORS와 CSRF의 구성
권한부여(authorization)에 대한 이해
__역할과 권한
보안 관련 테스트하기
요약
질문
답변
추가 읽을거리
07장: 사용자 인터페이스 설계하기
기술 요구 사항
React 기초
__리액트 앱 만들기
__기본 구조와 파일에 대해 알아보자
__package.json 파일에 대한 이해
__React 앱의 부트스트랩
리액트 컴포넌트 및 기타 기능에 대해 알아보자
__JSX에 대해 알아보자
__리액트 훅에 대해 이해해보자
__테일윈드(Tailwind)를 사용해 컴포넌트 스타일링하기
프로덕션 배포에 불필요한 스타일을 제거하도록 설정
__리액트에 테일윈드 포함시키기
전자상거래 앱 컴포넌트 디자인하기
Fetch를 이용해 API 호출하기
__제품 정보를 가져오는 API 클라이언트 작성하기
__제품 목록 페이지 코딩하기
인증 기능 구현하기
__커스텀 useToken 후크 만들기
__Login 컴포넌트 작성
__커스텀 cart context의 구현
__Cart 컴포넌트 작성하기
__Order 컴포넌트 작성하기
__루트(App) 컴포넌트 작성
__애플리케이션 실행하기
요약
질문
답변
추가 읽을거리
08장: API 테스트
기술 요구 사항
API와 코드를 수동으로 테스트하기
테스트 자동화
__단위 테스트
__AssertJ 어서션을 사용해 테스트하기
__코드 커버리지
__통합 테스트하기
요약
질문
답변
추가 읽을거리
09장: 웹서비스 배포하기
기술 요구 사항
컨테이너화란 무엇일까?
도커(Docker) 이미지 빌드하기
__도커란 무엇인가?
__이미지를 빌드하는 그래들 태스크 실행
쿠버네티스에 애플리케이션 배포하기
요약
질문
답변
추가 읽을거리
[03부] gRPC, 로깅, 모니터링
10장: gRPC 시작하기
기술 요구 사항
gRPC 동작방식
__REST 대 gRPC
__웹 브라우저와 모바일 앱에서 gRPC 서버를 호출할 수 있을까?
__gRPC 아키텍처란
__gRPC가 Protocol Buffer를 사용하는 방법
서비스 정의의 이해
RPC 수명 주기 살펴보기
__수명 주기에 영향을 주는 이벤트
__gRPC 서버 및 gRPC 스텁 이해
에러 처리와 에러 상태 코드
요약
질문
답변
추가 읽을거리
11장: gRPC API 개발 및 테스트
기술 요구 사항
API 작성
__프로젝트 설정
__결제 게이트웨이 기능 작성
gRPC 서버 개발
__gRPC 서버 구현
__gRPC 서버 클래스 구현
__gRPC 서버 테스트
에러 처리 구현
gRPC 클라이언트 개발
__gRPC 클라이언트 구현
__gRPC 서비스 테스트
마이크로서비스란?
__전통적인 모놀리식 디자인
__서비스 기반 모놀리식 디자인
__마이크로서비스 디자인
요약
질문
답변
추가 읽을거리
12장: 서비스에 로깅 및 트레이싱 추가
기술 요구 사항
ELK 스택을 활용한 로깅 및 트레이싱
ELK 스택의 이해
ELK 스택 설치
gRPC 코드에서 로깅 및 트레이싱 구현
__gRPC 서버 코드 변경
__gRPC 클라이언트 코드 변경
__로깅 및 트레이싱 변경사항 테스트
Zipkin과 Micrometer로 분산 트레이싱 하기
요약
질문
답변
추가 읽을거리
[04부] GraphQL
13장: GraphQL 시작하기
기술 요구 사항
GraphQL 알아보기
__GraphQL의 간략한 역사
__GraphQL과 REST 비교
GraphQL 기본 학습
__쿼리 타입 살펴보기
__뮤테이션 타입 살펴보기
__서브스크립션 타입 살펴보기
GraphQL 스키마 설계
__스칼라 타입의 이해
__프래그먼트 이해
__인터페이스 이해
__유니온 타입 이해
__인풋 타입 이해
__GraphQL 도구를 사용한 스키마 설계
GraphQL 쿼리와 뮤테이션 테스트
__N+1 문제 해결
__N+1 문제 이해란 무엇인가?
N+1 문제의 솔루션
요약
질문
답변
추가 읽을거리
14장: GraphQL API 개발 및 테스트
기술 요구 사항
GraphQL 용 워크플로우와 도구
GraphQL 서버 구현
__gRPC 서버 프로젝트 생성
__GraphQL DGS 의존성 추가
__GraphQL 스키마 추가
__커스텀 스칼라 타입 추가
__API 문서화
GraphQL 쿼리 구현
GraphQL 쿼리용 페처 작성
__Product용 데이터 페처 작성
__Product 컬렉션용 데이터 페처 작성
__데이터 페처 메소드를 사용한 필드 해석기 작성
__N+1 문제를 해결하기 위한 데이터 로더 작성
GraphQL 뮤테이션 구현
GraphQL 서브스크립션 구현 및 테스트
__GraphQL용 WebSocket 서브-프로토콜 이해
__Insomnia 웹소켓을 이용한 GraphQL 서브스크립션 테스트
GraphQL API 인스트루먼테이션
__커스텀 헤더 추가
__Micrometer와 통합
테스트 자동화
__GraphQL 쿼리 테스트
__GraphQL 뮤테이션 테스트
__자동화된 테스트 코드를 이용한 GraphQL 서브스크립션 테스트
요약
질문
답변
추가 읽을거리






































