HTTP) 초보자를 위한 REST 설명회

2023. 2. 8. 22:15WEB

REST란 확장과 유지보수가 쉽고 유연한 웹 서비스/API를 만들기 위한 가이드라인(아키텍처 스타일)이며, 이러한 가이드라인을 준수해 만든 API를 RESTful API라고 부릅니다.

REST는 인터넷을 통해 서버의 자원이나 기능을 사용하기 위해 외부에 노출시킬 인터페이스를 HTTP의 특징을 살려서 알기 쉽게 표현하기 적합합니다.

 

REST에는 다음과 같은 특징이 있습니다.

  • 서버-클라이언트 계층 구조
  • 무상태(Stateless)
  • URI로 표현되는 자원
  • HTTP 메소드(CRUD 작업)
  • Json 또는 Xml로 표현되는 표현 형식
  • 캐시 가능

이를 더욱 쉽게 핵심만 추리자면 다음과 같이 요약할 수 있습니다.

  1. 자원을 URI로 표시하고
  2. 자원에 대한 동작을 HTTP 메소드로 접근할 수 있게 하며
  3. 동작을 실행한 결과와 알맞은 HTTP Code를 응답

REST하게 설계된 API의 장점으로는 HTTP로만 구현 가능하며, stateless하고 메소드별로 캐싱이 가능하다는 특징으로 고성능의 분산처리 시스템에서 유용하게 사용될 수 있어 실제로 MSA의 통신은 REST API를 통해 이루어집니다.

하지만 메소드의 다양성 측면이나 애매한 표준으로 인해 API의 객관적인 품질 검증이 어렵습니다.

 

반응형

RESTful API 

RESTful API
RESTful API

위에 설명한 REST의 가이드라인을 잘 준수할 때, RESTful API라고 부릅니다. 문제는 상기 서술한 것처럼 큰 흐름으로서의 가이드라인은 있으나, 객관적인 품질 표준은 없기 때문에 자원의 이름, 적합한 메소드(Put, Post, Patch 등)의 선정, 적절한 응답 코드(4xx, 5xx 등)처럼 개발자의 주관이 많이 관여하는 특성상, API가 잘 설계되었는지 아닌지를 판단하기가 어렵습니다.

 

해당 용어는 상황에 따라 종종 모호할 수 있으며, 다양한 맥락에서 혼재되어 사용됩니다.

중요한 것은 REST 아키텍처가 추구하는 방향성(확장성, 유지보수성, 유연성)과 제약 조건을 이해하고 각 서비스의 특정 요구사항을 충족할 수 있는 API의 설계임을 기억하시기 바랍니다.

반응형