본문 바로가기
내가 공부하려고 올리는/web

Web - REST API

by 결딴력 2021. 11. 22.
반응형

이번 글에서는 REST API에 대해서 알아보겠습니다.

 

REST API를 설명하기 위해

우선 API가 무엇인지 알아보겠습니다.

 

API란?

위의 그림으로 API가 무엇인지 알아보겠습니다.

 

리모컨은 TV의 기능을 사용하기 위해 존재합니다.

비단 리모컨만이 아니라도, 컴퓨터의 마우스나 키보드 역시 컴퓨터를 동작시키기 위해 존재합니다.

이러한 리모컨, 마우스, 키보드를 '제어장치'라 하고 'Interface'라고도 합니다.

 

이런 하드웨어적인 제어장치 말고도

소프트웨어적인 제어장치도 존재합니다.

 

예를 들어 웹 사이트에는 스크롤 바, 버튼과 같이 다양한 제어장치,

즉 인터페이스(Interface)가 존재합니다.

이러한 인터페이스를 UI(User Interface)라고 부릅니다.

 

앞서 설명한 제어장치들은 사람의 요청에 의해 기계를 제어하는 방식입니다.

하지만 사람과 기계 사이가 아닌 기계와 기계 사에서도 정보의 교환이 일어납니다.

 

예를 들어, 날씨 정보를 제공하는 기상청 서버가 있을 때,

날씨 정보를 제공하는 다양한 웹 사이트 및 어플리케이션들은 이 기상청 서버에

자료를 요청해 날씨 정보를 제공받습니다.

 

이러한 요청은 일정한 형식이 존재해야 합니다.

막무가내로 아무렇게나 요청을 하게 되면

기계는 이해할 수 없기 때문입니다.

 

정보를 요청하는 소프트웨어들은

정보를 제공받기 위해 지정된 형식에 맞춰 정보를 요청하고,

기상청 서버는 지정된 형식에 맞춰 쓰여진 정보를 인식해

날씨 정보를 제공하게 됩니다.

 

이처럼 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로

정보를 요청하고, 명령을 받을 수 있는 수단을

API(Application Programming Interface)라 부릅니다.

 

그렇다면 REST API란 무엇일까요?

 

 

REST API

REST API는 과거의 복잡한 SOAP 형태의 API를 대체한 API로

REST란 형식의 API를 말합니다.

 

REST의 가장 중요한 특성은 

각 요청이 어떤 동작이나 정보를 위한 요청인지를

요청의 모습 자체로 추론이 가능하단 것입니다.

 

이러한 특성은 요즘 개발에서 중요한 의미를 갖습니다.

최근에는 개발이 주로 협업을 통해 이루어지기 때문에

요청의 형식만으로 어떤 정보를 요청하는 것인지를 추론할 수 있다면

협업하는 과정이 더욱 편리해지기 때문입니다.

 

서버에 REST API로 요청을 보낼 때

HTTP(Hyper Text Transfer Protocol)란 규약에 따라 신호를 전송합니다.

 

이 HTTP로 요청을 보낼 때 여러 메소드가 존재하는데

REST API에는 주로 'GET, PUT, POST, DELETE, PATCH'를 사용합니다.

 

각각의 메소드가 특정 용도에 제한되어 있지는 않습니다.

POST란 메소드로 데이터를 읽고 전송하고 수정하고 지우는 것이 가능합니다.

하지만 REST API란 요청의 형식만으로도 어떤 정보를 요청하는 것인지

추론이 가능해야하기 때문에, RESTful한 API를 만들기 위해서는

이러한 메소드를 목적에 따라 구분해서 사용해야 합니다.

 

각각의 메소드는 다음과 같은 목적을 갖습니다.

  • GET : 데이터를 읽는데 사용
  • POST : 새로운 데이터를 추가하는데 사용
  • PUT/PATCH : 새로운 정보로 기존 데이터를 업데이트 하는데 사용
  • DELETE : 데이터를 삭제하는데 사용

 

PUT과 PATCH는 비슷한데 쉽게 다음과 같은 차이점을 갖습니다.

  • PUT : 자원의 내용을 모두 업데이트 할 때
  • PATCH : 자원의 내용 중 일부를 업데이트 할 때

 

자원을 구조와 함께 나타내는 표현 방식을 URI라 합니다.

따라서 REST API란 HTTP 요청을 보낼 때,

어떤 URI에 어떤 메소드를 사용할지 개발자들 사이에 정해진 특정 형식을 의미합니다.

 

때문에 어떤 언어를 써서 어떤 프로그램을 만들던간에

만들고자 하는 프로그램이 소프트웨어간에 HTTP로 정보를 주고 받는 부분이 존재한다면,

이러한 REST API를 준수해서 만드는 것이 좋은 개발 방향이 될 것입니다.

 

 

 

 

오늘은 API와 REST API가 무엇인지 간략하게 알아봤습니다.

내용에 오류가 있거나 궁금한점이 있다면 댓글이나 메일 부탁드리겠습니다!

 

 

반응형

댓글