이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
스프링 6와 스프링 부트 3로 배우는 모던 API 개발
Java 17과 Spring Boot 3 기반의 REST, gRPC, GraphQL을 활용한 반응형 API 설계
베스트
IT 모바일 top100 5주
가격
32,000
10 28,800
YES포인트?
1,600원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능
  •  최저가 보상
  •  문화비소득공제 신청가능

위키북스- 오픈소스 & 웹 시리즈

상세 이미지

책소개

목차

[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 서브스크립션 테스트
요약
질문
답변
추가 읽을거리

저자 소개4

소라브 샤르마

관심작가 알림신청

Sourabh Sharma

오라클의 수석 개발 관리자로 업계에서 20년 이상의 경험을 가지고 있다. 그는 자바, 자바스트립트, 오라클 DB를 사용해 온프레미스 및 클라우드 기반 애플리케이션을 설계하는 관리자이자 아키텍트이다. 소라브는 선도적인 기업들과 협력해 엔터프라이즈 제품 및 애플리케이션을 제공했고, 팀을 이끌며 N-tier 및 클라우드 기반 웹 애플리케이션을 개념화, 모델링, 설계 및 개발하는 것에 전문가 수준의 역량을 가지고 있다. 또한, 마이크로서비스 기반 솔루션 개발과 다양한 유형의 워크플로 및 오케스트레이션 엔진 구현도 경험했으며 지속적으로 학습하며 책과 교육을 통해 지식을 공유하고 있다.
보험회사에서 보험계리인실 업무로 커리어를 시작한 후, IT 회사로 이직해 소프트웨어 개발자, IT 아키텍트, 컨설턴트 등 다양한 역할을 수행하며 디지털 기술의 기반을 다졌다. 제조회사에서는 디지털 사이니지 관련 해외 신사업을 이끌며 글로벌 시장 경험을 쌓았다. 이러한 경험을 바탕으로 현재는 클라우드 컴퓨팅 회사에서 솔루션스 아키텍트(Solutions Architect)로 활동하며, 고객의 디지털 전환과 클라우드 도입 및 활용을 지원하고 있다. 매일 손톱만큼의 노력이 인생을 변화시킨다는 믿음으로 (1.01)^365 = 37.78이라는 문구를 좋아한다.
15년간 시스템 통합 분야에서 소프트웨어 아키텍트로 경력을 쌓았으며, 그중 10여 년은 금융시스템 구축과 코어뱅킹 프레임워크 개발 아키텍트로 활동했다. 현재는 클라우드 컴퓨팅 회사에서 근무하면서 금융 고객들이 클라우드를 통해 혁신하도록 돕고 있다. 끊임없이 변화하는 IT 환경 속에서 새로운 도전을 즐기면서 기술의 본질을 파악하기 위해 애쓰고 있다.
몇 번의 스타트업 도전에 고배를 마셨고 유료 디지털 미디어 스트리밍 서비스와 클라우드 기반 IoT 플랫폼을 개발했다. 현재는 클라우드 컴퓨팅 회사에서 일하고 있고, 신기술에 관심이 많으며 '기술이 세상을 바꾼다'는 모토를 갖고 살고 있다. 『EJB & WebLogic』을 직접 썼고 『Prototype & Scriptaculous 인 액션』 『프로 웹 2.0 매쉬업』 『프로 스프링 2.5』 『클라우드 컴퓨팅과 SOA 컨버전스: 전사적 도입을 통한 기업의 생존 전략』 등을 번역했다.

품목정보

발행일
2024년 12월 05일
쪽수, 무게, 크기
512쪽 | 188*240*21mm
ISBN13
9791158395384

출판사 리뷰

★ 이 책에서 다루는 내용 ★

◎ 스프링과 자바를 사용한 엔터프라이즈 수준의 API 생성
◎ 다양한 케이스에 사용 가능한 REST, gRPC, GraphQL 및 비동기 API의 이해와 구현
◎ 설계부터 배포까지 실제 웹 API 및 서비스의 개발
◎ API 사양 및 구현에 대한 베스트 프랙티스 학습
◎ 인증 및 권한 부여를 통한 안전한 API 설계 및 구현
◎ 워크플로 및 오케스트레이션 엔진을 사용한 마이크로서비스 기반 솔루션의 개발
◎ API에 접근하는 사용자 인터페이스의 설계 및 테스트 능력 습득
◎ 서비스 및 API에 대한 로깅 및 추적 메커니즘 구현

리뷰/한줄평0

리뷰

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

한줄평

첫번째 한줄평을 남겨주세요.

28,800
1 28,800