본문 바로가기

추천 검색어

실시간 인기 검색어

스프링 6와 스프링 부트 3로 배우는 모던 API 개발

Java 17과 Spring Boot 3 기반의 REST, gRPC, GraphQL을 활용한 반응형 API 설계
오픈소스 & 웹 시리즈 118
위키북스

2025년 02월 05일 출간

국내도서 : 2024년 12월 05일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 pdf (6.47MB)
ISBN 9791158395810
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

PDF 필기가능 (Android, iOS)
소득공제
소장
정가 : 25,600원

쿠폰적용가 23,040

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

스프링은 자바를 사용해 확장 가능하고 신뢰할 수 있는 웹 애플리케이션을 구축할 때 사용 가능한 강력하고 널리 사용되는 프레임워크이며, 스프링 부트는 스프링 기반 애플리케이션의 설정과 구성을 단순화시켜 주는 인기 소프트웨어이다. 이 책은 웹 개발 시에 참고할 수 있는 스프링 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 서브스크립션 테스트
요약
질문
답변
추가 읽을거리

작가정보

소라브 샤르마는 오라클의 수석 개발 관리자로 업계에서 20년 이상의 경험을 가지고 있다. 그는 자바, 자바스트립트, 오라클 DB를 사용해 온프레미스 및 클라우드 기반 애플리케이션을 설계하는 관리자이자 아키텍트이다. 소라브는 선도적인 기업들과 협력해 엔터프라이즈 제품 및 애플리케이션을 제공했고, 팀을 이끌며 N-tier 및 클라우드 기반 웹 애플리케이션을 개념화, 모델링, 설계 및 개발하는 것에 전문가 수준의 역량을 가지고 있다. 또한, 마이크로서비스 기반 솔루션 개발과 다양한 유형의 워크플로 및 오케스트레이션 엔진 구현도 경험했으며 지속적으로 학습하며 책과 교육을 통해 지식을 공유하고 있다.

15년간 시스템 통합 분야에서 소프트웨어 아키텍트로 경력을 쌓았으며, 그중 10여 년은 금융시스템 구축과 코어뱅킹 프레임워크 개발 아키텍트로 활동했다. 현재는 클라우드 컴퓨팅 회사에서 근무하면서 금융 고객들이 클라우드를 통해 혁신하도록 돕고 있다. 끊임없이 변화하는 IT 환경 속에서 새로운 도전을 즐기면서 기술의 본질을 파악하기 위해 애쓰고 있다.

몇 번의 스타트업 도전에 고배를 마셨고 유료 디지털 미디어 스트리밍 서비스와 클라우드 기반 IoT 플랫폼을 개발했다. 현재는 클라우드 컴퓨팅 회사에서 일하고 있고, 신기술에 관심이 많으며 '기술이 세상을 바꾼다'는 모토를 갖고 살고 있다. 《EJB & WebLogic》을 직접 썼고 《Prototype & Scriptaculous 인 액션》 《프로 웹 2.0 매쉬업》 《프로 스프링 2.5》 《클라우드 컴퓨팅과 SOA 컨버전스: 전사적 도입을 통한 기업의 생존 전략》을 번역했다.

보험회사에서 보험계리인실 업무로 커리어를 시작한 후, IT 회사로 이직해 소프트웨어 개발자, IT 아키텍트, 컨설턴트 등 다양한 역할을 수행하며 디지털 기술의 기반을 다졌다. 제조회사에서는 디지털 사이니지 관련 해외 신사업을 이끌며 글로벌 시장 경험을 쌓았다. 이러한 경험을 바탕으로 현재는 클라우드 컴퓨팅 회사에서 솔루션스 아키텍트(Solutions Architect)로 활동하며, 고객의 디지털 전환과 클라우드 도입 및 활용을 지원하고 있다. 매일 손톱만큼의 노력이 인생을 변화시킨다는 믿음으로 (1.01)³⁶⁵ = 37.78이라는 문구를 좋아한다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    스프링 6와 스프링 부트 3로 배우는 모던 API 개발 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    스프링 6와 스프링 부트 3로 배우는 모던 API 개발 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    스프링 6와 스프링 부트 3로 배우는 모던 API 개발
    Java 17과 Spring Boot 3 기반의 REST, gRPC, GraphQL을 활용한 반응형 API 설계
    저자 모두보기
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)