TIL. RESTful API

Teasan·2021년 1월 7일
0

API

목록 보기
1/2
post-thumbnail

Rest 란?

"Representational State Transfer” 의 약자
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 즉, 자원(resource)의 표현(representation) 에 의한 상태 전달. 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식이다. REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.

API 란 무엇인가?

기계와 기계, 소프트웨어와 소프트웨어 사이에서도 수많은 요청과 정보 교환이 이루어지는데 이들 사이에서도 소통할 수 있는 창구가 필요하다.

예를 들면, 기상 정보가 관리되는 기상청 서버가 있고, 날씨에 관련된 서비스를 제공하는 다양한 웹사이트들, 앱들이 이 기상청 서버로부터 실시간으로 날씨 정보를 요청해서 받아간다. 미리 작성된 소프트웨어를 통해서 서버에 정보를 요청하는 지정된 형식을 통해 받아가는 것이다. 이처럼 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 API(Application Programming Interface)라고 한다.

REST API의 정의

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

REST API의 특징

사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다. REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다. 즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있다.


Rest API란 무엇인가?

Rest API에 대해서 이야기하려면 일단 RESTAPI에 대한 요약 설명이 필요하겠습니다. API(Application Programming Interface 의 약자로서)는 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 말합니다. 그리고 REST는 Representational State Transfer 의 약자로서 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미하죠. 즉, 자원(resource)의 표현(representation) 에 의한 상태 전달을 뜻합니다. REST의 가장 중요한 특징은 각 요청이 어떤 동작이나 정보를 위한 건지 그 요청의 모습 자체로 추론이 가능하는 점입니다.

Rest API는 정보들이 주고 받아지는데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식을 의미합니다. 기술이나 제품이 아니라 일종의 형식이기 때문에 어떤 프로그램 언어를 쓰든 무슨 프레임워크를 쓰든 이 정해준 형식에 따라서 기능을 만들면 됩니다.

그러니까, REST API는 HTTP 요청을 보낼 때 어떤 URL에 어떤 메서드를 사용할지 등등의 정해진 형식이고 이 형식은 개발자들 사이에서 이루어지는 약속과 같다고 말할 수 있을 겁니다.

그렇다면, Restful한 API는 무엇일까?

앞서 이야기 했듯이 Rest API는 정보들이 주고 받아지는데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식을 의미합니다. 기술이나 제품이 아니라 일종의 형식이기 때문에 어떤 프로그램 언어를 쓰든 무슨 프레임워크를 쓰든 이 정해진 형식에 따라서 기능을 만들면 됩니다. 더 자세히 설명해보자면, 서버에 REST API로 요청을 보낼 땐 HTTP라는 규약에 따라서 신호를 전송합니다. 이 HTTP로 요청을 보낼 때도 여러 메소드가 있는데 이 메소드들을 목적에 따라 구분해서 사용해야하고 이 목적에 따라 구분해서 사용하는 것을 바로 RESTful한 API라고 말할 수 있습니다. 예를 들면, GET이라는 메서드가 있다면 주로 데이터를 읽고 조회하는데 사용합니다. 누군가 서버에 요청을 보낼 때 GET이란 메서드를 사용한다면 다른 개발자들은 이 요청이 읽고 조회하는데 사용될 거라는 것을 추론할 수 있을 겁니다.

결론적으로 말하자면, RESTful하게 만든 API는 요청을 보내는 주소 만으로도 무엇을 위한 요청인지 대략적으로 추론이 가능하다는 뜻입니다.

출처
얄팍한 코딩사전

profile
일단 공부가 '적성'에 맞는 개발자. 근성있습니다.

0개의 댓글