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

마이크로서비스 API 디자인 패턴 쉬운 통합을 위한 결합도 최적화 전략
올라프 짐머만, 미르코 스토커, 다니엘 뤼브케, 우베 즈둔, 세자레 파우타소 저 | 이승범 역 | 에이콘출판 | 2024년 11월
ISBN : 9791161759241 / 664쪽 / 1,262g / 188 x 235 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
정지훈
-
로버트 칸, 크리스 퀴그
-
이와사키 히로마사
- 25,200
- 31,500
- 20,700
- 15,120
반디앤루니스 리뷰
마이크로서비스의 API를 설계할 때 참고할 수 있는 패턴들을 소개하는 책이다. 이 패턴은 입증되고 재사용 가능한 솔루션 엘리먼트를 통해 API 설계 및 발전의 복잡성을 극복하는 데 도움을 주는 것을 목표로 패턴 커뮤니티는 피드백 프로세스를 통해 정립된 내용을 소개한다. HTTP, 웹 API, 서비스 지향 아키텍처를 포함한 일반적인 통합 아키텍처에 적용 가능한 패턴뿐 아니라, 개별 API 엔드포인트와 메시지 교환과 관련된 패턴 그리고 API의 진화와 관련된 패턴도 소개한다. 이러한 패턴들은 프로그램 내부 API가 아닌 원격 API(remote API)에 초점을 맞춰 클라이언트 측과 프로바이더 측 모두에서 개발자 경험을 개선하는 것을 목표로 한다.
출판사 리뷰
패턴으로 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)



































