웹 API 설계 원칙 : 마이크로서비스 아키텍처로의 효과적인 전환 - 에이콘 소프트웨어 아키텍처

웹 API 설계 원칙 : 마이크로서비스 아키텍처로의 효과적인 전환 - 에이콘 소프트웨어 아키텍처

$35.37
저자

제임스히긴보텀

25년이상의앱및API개발및배포경험을가진소프트웨어개발자이자설계자다.기업의디지털혁신여정을안내하고제품기반사고를통해비즈니스와기술간의조정을보장해우수한고객경험을제공한다.팀및조직과협력해비즈니스,제품및기술전략을좀더구성가능한모듈식엔터프라이즈플랫폼으로조정하는데도움을준다.또한기능간팀이ADDR프로세스를사용해API설계우선접근방식을적용하는데도움이되는워크숍을제공한다.업계경험으로는은행,상업보험,서비스,여행그리고말그대로항공사를착공하게도운항공산업이포함된다.

목차


1부.웹API설계소개
01장API설계원칙
__웹API설계요소
____비즈니스관점에서의기능
____프로덕트중심사고
____개발자경험
__API설계는커뮤니케이션
__소프트웨어설계원칙다시보기
____모듈화
____캡슐화
____높은응집도와낮은결합도
__리소스기반API설계
____리소스는데이터모델이아니다
__리소스는객체또는도메인모델이아니다
__리소스기반API메시지교환
__웹API설계원칙
__요약

02장.API설계협업
__API설계프로세스를사용하는이유
__API설계프로세스안티패턴
____허술한추상화안티패턴
____출시버전마다변경되는설계안티패턴
____과잉설계안티패턴
____미사용API안티패턴
__API설계우선방법론
__API설계우선방법론에서의애자일
____애자일소프트웨어개발선언
____API설계우선방법론의민첩성
__ADDR프로세스
__API설계에서DDD의역할
__모두가참여하는API설계
__프로세스를효과적으로적용
__요약

2부.API결과에따른조정
03장.디지털기능식별
__이해관계자의의견수렴
__무엇이디지털기능인가?
__수행해야할작업에집중
__작업스토리가무엇인가?
__작업스토리의구성요소
__API에대한작업스토리작성
____방법1:문제가판명된경우
____방법2:원하는결과를알수있는경우
____방법3:디지털기능이식별된경우
__작업스토리의어려움극복
____도전1:너무상세한작업스토리
____도전2:기능중심의작업스토리
____도전3:추가사용자콘텍스트가필요한작업스토리
__작업스토리캡처기술
__실제API설계프로젝트
__작업스토리예제
__요약

04장.액티비티와단계캡처
__작업스토리를액티비티및단계로확장
____각작업스토리를위한액티비티식별
____각액티비티를단계로분해
____요구사항이명확하지않을때
__공동이해를위한EventStorming사용
__EventStorming동작방식
____단계1.비즈니스도메인이벤트식별
____단계2.이벤트내러티브만들기
____단계3.내러티브리뷰와갭식별
____단계4.도메인이해확장
____단계5.최종내러티브리뷰
__EventStorming의장점
____누가참여해야하는가?
__EventStorming세션진행
____준비:필요한물품수집
____공유:EventStorming세션전달
____실행:EventStorming세션수행
____정리:액티비티와액티비티단계캡처
____후속조치:세션후권장사항
____프로세스의개인화
__요약

3부.API후보정의
05장.API경계식별
__피해야할API경계구분의안티패턴
____여러기능을제공하게거대해진하나의API안티패턴
____사용목적이과도하게집약된API안티패턴
____도우미API안티패턴
__제한된콘텍스트와하위도메인및API
__EventStorming을이용한API경계찾기
__액티비티를통한API경계찾기
__API이름지정과범위
__요약

06장.API모델링
__API모델링
____API프로파일의구조
__API모델링프로세스
____단계1:API프로파일요약캡처
____단계2:리소스확인
____단계3:리소스분류정의
____단계4:작업이벤트추가
____단계5:작업세부정보확장
__시퀀스다이어그램으로API모덜검증
__API중요도와재사용여부평가
__요약

4부.API설계
07장.RESTAPI설계
__RESTAPI란?
____REST는클라이언트와서버다
____REST는리소스중심이다
____REST는메시지기반이다
____REST는계층구조를지원한다
____REST는코드온디멘드를지원한다
____하이퍼미디어제어
____언제REST를선택해야하는가
__RESTAPI설계프로세스
____단계1:리소스URL경로설계
____단계2:API작업을HTTP메서드에매핑
____단계3:응답코드지정
____단계4:RESTAPI설계문서화
____단계5:공유하고피드백얻기
__리소스표현형식선택
____리소스직렬화
____하이퍼미디어직렬화
____하이퍼미디어메시징
____시맨틱하이퍼미디어메시징
__REST설계패턴
____CRUD
____리소스라이프사이클확장
____싱글톤리소스
____백그라운드(대기)작업
____REST에서장기실행트랜잭션처리
__요약

08장RPC와쿼리기반API설계
__RPC기반API란?
____gRPC프로토콜
____RPC고려사항
__RPCAPI설계프로세스
____단계1:RPC동작식별
____단계2:RPC동작세부내역
____단계3:API설계문서화
__쿼리기반API란?
____OData의이해
____GraphQL알아보기
__쿼리기반API설계프로세스
____단계1:리소스와그래프구조설계
____단계2:쿼리와뮤테이션동작설계
____단계3:API설계문서화
__요약

09장.이벤트와스트리밍을위한비동기API
__API폴링의문제점
__비동기API가갖는새로운가능성
__메시징의기초다시보기
____메시지스타일과지역성
____메시지의구성요소
____메시지브로커의이해
____P2P메시지배포(큐)
____팬아웃메시지배포(토픽)
____메시지스트리밍의기초
__비동기식API
____웹훅을이용한서버알림
____SSE를이용한서버푸시
____웹소켓을이용한양방향알림
____gRPC스트리밍
____비동기API스타일선택
__비동기API설계
____명령메시지
____이벤트알림
____Event-Carried상태전달이벤트
____이벤트일괄처리
____이벤트순서정렬
__비동기API문서작성
__요약

5부.API설계개선
10장.API에서마이크로서비스까지
__마이크로서비스란?
__의견조정비용을줄이는마이크로서비스
__API와마이크로서비스의차이점
__마이크로서비스의복잡성평가
____셀프서비스인프라
____독립적인배포일정
____단일팀관리체계로전환
____조직의구조및조직문화의변화
____데이터소유권의이동
____분산데이터관리및거버넌스
____분산시스템의어려움
____복원력,장애조치,분산트랜잭션
____코드리팩토링코드공유의어려움
__동기식과비동기식마이크로서비스
__마이크로서비스아키텍처스타일
____직접적인서비스통신
____API기반오케스트레이션
____셀기반아키텍처
__마이크로서비스의크기최적화
__API를마이크로서비스로분해
____단계1:후보마이크로서비스식별
____단계2:API다이어그램에마이크로서비스추가
____단계3:마이크로서비스설계캔버스를이용해캡처
____마이크로서비스설계의추가고려사항
__마이크로서비스전환시고려사항
__요약

11장.개발자경험향상시키기
__모의API구현체생성
____정적모의API
____API프로토타이핑
____README기반모의API
__개발라이브러리와SDK제공
____개발라이브러리제공방법
____개발라이브러리의버전관리
____개발라이브러리문서와테스트
__API를위한CLI제공
__요약

12장.API테스팅전략
__인수테스트
__자동화된보안테스트
__운영모니터링
__API계약테스트
__효율적인테스트를위한도구선택
__API테스트의과제
__API테스트는선택이아닌필수
__요약

13장.API설계문서화
__API문서화의중요성
__API설명형식
____OpenAPI사양
____APIBlueprint
____RAML
____JSON스키마
____ALPS를이용한API프로파일
____APIs.json을이용한API검색개선
__코드예제로문서확장
____시작하기코드예제먼저작성
____워크플로예제로문서확장
____에러사례및운영환경준비가된예제
__참조문서에서개발자포털로
____개발자포털을통한API채택증가
____훌륭한개발자포털의요소
__효과적인API문서화
____질문1:API가내문제를어떻게해결하는가?
____질문2:각API작업은어떤문제를지원하는가?
____질문3:API사용을시작하려면어떻게해야하는가?
____API문서에서테크니컬라이터의역할
__실행가능한최소포털
____단계1:실행가능한최소포털
____단계2:개선
____단계3:성장에집중
__개발자포털을위한도구와프레임워크
__요약

14장.변화를위한설계
__기존API변경의영향
____API설계격차분석수행
____API소비자에게가장적합한것이무엇인지결정
____변경전략
____신뢰를바탕으로한변경관리
__API버전전략
____일반적인주요변경사항
____호환되지않는변경사항
____API버전과개정판
____API버전관리방법
____API버전관리의비즈니스고려사항
__API지원중단
____사용중단정책수립
____지원중단발표
____API안정성계약수립
__요약

15장.API보안
__API보안의위험성
__API보안의필수방법
__API보안의구성요소
____API게이트웨이
____API관리
____서비스메시
____웹애플리케이션방화벽(WAF)
____콘텐츠전송네트워크
____지능형API보안
__API게이트웨이토폴로지
____API관리호스팅방법
____API네트워크트래픽고려사항
____토폴로지1:API게이트웨이를API서버로직접연결
____토폴로지2:서비스에대한API게이트웨이라우팅
____토폴로지3:여러API게이트웨이인스턴스
__아이디및액세스관리
____암호와API키
____API토큰
____참조를전달하는API토큰과값을전달하는API토큰
____OAuth2.0과OpenIDConnect
__API게이트웨이를직접구축하기전에고려해야할사항
____이유1:API보안은움직이는표적이다
____이유2:예상보다오래걸린다
____이유3:빠르게작동하도록만들기에는많은시간이필요하다
____개발라이브러리에대해
__요약

16장.API설계여정의지속
__API스타일가이드설정
____스타일가이드준수를장려하는방법
____스타일가이드어조선택
____API스타일가이드를시작하기위한팁
____여러API스타일지원
__API설계검토수행
____문서검토로시작
____표준및설계일관성확인
____자동화된테스트범위검토
____미리사용해보기지원추가
__재사용문화개발
__여정은이제막시작됐다

부록HTTP입문서
__HTTP개요
__URL
__HTTP요청
__HTTP응답
__일반적인HTTP메서드
__HTTP응답코드
__콘텐츠협상
__캐시제어
__조건부요청
__HTTP에서동시성제어
__요약

출판사 서평

◈이책에서다루는내용◈

◆올바른설계프로세스를통해훌륭한API제공
◆개발팀,고객,기타이해관계자로부터구체적인결과에대한합의도출
◆작업스토리작성,EventStorming수행및기능모델링
◆올바른API를식별하고일관된API프로파일로작업을구성
◆각프로젝트에가장적합한스타일선택:REST,gRPC,GraphQL또는이벤트기반비동기API
◆문서작성자,테스터,고객의피드백을바탕으로디자인개선
◆API를마이크로서비스로분리
◆확장가능한설계및관리프로세스를구현해API프로그램완성

◈이책의대상독자◈

인간을즐겁게할단일API또는일련의API를설계하려는모든사람을대상으로한다.제품소유자와제품관리자는팀이API를설계하는데필요한요소를더깊이이해할수있다.소프트웨어아키텍트와개발자는소프트웨어아키텍처의원리를적용해API를설계하는방법을배우면도움이된다.테크니컬라이터는API문서의명확성에기여할뿐만아니라API설계프로세스전반에걸쳐가치를추가할수있는방법을식별할수있다.간단히말해『웹API설계원칙』은개발또는비개발역할에관계없이API설계에관련된모든사람을위한것이다.

◈이책의구성◈

API설계를위한일련의원칙과프로세스를간략하게설명하는책이다.이책에서다루는ADDR프로세스는개인및여러팀이API설계의복잡성을탐색하는데도움이되도록설계했다.고객의소리,수행해야할작업,프로세스매핑과같은개념을적용해API설계에대한객관적인관점을갖길권장한다.『웹API설계의원칙』은처음부터새로운예시를통해안내하지만기존API에도사용될수있다.
이책은요구사항단계에서고객에게제공할준비가된API설계에도달하는것까지API설계의모든측면을다룬다.또한개인,팀및API소비자간의좀더효과적인의사소통을위해API설계를문서화하는방법에대한지침도포함돼있다.마지막으로API설계에영향을줄수있는API전달의몇가지요소를다룬다.

이책은5개의부로구성된다.
◆1부,‘웹API설계소개’에서는API설계가중요한이유에대한개요와이책에서사용되는API설계프로세스를소개한다.
◆2부,‘API결과에따른조정’에서는API를설계하는팀과모든고객및이해관계자간의조정을보장한다.
◆3부,‘API후보정의’에서는API프로파일에원하는결과를제공하는데필요한API작업을포함해필요한API를식별한다.
◆4부,‘API설계’에서는API프로파일을대상개발자의요구사항을충족하는하나이상의API스타일로변환한다.다루는스타일에는REST,gRPC,GraphQL,이벤트기반비동기API가포함된다.
◆5부,‘API설계개선’에서는문서,테스트및피드백에서얻은통찰력을기반으로API설계를개선한다.또한API를마이크로서비스로분해하는장도포함돼있다.
마지막으로이책은대규모조직에서설계프로세스를확장하는방법에대한팁으로마무리된다.
부록에서는웹기반API에사용되는웹언어인HTTP에대한복습이필요한사람들을위해시작하는데도움이되는훌륭한입문서를제공한다.