본문내용 바로가기
MD의선택 무료배송 사은품 소득공제

일상 속 사물이 알려주는 웹 API 디자인

아노드 로렛 지음 | 황건구 옮김 | 영진닷컴 | 2020년 11월 10일 출간
클로버 리뷰쓰기
  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2천원 추가적립 안내 [회원혜택] 실버등급 이상, 3만원 이상 구매 시 2~4% 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(23일,토) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 행사도서 구매 시 기술태그스티커 증정(포인트 차감)
    2021.01.12 ~ 2021.02.28
상품상세정보
ISBN 9788931463224(8931463227)
쪽수 448쪽
크기 188 * 236 * 28 mm /1063g 판형알림
이 책의 원서/번역서 The Design of Web APIs/Lauret, Arnaud

책소개

이 책이 속한 분야

일상 속에서 찾는 웹 API의 디자인 원리

웹 API는 새로운 서비스나 앱을 만들 때 기존에 존재하던 서비스가 제공하는 기능을 활용할 수 있도록 해준다. 굳이 기존 서비스에 대한 자세한 소스 코드를 알지 않더라도 개발자가 만드는 프로젝트에 쉽게 맞아 들어가는 레고와 같은 존재라고 생각할 수 있다. 그렇다면 나의 서비스를 다른 개발자가, 다른 애플리케이션이 쉽게 사용할 수 있는 API는 어떻게 만들어야 할까?
10년이 넘는 경력 기간 동안 다양한 웹 API를 마주하고 디자인했던 아노드 로렛이 지금까지 웹 API 디자이너들의 머릿속에 감으로만 자리잡고 있던 노하우를 간단히 이해할 수 있는 개념으로 정리했다.
[일상 속 사물이 알려주는 웹 API 디자인]은 우리가 당연하게 여기고 깊이 탐구해보지는 않았던 일상 속 사물을 예로 들어 API의 디자인 방법을 소개한다. 버튼들이 뒤죽박죽으로 섞인 리모컨, 정해놓은 시간까지 초 단위로 카운트다운을 하는 알람시계같이 전혀 사용법을 알 수 없는 물건을 우리에게 익숙한 모습으로 되돌리는 과정을 보여주며 이를 웹 API 디자인 과정과 연결한다. API 디자인 자체에 대한 기초적인 이론과 실제로 사용하기 편한 웹 API를 디자인하는 방법, 실제로 웹 API를 운영하게 되었을 때 관리를 하는 방법까지 좋은 API를 제대로 디자인하는데 필요한 모든 개념을 담았다. 모던 웹 서비스를 만드는 이들이라면 반드시 알아야 할 지식을 손에 넣어보자.

상세이미지

웹 API 디자인(일상 속 사물이 알려주는) 도서 상세이미지

목차

1부. API 디자인 기초

1. API 디자인이란 무엇인가?
1.1 API란 무엇인가?
1.1.1 소프트웨어를 위한 웹 인터페이스
1.1.2 소프트웨어를 레고처럼 바꾼다
1.2 API 디자인이 중요한 이유
1.2.1 퍼블릭, 프라이빗 API는 다른 개발자들도 사용한다
1.2.2 API는 구현을 숨겨준다
1.2.3 API를 어설프게 디자인하면 끔찍한 결과가 이어진다
1.3 API 디자인에 필요한 요소
1.3.1 프로그래밍 인터페이스 이상의 디자인 원리 이해
1.3.2 API 디자인의 모든 측면

2. 사용자를 위한 API 디자인하기
2.1 일상 속 사용자 인터페이스를 디자인하는 올바른 관점
2.1.1 작업 방식에 집중하면 인터페이스가 복잡해진다
2.1.2 사용자가 할 수 있는 일에 집중하면 인터페이스는 단순해진다
2.2 소프트웨어 인터페이스 디자인 방법
2.2.1 API를 소프트웨어의 제어판처럼 바라보기
2.2.2 컨슈머의 관점에 집중해 단순한 API를 만들기
2.3 API의 목표 식별 과정
2.3.1 무엇을 어떻게 하는가
2.3.2 어떤 걸 입력하고 어떤 게 출력되는가
2.3.3 누락된 목표가 있는가
2.3.4 모든 사용자를 찾아냈는가
2.3.5 API 목표 캔버스
2.4 API 디자인에서 피해야 할 프로바이더 관점
2.4.1 데이터가 미치는 영향
2.4.2 코드와 비즈니스 로직이 주는 영향
2.4.3 소프트웨어 아키텍처에서 받는 영향
2.4.4 인적 조직으로 인한 영향
2.4.5 API 목표 캔버스에서 프로바이더 관점 찾기

3. 프로그래밍 인터페이스 디자인하기
3.1 REST API 소개
3.1.1 REST API 호출 분석
3.1.2 HTTP의 기초사항
3.1.3 REST API의 기초원리
3.2 API 목표를 REST API로 변형하는 과정
3.2.1 API 목표 캔버스로 리소스와 리소스 사이 관계 식별
3.2.2 API 목표 캔버스를 이용해 액션과 액션의 파라미터 그리고 반환값 식별
3.2.3 경로를 포함한 리소스 표현
3.2.4 HTTP로 액션 표현
3.2.5 REST API와 HTTP 치트시트
3.3 API 데이터 디자인하기
3.3.1 컨셉(Concept) 디자인
3.3.2 컨셉에서 리스폰스 디자인
3.3.3 컨셉과 리스폰스에서 파라미터 디자인
3.3.4 데이터 소스에서 파라미터 확인
3.3.5 그 외의 파라미터들 디자인
3.4 디자인적 난관에 봉착했을 때 균형 유지하는 법
3.4.1 REST 절충안 예시
3.4.2 사용자 편의성과 규칙 준수 균형잡기
3.5 API를 디자인할 때 REST가 중요한 이유
3.5.1 REST 아키텍처 스타일 소개
3.5.2 API 디자인에서의 REST 제약사항이 미치는 영향

4. API 명세 포맷을 이용한 API 디자인
4.1 API 명세 포맷이란 무엇인가?
4.1.1 OAS(OpenAPI Specification) 소개
4.1.2 왜 API 명세 포맷을 사용해야 하는가?
4.1.3 API 명세 포맷을 사용해야 할 때
4.2 OAS를 통한 API 리소스와 액션 설명
4.2.1 OAS 문서 생성
4.2.2 리소스 설명
4.2.3 리소스의 동작 설명
4.3 OpenAPI와 JSON Schema로 API 데이터 표현하기
4.3.1 쿼리 파라미터 묘사
4.3.2 JSON Schema를 통한 데이터 묘사
4.3.3 리스폰스 묘사
4.3.4 바디 파라미터 묘사
4.4 OAS에서 API를 효율적으로 묘사하기
4.4.1 컴포넌트 재사용하기
4.4.2 패스 파라미터(Path parameter) 묘사하기

2부 사용하기 좋은 API 디자인

5. 직관적인 API 디자인하기
5.1 직관적인 표현
5.1.1 명확한 이름 정하기
5.1.2 사용하기 쉬운 데이터 타입과 포맷 정하기
5.1.3 바로 사용할 수 있는 데이터 선택하기
5.2 직관적인 상호작용
5.2.1 직관적인 입력 요청하기
5.2.2 발생 가능한 모든 에러 피드백 식별하기
5.2.3 유용한 에러 피드백 반환하기
5.2.4 철저한 에러 피드백 반환하기
5.2.5 유용한 성공 피드백 반환하기
5.3 직관적인 흐름
5.3.1 직관적인 목표 연쇄 만들기
5.3.2 에러 방지
5.3.3 목표 통합
5.3.4 상태가 없는 흐름 디자인하기

6. 예측 가능한 API 디자인하기
6.1 일관성 유지하기
6.1.1 일관된 데이터 디자인하기
6.1.2 일관적인 목표 디자인하기
6.1.3 일관성의 4단계
6.1.4 타인을 따라하자: 일반적인 관행과 표준 준수하기
6.1.5 유지하기 어렵고 현명하게 적용해야하는 일관성
6.2 적응 가능하게 하기
6.2.1 다른 포맷으로 제공하거나 응답하기
6.2.2 국제화와 현지화
6.2.3 필터, 페이지, 정렬 적용하기
6.3 탐색 가능하게 하기
6.3.1 메타데이터 제공하기
6.3.2 하이퍼미디어 API 만들기
6.3.3 HTTP 프로토콜의 장점 이용하기

7. 간결하고 체계적인 API 디자인하기
7.1 API 구조화
7.1.1 데이터 구조화하기
7.1.2 피드백 구조화하기
7.1.3 목표 구조화하기
7.2 API 사이징
7.2.1 데이터 세분화 선택하기
7.2.2 목표 세분화 선택하기
7.2.3 API 세분화 선택하기

3부 상황에 맞는 API 디자인

8. 안전한 API 디자인하기
8.1 API 보안의 개요
8.1.1 컨슈머 등록하기
8.1.2 API 사용을 위해 자격증명 가져오기
8.1.3 API 호출하기
8.1.4 보안성 관점에서 API 구상하기
8.2 API 분할을 통한 접근 제어 활성화
8.2.1 유연하고 정제된 스코프 정의하기
8.2.2 단순하지만 더 굵직한 스코프로 정의하기
8.2.3 스코프 전략 선택하기
8.2.4 API 명세 포맷으로 스코프 정의하기
8.3 접근 제어를 고려한 설계
8.3.1 접근 제어에 필요한 데이터 이해하기
8.3.2 필요에 따른 디자인 조정
8.4 민감 요소의 취급
8.4.1 민감한 데이터 취급하기
8.4.2 민감한 목표 취급하기
8.4.3 안전한 에러 피드백 디자인하기
8.4.4 아키텍처와 프로토콜 이슈 식별하기

9. API 디자인 발전시키기
9.1 API 진화 디자인
9.1.1 출력 데이터의 브레이킹 체인지 회피하기
9.1.2 입력데이터와 파라미터에서 브레이킹 체인지 회피하기
9.1.3 성공과 에러 피드백에서 브레이킹 체인지 회피하기
9.1.4 목표와 흐름에서 브레이킹 체인지 회피하기
9.1.5 브레이킹 체인지의 보안 취약점 발생 회피하기
9.1.6 보이지 않는 인터페이스 컨트랙트에 주의하기
9.1.7 브레이킹 체인지를 유발하는 것이 항상 문제는 아닙니다.
9.2 API 버전 정하기
9.2.1 API 버전 관리와 구현 버전 관리 비교
9.2.2 컨슈머 관점에서 API 버전 표현 선택하기
9.2.3 API 버저닝의 세분화 정하기
9.2.4 API 버저닝이 디자인을 넘어 미치는 영향들
9.3 API를 디자인할 때 확장성(Extensibility)을 명심하기
9.3.1 확장 가능한 데이터 디자인하기
9.3.2 확장가능한 상호작용 디자인하기
9.3.3 확장 가능한 흐름 디자인하기
9.3.4 확장가능한 API 디자인하기

10. 네트워크 효율적인 API 디자인하기
10.1 네트워크 커뮤니케이션의 고려사항의 개요
10.1.1 장면 설정
10.1.2 문제 분석하기
10.2 프로토콜 레벨에서 네트워크 커뮤니케이션 효율성 보장하기
10.2.1 압축(Compression)과 지속적인 연결(Persistent connections) 활성화하기
10.2.2 캐싱(Caching)과 조건부 리퀘스트(Conditional request) 활성화 하기
10.2.3 캐시 정책 선택하기
10.3 디자인 레벨에서 네트워크 커뮤니케이션 효율성 확보하기
10.3.1 필터링(Filtering) 활성화 하기
10.3.2 목록 표현을 위한 연관된 데이터 선택하기
10.3.3 데이터 집합체 만들기(Aggregating)
10.3.4 다른 표현 제안하기
10.3.5 확장 활성화하기
10.3.6 쿼리 활성화하기
10.3.7 보다 연관성 있는 데이터와 목표 제공하기
10.3.8 다른 API 레이어 생성하기

11. 컨텍스트에 맞는 API 디자인하기
11.1 데이터와 목표와 성격에 맞는 커뮤니케이션 적용하기
11.1.1 처리 시간이 오래 걸리는 작업 관리하기
11.1.2 컨슈머에게 이벤트 알리기
11.1.3 이벤트 흐름 스트리밍(Streaming)하기
11.1.4 여러 요소(Element) 처리하기
11.2 전체 컨텍스트 이해하기
11.2.1 컨슈머의 기존 관행과 제약사항 숙지하기
11.2.2 프로바이더의 한계를 신중하게 고려하기
11.3 컨텍스트에 맞는 API 스타일 선택하기
11.3.1 리소스, 데이터, 함수 기반 API 비교
11.3.2 리퀘스트/리스폰스와 HTTP 기반의 API를 넘어서 생각하기

12. API 문서화 하기
12.1 참조 문서 만들기
12.1.1 데이터 모델 문서화
12.1.2 목표 문서화하기
12.1.3 보안 문서화하기
12.1.4 API의 개요 제공하기
12.1.5 세부구현에서 문서 추출하기: 장점과 단점
12.2 사용자 안내서 작성하기
12.2.1 유즈케이스 문서화하기
12.2.2 보안 문서화하기
12.2.3 일반적인 동작들과 원칙에 대한 개요 제공하기
12.2.4 정적(Static) 문서화를 넘어서 생각하기
12.3 구현 담당자에게 적절한 정보 제공하기
12.4 문서의 개정과 폐기

13. 성장하는 API
13.1 API 생명주기(Lifecycle)
13.2 API 디자인 지침 만들기
13.2.1 API 디자인 지침에 포함되는 내용들
13.2.2 지속적으로 지침 만들기
13.3 API 리뷰하기
13.3.1 요구사항에 도전하고 분석하기
13.3.2 디자인 린트하기(Linting)
13.3.3 프로바이더 관점에서 디자인 리뷰하기
13.3.4 컨슈머 관점에서 디자인 리뷰하기
13.3.5 구현 검증하기
13.4 소통하고 공유하기

출판사 서평

이 책은 총 3부, 13장으로 구성되어 있습니다. 이 책은 모든 장을 처음부터 끝까지 순서대로 읽어야 합니다. 각각의 장은 이전 장에서 배운 내용을 확장해 나갑니다. 즉, 1, 2, 3장을 마쳐야 디자인에 관한 주제를 다루는 장으로 이동할 수 있습니다.

1부. API 디자인 기초

API를 디자인할 때 필요한 기본 개념과 기술들을 다룹니다. 1장은 API가 무엇인지, 디자인이 왜 중요한지 API 디자인을 구성하는 요소가 무엇인지 설명합니다. 2장은 API 사용자의 관점과 API를 사용하는 소프트웨어의 관점에 초점을 맞추어서... 더보기

Klover 리뷰 (0)

북로그 리뷰 (3) 전체보기 쓰러가기

도서 구매 후 리뷰를 작성하시면
결제 90일 이내 300원, 발송 후 5일 이내 400원, 이 상품의 첫 리뷰 500원의 포인트를 드립니다.

포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
북로그 리뷰는 본인인증을 거친 회원만 작성 가능합니다.
(※ 외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외) 안내
  • 웹 API 디자인 am**rammer | 2021-01-02 | 추천: 0 | 5점 만점에 5점
    인터페이스란 무엇인가   프로그램을 하다 보면 개발자들의 입에서 꼭 나오는 단어가 있습니다. 바로 인터페이스 입니다. 인터페이스 잘 모르겠다고요? 개발 분야를 이야기 하지 않아도 우리는 일상 속에서 인터페이스라는 단어를 많이 사용 해 왔습니다. 사용자 인터페이스가 바로 그것입니다. User Interface의 첫글자를 따서 UI라고도 합니다. 인터페이스를 이해하려면 사용자 인터페이스를 먼저 떠올려 보면 될 것 입니다. 스마트폰의 사용자 인터페이스라고 하면 터치스크린이 먼저 생각납니다. 하지만, 하나 더 추... 더보기
  • [리뷰] 웹 API 디자인 de**te48 | 2021-01-01 | 추천: 0 | 5점 만점에 4점
          ◎ 원문 : http://blair.kr/222192106296   [매력쟁이크's 리뷰] 예전에는 코드 자체가 보안이고 공유하지 않는 기술력인 시절도 있었지만 요즘은  참 많이 달라졌다는 생각을 해봅니다. 오픈 소스. 모든 것을 공유하고 공유를 통해 여러 사람들이 새로운 것을  또 만들어 내고 늘려가면서 함께 발전해나가는 : )  그것을 가능하게 하는 것 중 하나가 바로 A... 더보기
  •     API란 웹 애플리케이션 프로그래밍 인터페이스(application programming interface)로 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식을 말한다. API는 정말 모든 곳에서 쓰이고 있는데 스마트폰에서 돌아가는 앱부터 깊이 숨겨진 백엔드 서버에 이르기까지 사용되고 있다.   예를 들어 스마트폰을 통해 소셜 네트워크에 사진을 공유할 때, 세 종류의 API가 종류가 사용된다. 소셜 네트워크 애플리케이션이 카메라 API를 이용해 사진을 촬영... 더보기

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서/번역서

안내

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품