◈ 이 책에서 다루는 내용 ◈
◆ 올바른 설계 프로세스를 통해 훌륭한 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에 대한 복습이 필요한 사람들을 위해 시작하는 데 도움이 되는 훌륭한 입문서를 제공한다.
**
◈ 옮긴이의 말 ◈
IT 업계에 적을 두고 있는 사람으로서 최근만큼 다채로운 주제가 다양한 방식으로 변화를 가져오는 경우가 이제껏 있었나 하는 생각이 든다. 모놀리식(Monolithic)에서 마이크로서비스 아키텍처(MicroService Architecture) 로의 전환은 업계 사람들 사이에서 가장 많이 논의되는 주제 중 하나다. 이미 소개된 많은 책이 이를 대변하고 있다.
바꿔 말하면 이미 많은 책과 글에서 마이크로서비스 아키텍처로 구성된 결과물을 두고 어떤 것이 마이크로서비스 아키텍처이고 왜 하는지를 설명하고 있다. 이 책은 마이크로서비스 아키텍처만을 소개하고자 작성된 책은 아니다. 오히려 설계 관점에서 비즈니스 문제를 어떻게 인식하고 어떠한 절차를 거쳐 API를 설계하는 것이 효과적이고 효율적인지 얘기한다. 그 과정에서 데이터 기반 설계(Data Driven Design) 패턴의 개념이 사용되기도 하고 API 설계의 한 결과로 마이크로서비스의 사례를 소개하기도 한다.
AWS CEO였던 앤디 제시(Andy Jassy)는 언젠가 AWS의 공식 행사에서 연사로 나와 “경험을 압축하는 알고리듬은 없다.”고 말했다. 개인적으로 좋아하는 말이다. 누군가의 경험을 압축해서 내 것으로 만드는 방법은 없다. 하지만 누군가의 경험을 토대로 앞으로 나아갈 방향을 결정하는 데 참고하고 더 밀도 있는 자신만의 경험을 쌓을 수 있다. 현재 애플리케이션의 현대화를 고민 중이라면 이 책은 좋은 지침서가 될 것이다.
-정영민
현대의 서비스에서 API가 얼마나 중요한지는 모두 알고 있다. 이 책은 API 설계를 위한 기술적 구현 방법보다는 프로덕트(비즈니스)에 집중하며 API라는 도구를 통해 어떻게 다양한 관계에 있는 이해관계자들과 목표를 일치시키고 커뮤니케이션할 수 있는지에 대해 초점을 맞추고 있다. 그리고 그 방법을 ADDR 프로세스를 통해 구체적으로 제안하고, 독자가 정확히 이해하고 도입할 수 있도록 자세히 설명하고 있다.
우리는 IT를 이용해 많은 일을 하고 있지만 여전히 사람과 함께 살고 있는 것처럼 이 책은 기술에만 초점을 맞춘 책과는 다른 인사이트를 제공한다. 꼭 개발자가 아니더라도 프로덕트 오너 그리고 기획/운영 팀 등 API를 통해 비즈니스를 하는 조직 내의 누구라도 읽어볼 수 있는 책으로, 조직의 API 설계 지침 기반을 만드는 작업에 유용한 도구가 될 것이다.
-이혁
API는 비즈니스를 운영하는 조직에게 중요한 자산이다. 디지털 전환의 흐름 속에서 IT업계뿐 아니라 거의 모든 업계에서 API로 구현된 고유의 비즈니스 기능을 자산 관점에서 중요하게 여긴다. 잘 설계된 API는 직면한 비즈니스 문제를 효과적으로 해결하며, 지속적으로 변화하는 비즈니스 환경에서도 적시에 새로운 문제 해결을 위한 기반이 된다. 이 책은 이러한 실질적인 본질을 책 전반에 거쳐 현실적인 사례를 기반으로 전달하고 있다. 중요성을 잘 알면서도 어떻게 적용하는지 막막한 경우가 많다. 비즈니스 영역에 대한 이해와 기술적인 설계 및 고도화를 책 한 권으로 전부 습득할 수는 없을 것이다. 잘 정리된 이론과 저자의 경험, 실질적인 사례를 통해 이 문제 해결 방법을 체득한다면 이제 각자의 고유한 상황과 문제를 대입해서 새로운 성과를 만들 수 있을 것이다.
-김은호