| 000 | 00000cam c2200205 c 4500 | |
| 001 | 000046217503 | |
| 005 | 20260303130143 | |
| 007 | ta | |
| 008 | 260210s2026 ggka 001c kor | |
| 020 | ▼a 9791189909994 ▼g 93000 | |
| 035 | ▼a (KERIS)BIB000017352870 | |
| 040 | ▼a 244009 ▼c 244009 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 4 | ▼a 005.3 ▼2 23 |
| 085 | ▼a 005.3 ▼2 DDCK | |
| 090 | ▼a 005.3 ▼b 2026 | |
| 100 | 1 | ▼a Gough, James ▼0 AUTH(211009)181309 |
| 245 | 1 0 | ▼a 모던 API 아키텍처 설계 전략 : ▼b 실전 사례로 배우는 API 아키텍처의 설계와 전환, 구현과 운영까지 / ▼d 제임스 고프, ▼e 대니얼 브라이언트, ▼e 매튜 어번 지음 ; ▼e 장현희 옮김 |
| 246 | 1 9 | ▼a Mastering API architecture : ▼b design, operate, and evolve API-based systems |
| 260 | ▼a 안양 : ▼b 책만, ▼c 2026 | |
| 300 | ▼a 327 p. : ▼b 삽화 ; ▼c 24 cm | |
| 500 | ▼a API = Application Programming Interface | |
| 500 | ▼a 색인수록 | |
| 650 | 0 | ▼a Application program interfaces (Computer software) |
| 650 | 0 | ▼a Computer programming ▼x Management |
| 700 | 1 | ▼a Bryant, Daniel, ▼e 저 |
| 700 | 1 | ▼a Auburn, Matthew, ▼e 저 |
| 700 | 1 | ▼a 장현희, ▼e 역 ▼0 AUTH(211009)122041 |
| 900 | 1 0 | ▼a 고프, 제임스, ▼e 저 |
| 900 | 1 0 | ▼a 브라이언트, 대니얼, ▼e 저 |
| 900 | 1 0 | ▼a 어번, 매튜, ▼e 저 |
| 945 | ▼a ITMT |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.3 2026 | 등록번호 121271255 | 도서상태 정리중 | 반납예정일 | 예약 예약가능 | 서비스 |
컨텐츠정보
책소개
웹 환경을 다루는 대부분의 조직은 API를 구현하고 운영하며, API는 고객이 기업의 서비스를 사용하는 관문과도 같다. 이 중요한 시스템을 설계하고 구현하고 관리하는 것은 엔지니어부터 제품 관리자는 물론 C레벨 임원에 이르기까지 조직의 모든 구성원이 관여해야 할 일이다.
하지만 개발자와 솔루션 아키텍트가 가장 어려움을 겪는 부분은 역시 처음부터 API 플랫폼을 구축하는 것이다. 실용 사례와 함께, API 게이트웨이를 바탕으로 마이크로서비스 기능을 결합하는 REST API를 구현하고 테스트할 수 있는 전략을 상세히 다룬다.
웹 환경을 다루는 대부분의 조직은 API를 구현하고 운영하며, API는 고객이 기업의 서비스를 사용하는 관문과도 같다. 이 중요한 시스템을 설계하고 구현하고 관리하는 것은 엔지니어부터 제품 관리자는 물론 C레벨 임원에 이르기까지 조직의 모든 구성원이 관여해야 할 일이다. 하지만 개발자와 솔루션 아키텍트가 가장 어려움을 겪는 부분은 역시 처음부터 API 플랫폼을 구축하는 것이다. 이 책에서는 실용 사례와 함께, API 게이트웨이를 바탕으로 마이크로서비스 기능을 결합하는 REST API를 구현하고 테스트할 수 있는 전략을 상세히 다룬다.
| 이 책에서 다루는 내용 |
? API의 기초와 API 플랫폼을 구현하기 위한 아키텍처 패턴 학습
? 실용적인 예제를 통해 API 기반 시스템의 설계, 구현, 테스트 방식 이해
? API 플랫폼의 배포와 운영 및 핵심 컴포넌트 구성 방법
? 사례 연구를 통한 API 게이트웨이와 서비스 메시의 활용 방안
? API 아키텍처의 핵심적인 보안 기법과 보편적인 취약점 이해
? 위협 모델링과 OAuth2 및 TLS 기술을 이용한 데이터와 API 보호 방안
? 기존의 시스템을 API와 클라우드 기반 아키텍처로 진화시키는 방법
정보제공 :
저자소개
제임스 고프(지은이)
모건 스탠리의 최고 엔지니어로서 클라우드 네이티브 아키텍처와 API 프로그램을 담당하고 있습니다. 자바 챔피언으로 활동 중이며, 런던 자바 커뮤니티를 대표해 자바 커뮤니티 프로세스 실행 위원회에서 활동했습니다. 또한 OpenJDK 프로젝트에 기여하였으며, 『Mastering API Architecture』의 공동 저자로, 소프트웨어 아키텍처와 저수준 자바 프로그래밍 기술에 대한 전문 지식과 경험이 풍부합니다.
대니얼 브라이언트(지은이)
매튜 어번(지은이)
장현희(옮긴이)
지난 10여 년간 호주와 캐나다에서 시니어 엔지니어 및 스태프 엔지니어로 경험을 쌓았으며 현재는 프린시펄 소프트웨어 엔지니어(principal software engineer)로서 소프트웨어 개발은 물론 성공적인 엔지니어링 팀과 문화의 구축에 힘을 쏟고 있다. 지금까지 30권이 넘는 개발 관련서를 집필/번역하면서 책이라는 매개체로 멀리서나마 국내 개발자들과 꾸준히 소통하고 있으며 대표적인 번역서로는 『일 잘하는 엔지니어의 생각 기법』(책만, 2025) 『필독! 개발자 온보딩 가이드』(책만, 2023), 『딱 한 줄로! 파이썬 제대로 코딩하기』(책만, 2024), 『스태프 엔지니어』(길벗, 2022), 『SRE를 위한 시스템 설계와 구축』(한빛미디어, 2022), 『엔터프라이즈 데이터 플랫폼 구축』(책만, 2020), 『사이트 신뢰성 엔지니어링』(제이펍, 2018), 『클라우드 네이티브 자바』(책만, 2018) 등이 있다.
목차
0장 API 아키텍처 설계 여정을 시작하며
아키텍처 여정
API에 대한 간략한 소개
실전 예제: 컨퍼런스 시스템 사례 연구
__컨퍼런스 사례 연구의 API 종류
__컨퍼런스 시스템을 변경해야 하는 이유
__다계층 아키텍처에서 API 모델링으로의 전환
__사례 연구: 진화적 단계
__API 인프라스트럭처와 트래픽 패턴
__컨퍼런스 사례 연구의 로드맵
C4 다이어그램의 활용
__C4 컨텍스트 다이어그램
__C4 컨테이너 다이어그램
__C4 컴포넌트 다이어그램
ADR의 사용
__참석자 개선 ADR
__API 마스터하기: ADR 가이드라인
정리
[1부] API 설계부터 구현, 테스트까지
1장 API 설계, 구현, 명세
사례 연구: 참석자 API의 설계
REST에 대한 소개
__예시를 통한 REST와 HTTP 소개
__리처드슨 성숙도 모델
원격 프로시저 호출(RPC) API에 대한 소개
그래프QL에 대한 간단한 소개
REST API 표준과 구조
__컬렉션과 페이징
__컬렉션 필터링
__에러 처리
__ADR 가이드라인: API 표준의 선택
OpenAPI로 REST API 명세 작성하기
OpenAPI 명세의 실질적 활용
__코드 생성
__OpenAPI 검증
__예제와 모의 데이터
__변경의 탐지
API 버저닝
__시맨틱 버저닝
__OpenAPI 명세와 버저닝
gRPC로 RPC 구현하기
교환 방식과 API 형식의 선택
__트래픽이 높은 서비스
__대용량 데이터 페이로드
__HTTP/2의 성능 이점
__구형 형식들
가이드라인: 교환 데이터의 모델링
다중 명세
__월등한 명세는 존재하는가
__다중 명세를 제공할 때의 어려움
정리
2장 API 테스트
이번 장에서 다룰 컨퍼런스 시스템의 시나리오
테스트 전략
__테스트 사분면
__테스트 피라미드
__테스트 전략에 대한 ADR 가이드라인
계약 테스트
__계약 테스트를 더 선호하는 이유
__계약의 구현
__ADR 가이드라인: 계약 테스트
API 컴포넌트 테스트
__계약 테스트와 컴포넌트 테스트의 비교
__사례 연구: 컴포넌트 테스트로 동작 검증하기
API 통합 테스트
__스텁 서버를 사용해야 하는 이유와 방법
__ADR 가이드라인: 통합 테스트
__테스트 컴포넌트의 컨테이너화: Testcontainers
__사례 연구: Testcontainers를 이용한 통합 검증
종단 간 테스트
__종단 간 검증의 자동화
__종단 간 테스트의 종류
__ADR 가이드라인: 종단 간 테스트
정리
[2부] API 트래픽 관리
3장 API 게이트웨이: 인그레스 트래픽 관리
API 게이트웨이가 유일한 해결책일까?
가이드라인: 프록시, 로드밸런서 또는 API 게이트웨이의 선택
사례 연구: 참석자 서비스를 소비자에게 노출하기
API 게이트웨이의 정의
API 게이트웨이의 기능
API 게이트웨이의 배포 위치
API 게이트웨이와 다른 에지 기술의 통합
API 게이트웨이를 사용해야 하는 이유
__프론트엔드와 백엔드의 낮은 결합도: 어댑터/퍼사드 패턴의 활용
__사용법의 간소화: 백엔드 서비스의 종합과 해석
__남용 및 오용으로부터 API 보호: 위협 탐지와 완화
__API 활용 방식에 대한 이해: 관측용이성
__API를 제품으로 관리하기: API 수명주기 관리
__API의 수익화: 계정 관리, 비용 청구, 결제
모던 API 게이트웨이의 역사
__1990년대 이후: 하드웨어 로드밸런서
__2000년대 초반 이후: 소프트웨어 로드밸런서
__2000년대 중반: 애플리케이션 전달 컨트롤러(ADC)
__2010년대 초: 1세대 API 게이트웨이
__2015년 이후: 2세대 API 게이트웨이
현재의 API 게이트웨이 분류
__전통적인 엔터프라이즈 게이트웨이
__마이크로서비스/마이크로 게이트웨이
__서비스 메시 게이트웨이
__API 게이트웨이 유형 비교
사례 연구: API 게이트웨이를 이용한 컨퍼런스 시스템의 개선
__쿠버네티스에 엠버서더 에지 스택 설치하기
__URL 경로와 백엔드 서비스의 매핑 설정
__호스트 기반 라우팅을 이용한 매핑 설정
API 게이트웨이 배포: 장애에 대한 이해와 관리
__API 게이트웨이도 단일 실패 지점이다
__문제의 탐지와 해결
__장애와 문제의 해결
__위험의 완화
API 게이트웨이 구현의 보편적인 위험
__API 게이트웨이 루프백
__API 게이트웨이를 ESB처럼 활용
__모두가 거북이(API 게이트웨이)가 되는 현상
API 게이트웨이의 선택
__요구사항의 파악
__구현과 구입의 비교
__ADR 가이드라인: API 게이트웨이의 선택
정리
4장 서비스 메시: 서비스 간 트래픽 관리
서비스 메시가 유일한 해결책인가
가이드라인: 서비스 메시를 도입해야 할까
사례 연구: 세션 기능을 서비스로 분리하기
서비스 메시란
서비스 메시가 제공하는 기능들
서비스 메시를 배포하는 위치
서비스 메시는 다른 네트워크 토폴로지와 어떻게 통합될까
서비스 메시를 사용해야 하는 이유
__라우팅, 신뢰성, 트래픽 관리에 대한 세분화된 제어
__투명한 관측용이성의 제공
__보안의 적용: 전송 보안, 인증, 인가
__여러 언어의 교차 기능적 통신의 지원
__인그레스 트래픽과 서비스 간 트래픽 관리의 분리
서비스 메시의 진화
__초기의 역사와 그 동기
__구현 패턴
서비스 메시의 분류
사례 연구: 서비스 메시를 이용한 라우팅, 관측 가능성 그리고 보안
__이스티오를 이용한 라우팅
__링커드를 이용한 트래픽 관측
__콘설을 이용한 네트워크 분할
서비스 메시의 배포: 장애의 이해와 관리
__서비스 메시는 단일 실패 지점이다
서비스 메시 구현의 공통적인 어려움
__서비스 메시를 ESB로 사용하는 경우
__서비스 메시를 게이트웨이로 사용하는 경우
__네트워크 계층이 너무 많은 경우
서비스 메시의 선택
__요구사항 분석
__구현과 구입의 비교
__체크리스트: 서비스 메시의 선택
정리
[3부] API의 운영과 보안
5장 API의 배포와 릴리스
배포와 릴리스의 분리
__사례 연구: 기능 플래그
__트래픽 관리
사례 연구: 컨퍼런스 시스템의 릴리스 모델링
__API 수명주기
__수명주기에 릴리스 전략을 결합하기
__ADR 가이드라인: 트래픽 관리와 기능 플래그를 이용한 배포와 릴리스의 분리
릴리스 전략
__카나리 릴리스
__트래픽 미러링
__블루-그린
사례 연구: 아르고 롤아웃으로 롤아웃 수행하기
성공에 대한 모니터링과 장애의 인지
__관측용이성을 지탱하는 3가지 요소
__API에서 중요한 지표
__신호 읽어내기
효율적인 소프트웨어 릴리스를 위한 애플리케이션의 대응
__응답 캐싱
__애플리케이션 수준 헤더 전파
__디버깅을 돕기 위한 로깅
__규약형 플랫폼 고려하기
__ADR 가이드라인: 규약형 플랫폼
정리
6장 운영 보안: API의 위협 모델링
사례 연구: 참석자 API에 OWASP 적용하기
외부 API가 안전하지 않을 때의 위험
위협 모델링의 기초
공격자 입장에서 생각하기
위협 모델링 실습
__1단계: 목표를 정의한다
__2단계: 올바른 정보를 수집한다
__3단계: 시스템을 분할한다
__4단계: 위협을 정의한다(스트라이드의 활용)
__5단계: 위협의 위험도를 평가한다
__6단계: 검증한다
정리
7장 API의 인증과 인가
인증
__토큰을 이용한 최종 사용자 인증
__시스템 간 인증
__키와 사용자를 혼합하면 안 되는 이유
OAuth2
__API 사용 시 인가 서버의 역할
__JSON 웹 토큰(JWT)
__OAuth2 승인 관련 메커니즘과 용어
__ADR 가이드라인: OAuth2를 고려해야 할까
__인가 코드 승인
__리프레시 토큰
__클라이언트 자격증명 승인
__추가 OAuth2 승인
__ADR 가이드라인: 지원할 OAuth2 승인의 선택
__OAuth2 범위
__인가의 수행
OIDC 소개
SAML 2.0
정리
[4부] API의 진화적 아키텍처
8장 API 주도 아키텍처로의 재설계
시스템의 진화에 API가 필요한 이유
__유용한 추상화: 응집도의 향상
__도메인 경계의 정립: 낮은 결합도의 촉진
사례 연구: 참석자 도메인 경계의 확립
최종적인 아키텍처의 선택
__모놀리식
__서비스 지향 아키텍처
__마이크로서비스
__함수
진화적 절차의 관리
__목표의 결정
__적합성 함수의 활용
__시스템을 모듈로 나누기
__확장의 ‘이음새’가 될 API 구현하기
__시스템 내에서 변경 유발 지점 식별하기
__지속적 전달과 검증
API로 시스템을 진화시키기 위한 아키텍처적 패턴
__교살자 무화과나무
__퍼사드와 어댑터
__API 계층 케이크
어려운 부분과 기회를 식별하기
__업그레이드와 유지보수 이슈
__성능 이슈
__의존성의 제거: 결합도가 높은 API들
정리
9장 클라우드 플랫폼으로의 진화
사례 연구: 참석자 서비스를 클라우드로 이전하기
클라우드 마이그레이션 전략의 선택
__유지하거나 재검토
__호스트 교체
__플랫폼 교체
__재구매
__리팩토링/아키텍처 재설계
__퇴출
사례 연구: 참석자 서비스의 플랫폼을 클라우드로 교체하기
API 관리의 역할
수직 및 수평 트래픽: 트래픽 관리의 경계를 흐리게 하기
__에지부터 시작해 점차 내부로 마이그레이션을 수행하자
__경계 건너기: 네트워크 간 라우팅
구역화 아키텍처에서 제로 트러스트로의 이전
__구역으로의 진입
__아무도 믿지 말고 검증하자
__제로 트러스트 아키텍처에서 서비스 메시의 역할
정리
10장 지속적인 아키텍처 진화를 위해
사례 연구: 지금까지의 변화
API, 콘웨이의 법칙 그리고 여러분의 조직
의사결정 종류의 이해
미래를 위한 준비
__비동기 통신
__HTTP/3
__플랫폼 기반 메시
API 아키텍처를 계속 학습하기 위한 방법
__기반 기술을 계속해서 연마한다
__업계의 최신 정보를 얻는다
__레이더, 쿼드란트, 트렌드 리포트
__권장 기법과 사용 사례를 학습한다
__실전을 통해 학습한다
__가르치면서 학습한다
정보제공 :



