• 베스트
  • 소득공제
  • 무료배송

스프링 6와 스프링 부트 3로 배우는 모던 API 개발(위키북스 오픈소스 & 웹시리즈 118)

  • 소라브 샤르마
  • 김광영, 문종민, 박천구
  • 위키북스
  • 2024년 12월 05일
사용자 평점
0리뷰 0개
10%28,80032,000원
적립금
1,600원 (5% 적립)
추가 적립 안내
  • 5만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

  • 10만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

    정가제FREE(상품/사은품) 금액이
    5,000원 이상이면 5,000원 추가적립

회원가입 시 적립금 즉시 지급!

배송비
무료 (해외배송의 경우 지역에 따라 상이)

배송안내

배송비 안내
  • 1만원 이상 주문 시 무료배송 입니다.
  • 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
주문 수량 변경시 안내

[주문/배송] 주문 수량 변경 시 안내

주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)

지금 주문하면 오늘 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
상품상세정보
ISBNISBN-13 : 9791158395384
쪽수512쪽
크기기타 규격
제품구성단행본
이 책이 속한 분야
  • 컴퓨터/IT > 인터넷
관련 이벤트

AI추천 이유

책 소개

실습을 통해 프로덕션 수준의 API를 설계, 테스트, 보안, 배포 및 유지보수 하는 방법을 배워 애플리케이션의 기능을 향상시켜 보자!

스프링은 자바를 사용해 확장 가능하고 신뢰할 수 있는 웹 애플리케이션을 구축할 때 사용 가능한 강력하고 널리 사용되는 프레임워크이며, 스프링 부트는 스프링 기반 애플리케이션의 설정과 구성을 단순화시켜 주는 인기 소프트웨어이다. 이 책은 웹 개발 시에 참고할 수 있는 스프링 6와 스프링 부트 3에 대한 깊이 있는 가이드로, 현대적이고 견고한 웹 API 및 서비스 구축에 대한 실용적인 지식을 제공한다.

 

이 책은 RESTful 웹 서비스 기본 지식, 스프링에 대한 개념 이해, API 스펙 설계를 포함한 API 개발에 필수적인 다양한 주제를 다루며 비동기 API 설계, 보안, 사용자 인터페이스 설계, API 테스트, 웹 서비스 배포 등을 설명한다. 나아가 실전 애플리케이션에 필요한 다양한 유형의 API 구축에 참조할 수 있는 실제 수준의 샘플 앱을 제공한다. 이 샘플 앱을 통해 설계 및 사양, 구현, 테스트, 배포를 포함한 전체 API 개발 주기에 대해 이해하게 될 것이다.

 

이 책에 대한 학습을 마치고 나면, Spring 6Spring 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 명세 및 구현

기술 요구 사항

OASAPI 설계

OAS의 기본 구조 이해

__OAS의 메타데이터 절

__OASserverstags

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 구현

__리액티브 APIOpenAPI Codegen 변경

__build.gradle에 리액티브 의존성 추가

__예외 처리

__컨트롤러에 대한 전역 예외 처리

__API 응답에 하이퍼미디어 링크 추가

__엔터티 정의

__리포지토리 추가

__서비스 추가

__컨트롤러 구현 추가

__애플리케이션에 H2 콘솔 추가

__애플리케이션 설정 추가

__리액티브 API 테스트

요약

질문

답변

추가 읽을거리

 

[02] 보안, UI, 테스트, 배포

 

06: 권한부여와 인증을 통해 REST 엔드포인트 보호하기

기술 요구 사항

스프링 시큐리티 및 JWT를 사용한 인증 구현

__Gradle에 필요한 의존성 추가하기

__OAuth 2.0 리소스 서버를 사용한 인증 방법

__JWT의 구조

JWTREST API에 보안 적용하기

__새로운 API 추가하기

__데이터베이스 테이블에 리프레시 토큰 저장하기

__JWT 관리자 구현하기

새로운 API 구현

__findUserByUsername() 메소드 구현하기

__REST 컨트롤러 구현

__웹 기반 보안 설정

CORSCSRF의 구성

권한부여(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 아키텍처란

__gRPCProtocol Buffer를 사용하는 방법

서비스 정의의 이해

RPC 수명 주기 살펴보기

__수명 주기에 영향을 주는 이벤트

__gRPC 서버 및 gRPC 스텁 이해

에러 처리와 에러 상태 코드

요약

질문

답변

추가 읽을거리

 

11: gRPC API 개발 및 테스트

기술 요구 사항

API 작성

__프로젝트 설정

__결제 게이트웨이 기능 작성

gRPC 서버 개발

__gRPC 서버 구현

__gRPC 서버 클래스 구현

__gRPC 서버 테스트

에러 처리 구현

gRPC 클라이언트 개발

__gRPC 클라이언트 구현

__gRPC 서비스 테스트

마이크로서비스란?

__전통적인 모놀리식 디자인

__서비스 기반 모놀리식 디자인

__마이크로서비스 디자인

요약

질문

답변

추가 읽을거리

 

12: 서비스에 로깅 및 트레이싱 추가

기술 요구 사항

ELK 스택을 활용한 로깅 및 트레이싱

ELK 스택의 이해

ELK 스택 설치

gRPC 코드에서 로깅 및 트레이싱 구현

__gRPC 서버 코드 변경

__gRPC 클라이언트 코드 변경

__로깅 및 트레이싱 변경사항 테스트

ZipkinMicrometer로 분산 트레이싱 하기

요약

질문

답변

추가 읽을거리

 

[04] GraphQL

 

13: GraphQL 시작하기

기술 요구 사항

GraphQL 알아보기

__GraphQL의 간략한 역사

__GraphQLREST 비교

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 서브스크립션 구현 및 테스트

__GraphQLWebSocket 서브-프로토콜 이해

__Insomnia 웹소켓을 이용한 GraphQL 서브스크립션 테스트

GraphQL API 인스트루먼테이션

__커스텀 헤더 추가

__Micrometer와 통합

테스트 자동화

__GraphQL 쿼리 테스트

__GraphQL 뮤테이션 테스트

__자동화된 테스트 코드를 이용한 GraphQL 서브스크립션 테스트

요약

질문

답변

추가 읽을거리

저자 소개
저자 : 소라브 샤르마
도서리뷰 (0)
이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.

등록된 리뷰가 없습니다

첫번째 리뷰어가 되어주세요

교환/반품/환불
반품/교환방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
반품/교환 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

매장에서 사용할 수 있는 바코드가 있어요!