장바구니 담기 close

장바구니에 상품을 담았습니다.

마이크로서비스 API 디자인 패턴

마이크로서비스 API 디자인 패턴

  • 올라프 짐머만
  • |
  • 에이콘출판
  • |
  • 2024-11-14 출간
  • |
  • 664페이지
  • |
  • 188 X 235mm
  • |
  • ISBN 9791161759241
판매가

44,000원

즉시할인가

39,600

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
39,600

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

◆ 패턴으로 API 설계 문제 파악 및 극복하기
◆ API 엔드포인트와 동작의 적절한 크기 조정하기
◆ 요청 및 응답 메시지와 그 표현 설계하기
◆ 메시지 설계 품질 다루기
◆ API 진화 계획 세우기
◆ API 계약 문서화 및 커뮤니케이션
◆ 패턴을 결합해 실제 문제를 해결하고 트레이드오프를 올바르게 다루기

기술과 설계를 개선하기 위해 노력하는 중급 수준의 소프트웨어 전문가를 대상으로 하는 책이다. 주로 플랫폼 독립적인 아키텍처 지식에 관심이 있는 통합 아키텍트, API 설계자, 웹 개발자를 대상으로 패턴을 제시한다. 백엔드-투-백엔드 통합 전문가와 프론트엔드 애플리케이션을 지원하는 API 개발자 모두 이 패턴에 담긴 지식을 활용할 수 있다. API 엔드포인트의 세분성과 메시지에서 교환되는 데이터에 초점을 맞추기 때문에 API 제품 책임자, API 검토자, 클라우드 테넌트 및 프로바이더도 도움을 받을 수 있다.
API 기본 사항에 이미 익숙하고 메시지 데이터 계약 설계 및 API 진화를 포함한 API 설계 능력을 향상시키고자 하는 중급 소프트웨어 엔지니어(개발자, 아키텍트 또는 제품 책임자 등)를 위한 책이다.
학생, 강사, 소프트웨어 엔지니어링 연구원도 이 책에 소개된 패턴과 프레젠테이션을 유용하게 활용할 수 있다. 초보자를 위한 책을 먼저 읽지 않고도 이 책과 패턴을 이해할 수 있도록 API 기본 사항과 API 설계를 위한 도메인 모델을 소개한다.


인간은 다양한 언어로 의사소통을 한다. 소프트웨어도 마찬가지다. 소프트웨어는 다양한 프로그래밍 언어로 작성될 뿐만 아니라 수많은 프로토콜(예: HTTP)과 메시지 교환 형식(예: JSON)을 통해 통신한다. 누군가가 소셜 네트워크 프로필을 업데이트하고, 웹 상점에서 물건을 주문하고, 신용카드를 긁어 물건을 구매하는 등의 모든 과정에서 HTTP, JSON 및 기타 기술이 작동한다.
● 스마트폰의 모바일 앱과 같은 애플리케이션 프론트엔드는 온라인 상점의 구매 주문과 같은 백엔드에 트랜잭션 처리를 요청한다.
● 애플리케이션 파트는 고객 프로필이나 제품 카탈로그와 같이 수명이 긴 데이터를 서로, 그리고 비즈니스 파트너, 고객, 프로바이더의 시스템과 교환한다.
이러한 시나리오에 관련된 크고 작은 소프트웨어 컴포넌트는 최종 사용자에게 공동으로 서비스를 제공하면서 각자의 목표를 달성하기 위해 다른 컴포넌트와 대화한다. 이러한 배포 문제에 대한 소프트웨어 엔지니어의 대응책은 애플리케이션 프로그래밍 인터페이스(API)를 통한 애플리케이션 통합이다. 모든 통합 시나리오에는 최소한 2명의 커뮤니케이션 당사자, API 클라이언트와 API 프로바이더가 포함된다. API 클라이언트는 API 프로바이더가 노출한 서비스를 소비한다. API 문서는 클라이언트-프로바이더 상호작용을 관리한다.
인간과 마찬가지로 소프트웨어 컴포넌트도 의사소통할 때 서로를 이해하는 데 어려움을 겪는 경우가 많으며, 설계자가 메시지 콘텐츠의 적절한 크기와 구조를 결정하고 가장 적합한 대화 스타일에 합의하기가 어렵다. 어느 쪽도 자신의 필요를 표현하거나 요청에 응답할 때 너무 조용하거나 지나치게 말이 많은 것을 원하지 않는다. 일부 애플리케이션 통합 및 API 설계는 매우 잘 작동하며, 관련 당사자들이 서로를 이해하고 목표를 달성한다. 이들은 효과적이고 효율적으로 상호 연동한다. 반면에 명확성이 부족해 참여자에게 혼란을 주거나 스트레스를 주는 경우도 있고, 장황한 메시지와 수다스러운 대화는 커뮤니케이션 채널에 과부하를 일으키고 불필요한 기술적 위험을 초래하며 개발과 운영에 추가적인 작업을 유발할 수 있다.
그렇다면 좋은 통합 API 설계와 그렇지 않은 통합 API 설계는 어떻게 구분할까? API 설계자는 어떻게 하면 긍정적인 클라이언트 개발자 경험을 촉진할 수 있을까? 좋은 통합 아키텍처와 API 설계를 위한 가이드라인은 특정 기술이나 제품에 의존하지 않는 것이 이상적이다. 기술과 제품은 왔다가 사라지지만 관련 설계 조언은 오랫동안 관련성을 유지해야 한다. 현실 세계로 비유하자면 키케로의 수사학과 웅변, 로젠버그의 ‘비폭력대화: 일상에서 쓰는 평화의 언어, 삶의 언어’[Rosenberg 2002]와 같은 원칙을 들 수 있다. 이러한 원칙은 영어나 일부 언어에만 국한된 것이 아니며, 언어가 진화하더라도 사라지지 않을 것이다. 이 책은 통합 전문가와 API 설계자를 위한 유사한 툴박스와 어휘를 구축하는 것을 목표로 한다. 이 책은 다양한 통신 패러다임과 기술에 적합한 API 설계 및 진화를 위한 패턴으로 지식을 제시한다. HTTP 및 JSON 기반 웹 API를 주요 예제로 사용한다.

목차

1부. 기초와 내러티브

01장.애플리케이션 프로그래밍 인터페이스(API) 기초
__로컬 API에서 원격 API로
____분산과 원격에 대한 간략한 역사
____원격 API: 통합을 위한 프로토콜 기반 서비스 액세스
____API의 중요성
__API 설계의 의사 결정 드라이버
____API를 성공하게 하는 것
____여러 API 설계 방법
____API 설계가 어려운 이유
____아키텍처적으로 중요한 요구 사항
____개발자 경험
__원격 API의 도메인 모델
____커뮤니케이션 참가자
____엔드포인트 제공 동작을 설명하는 계약
____대화의 빌딩 블록으로서의 메시지
____메시지 구조 및 표현
____API 계약
____책 전반에서 사용되는 도메인 모델
__요약
__
02장.호반 상호 보험 사례 연구
__비즈니스 콘텍스트 및 요구 사항
____사용자 스토리 및 요구되는 품질
____분석 수준 도메인 모델
__아키텍처 개요
____시스템 콘텍스트
____애플리케이션 아키텍처
__API 설계 활동
__목표 API 사양
__요약
__
03장.API 의사 결정 관련 사항
__들어가기: 의사 결정 옵션으로서의 패턴, 의사 결정 기준으로서의 포스
__기본적인 API 의사 결정과 패턴
____API 가시성
____API 통합 타입
____API 문서화
__API 역할과 책임에 대한 의사 결정
____엔드포인트의 아키텍처 역할
____정보 보유자 역할 정제
____동작 책임 정의
__메시지 표현 패턴 선택하기
____표현 엘리먼트의 평면 구조와 중첩 구조
____엘리먼트 스테레오타입
__중간 짚어보기: 호반 상호 보험 사례의 책임과 구조 패턴
__API 품질 거버닝
____API 클라이언트의 식별 및 인증
____API 사용량에 대한 미터링 및 과금
____API 클라이언트의 과도한 API 사용 방지
____품질 목표 및 페널티의 명시적 지정
____오류에 대한 커뮤니케이션
____명시적 콘텍스트 표현
__API 품질 개선을 위한 의사 결정
____페이지네이션
____불필요한 데이터 전송을 피하는 다른 방법
____메시지에서 참조된 데이터 처리
__API 진화에 대한 의사 결정
____버전 및 호환성 관리
____버전의 도입 및 폐기를 위한 전략
__중간 짚어보기: 호반 상호 보험 사례의 품질 및 진화 패턴
__요약
__
__
2부. 패턴
__
04장.패턴 언어 개요
__위치와 범위
__패턴: 왜 그리고 어떻게?
__패턴 탐색
____구조의 구성: 범위별 패턴 찾기
____테마별 분류: 주제별 패턴 찾기
____시간 차원: 설계 개선 단계 따르기
____탐색 방법
__기초 패턴: API 가시성 및 통합 타입
____패턴: 프론트엔드 통합
____패턴: 백엔드 통합
____패턴: 퍼블릭 API
____패턴: 커뮤니티 API
____패턴: 솔루션 내부 API
____기초 패턴 요약
__기본 구조 패턴
____패턴: 아토믹 파라미터
____패턴: 아토믹 파라미터 리스트
____패턴: 파라미터 트리
____패턴: 파라미터 포리스트
____기본 구조 패턴 요약
__요약
__
05장.엔드포인트 타입과 동작 정의
__API 역할 및 책임의 소개
____도전 과제와 요구되는 품질
____패턴 설명
__엔드포인트 역할: 서비스 세분성
____패턴: 처리 리소스
____패턴: 정보 보유자 리소스
____패턴: 운용 데이터 보유자
____패턴: 마스터 데이터 보유자
____패턴: 참조 데이터 보유자
____패턴: 링크 조회 리소스
____패턴: 데이터 전송 리소스
__동작 책임
____패턴: 상태 생성 동작
____패턴: 인출 동작
____패턴: 상태 전이 동작
____패턴: 계산 함수
__요약
__
06장.요청 및 응답 메시지 표현 설계
__메시지 표현 설계 소개
____메시지 표현을 설계할 때의 과제
____6장의 패턴
__엘리먼트 스테레오타입
____패턴: 데이터 엘리먼트
____패턴: 메타데이터 엘리먼트
____패턴: ID 엘리먼트
____패턴: 링크 엘리먼트
__특수 목적 표현
____패턴: API 키
____패턴: 오류 보고
____패턴: 콘텍스트 표현
__요약
__
07장.품질을 위한 메시지 설계 개선
__API 품질 개요
____API 품질의 개선 관련 도전 과제
____7장의 패턴
__메시지 세분성
____패턴: 임베디드 엔티티
____패턴: 링크된 정보 보유자
__클라이언트 주도 메시지 콘텐츠 또는 응답 셰이핑
____패턴: 페이지네이션
____패턴: 위시 리스트
____패턴: 위시 템플릿
__메시지 교환 최적화(대화 효율성)
____패턴: 조건부 요청
____패턴: 요청 번들
__요약
__
08장.API 진화
__API 진화 소개
____API를 진화시킬 때의 도전 과제
____8장의 패턴
__버전 관리 및 호환성 관리
____패턴: 버전 식별자
____패턴: 시맨틱 버전 관리
__수명주기 관리 보장
____패턴: 실험적 미리 보기
____패턴: 공격적 폐기
____패턴: 제한적 수명 보장
____패턴: 2개의 상용 버전
__요약
__
09장.API 계약 문서화 및 커뮤니케이션
__API 문서화 개요
____API 문서화의 도전 과제
____9장의 패턴
__문서화 패턴
____패턴: API 설명
____패턴: 요금 책정 플랜
____패턴: 사용 비율 제한
____패턴: 서비스 수준 계약
__요약
__
__
3부. 패턴 사용의 현재와 미래
__
10장.실제 패턴 사례
__스위스 모기지 분야의 대규모 비즈니스 프로세스 통합
____비즈니스 콘텍스트 및 도메인
____기술적 과제
____API의 역할과 현황
____패턴 사용 및 구현
____회고 및 전망
__건설 영역의 제안 및 주문 프로세스
____비즈니스 콘텍스트 및 도메인
____기술적 과제
____API의 역할 및 현황
____패턴 사용 및 구현
____회고 및 전망
__요약

__11장.결론
__짧은 회고
__API 관련 연구: 패턴, MDSL 등으로 리팩토링
__API의 미래
__추가 참고 내용
__최종 코멘트


부록 A.엔드포인트 식별 및 패턴 선택 가이드
부록 B.호반 상호 보험 사례의 구현
부록 C.마이크로서비스 도메인 특화 언어(MDSL)

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.