본문 바로가기
개발자 기술 면접/기타 질문

[기타] REST, REST API, RESTful이란?

by se-black 2023. 12. 27.
REST의 정의

- "Representational State Transfer" 의 약자.
- 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다.
- 즉, 자원(resource)의 표현(representation)에 의한 상태 전달을 뜻합니다.

  • 자원: 해당 소프트웨어가 관리하는 모든 것 ( 문서, 그림, 데이터, 해당 소프트웨어 자체 등 )
  • 표현: 그 자원을 표현하기 위한 이름 ( DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함 )
  • 상태 전달: 데이터가 요청되는 시점에 자원의 상태를 전달한다. ( JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적 )

- REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일입니다.
- REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나 입니다.


REST의 개념

- 어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 GET, POST 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태(Representation of Resource)로 표현됩니다.


API(Application Programming Interface)의 개념

- API란 응용프로그램과 운영체제 간의 통신을 연결해주는 인터페이스로, 개발과 통합 작업에 필요한 프로토콜 세트를 의미합니다.


REST API의 정의

- REST의 특징을 기반으로 서비스 API를 구현한 것입니다.
- 최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 어플리케이션을 여러 개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 기업 대부분은 REST API를 제공합니다.

  • REST API의 특징
    • REST API의 가장 큰 특징은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능한 것입니다.

REST API와 RESTful API의 차이
- RESTful은 REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 합니다.
- 즉, REST의 원리를 잘 따르는 시스템을 RESTful이란 용어로 지칭하게 됩니다.

 

REST API를 간단히 요약하면
- URI는 정보의 자원만 표현하며, 자원의 행위는 HTTP Method에 명시한다는 것입니다.

 

※ 전체적인 요약 ※
- REST는 HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 자원을 처리하도록 설계된 아키텍처입니다.
- 이러한 REST를 기반으로 만든 API를 REST API라고 부릅니다.
- RESTful 하다는 것은, REST 원리를 잘 따르는 시스템을 RESTful 하다고 표현합니다.
728x90

'개발자 기술 면접 > 기타 질문' 카테고리의 다른 글

[기타] HTTP Method란?  (0) 2023.12.30
[기타] 프로세스와 스레드의 차이  (0) 2023.12.30
[기타] 쿠키와 세션의 차이  (0) 2023.12.27
[기타] HTTP와 HTTPS  (0) 2023.12.26
[기타] 디자인 패턴  (2) 2023.12.26