주석
레오나르도 리차드슨은 Beautiful Soup의 Contibutor이자, RESTful Web Services의 저자이다.
그는 차기 저서인 RESTful Web API에서, 현대의 REST API는 로이 필딩이 핵심으로 짚은 "REST" 특성을 지니고 못한다고 지적했다.
웹 페이지는 직관적으로 이해하기 쉬운 하이퍼텍스트 콘트롤을 표현에 포함한다. 유저는 링크나 버튼을 눌러 다음 상태로 나아가게 되는데, 이것이 웹 성공의 중추인 REST; 표현에 의한 상태 전이이다.
현대의 REST API는 SOAP의 WSDL과 같은 엄격한 SOA 표준을 대체했고, Verb 기반 URL 대신 Resource 지정을 사용하며, HTTP 표준 메서드의 시멘틱을 재활용해 쉽고 직관적인 API를 만드는 데 성공했다. 그러나, 유저에게 다음으로 나아갈 상태 전이의 단서를 표현에 잘 녹이지 못 한다.
따라서 REST API 이용에는, 구현 벤더가 제공하는 API 문서를 꼭 참조해야 하는 것이 일반적이다.
이런 레오나르도 리차드슨의 관점을 안다면, 그가 아래처럼 레벨3(HATEOAS)을 제시한 귀추를 이해할 수 있을 것이다.
REST 성숙도 모델
레오나르도 리차드슨(Leonard Richardson)은 REST가 얼마나 성숙했는지 알 수 있는 아주 유용한 모델을 제시했습니다. 이 모델에 따르면 REST의 성숙도는 다음 4단계로 구분됩니다.
- 레벨 0: 클라이언트는 서비스별로 유일한 URL 끝점에 HTTP POST 요청을 하여 서비스를 호출합니다. 요청을 할 때마다 어떤 액션을 수행할지, 그 대상(예: 비즈니스 객체)은 무엇인지 지정합니다. 필요한 매개변수도 함께 전달합니다.
- 레벨 1: 서비스는 리소스 개념을 지원합니다. 클라이언트는 수행할 액션과 매개변수가 지정된 POST 요청을 합니다.
- 레벨 2: 서비스는 HTTP 동사를 이용해서 액션을 수행하고(예: GET은 조회, POST는 생성, PUT은 수정), 요청 쿼리 매개변수 및 본문, 필요 시 매개변수를 지정합니다. 덕분에 서비스는 GET 요청을 캐싱하는 등 웹 인프라를 활용할 수 있습니다.
- 레벨 3: 서비스를 HATEOAS(Hypertext As The Engine Of Application State, 애플리케이션 상태 엔진으로서의 하이퍼미디어) 원칙에 기반하여 설계합니다. HATEOAS는 GET 요청으로 반환된 리소스 표현형에 그 리소스에 대한 액션의 링크도 함께 태워 보내자는 생각입니다. 가령 클라이언트는 GET 요청으로 주문 데이터를 조회하고 이때 반환된 표현형 내부 링크를 이용해서 해당 주문을 취소할 수도 있습니다. HATEOAS를 사용하면 하드 코딩한 URL을 클라이언트 코드에 욱여넣지 않아도 됩니다.
출처
https://johngrib.github.io/wiki/richardson-maturity-model/#fn:ric-114
'웹 개발 > 사용자 경험' 카테고리의 다른 글
[OpenID Connect] 카카오 로그인과 아마존 Cognito 연동 - Hosted UI 설정까지 (0) | 2022.09.15 |
---|---|
]UIUX[ 데이터 주도 UX의 용어 (0) | 2020.12.13 |
]UIUX[ 사용성 테스트 (0) | 2020.12.06 |
]UIUX[ 서비스를 성장시키는 법 - 데이터 주도 UX (2) (0) | 2020.11.19 |
]UIUX[ 서비스를 성장시키는 법 - 데이터 주도 UX (1) (0) | 2020.11.17 |