본문 바로가기

IT공부/스프링관련 정보

REST API란?

REST API란?

REST API는 정보들이 주고 받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식이다. 예를 들면 우체국 택배송장처럼 택배를 보내기 위해 이용자들은 송장을 채워넣어야 한다. 어떤 기술이나 제품이 아니라 형식이기 때문에 어떤 프로그래밍 언어를 사용하던, 무슨 프레임워크를 사용하던 이 형식에 맞춰서 기능을 만들어 내기만 하면 된다. 

API란?

어떤 기계를 만들면 사용자가 그 기능들을 제대로 활용할 수 있도록 제어장치를 만들어야 한다. 예를 들어 TV는 사용자가 TV를 켜거나 끌 수 있도록 리코컨이 존재한다. 이런 것들을 인터페이스라고 한다. 기계와 인간의 소통창구이다. 소프트웨어적으로 설명하자면 컴퓨터나 스마트폰을 켜면 사용자들이 프로그램이나 사이트, 앱을 원하는 대로 제어하고 정보를 볼 수 있도록 버튼, 스크롤바, 슬라이더, 브라우저 창 등 소프트웨어적인 장치들이 있다. UI란 말이 있다. 소프트웨어와 인간의 소통을 위한 User Interface인 것이다. 하지만 IT 세계에서는 직접 보이지 않는 영역들이 더 많다. 기계와 기계, 소프트웨어와 소프트웨어 사이에도 수많은 정보요청과 정보교환이 이루어 지고 있다. 이들 사이에서도 소통할 수 있는 창구가 필요하다. 기상정보가 관리되는 기상청 서버가 있다. 포털이나 기타 날씨에 관련된 서비스를 제공하는 다양한 웹사이트들, 앱들이 이 기상청 서버로부터 실시간으로 날씨정보를 요청해서 받아간다. 미리 작성된 소프트웨어를 통해서 기상청 서버와 포탈서버 사이에 정보들이 요청되고 전송되는 것이다. 이 기상청 서버에게 정보들을 요청하는 지정된 형식이 있어야 한다. 여기에 날짜, 여기에 지역, 여기에 조회할 내용 이렇게 표시해서 이 주소로 정보를 요청하면 이렇게 답이 올거라는 공개된 메뉴얼이 있으면 누구든 이걸 참조해서, 기상청 정보를 활용하는 소프트웨어를 만들 수 있을 것이다. 이처럼 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 "Application Programming Interface" API라고 한다. 꼭 네트워크 상에서만 API가 있는 것은 아니다. 로컬 프로그램인 브라우저는 Web API를 통해서 자바스크립트로부터 특정 동작들을 지시받기도 한다. 윈도우에는 개발자들이 프로그램을 개발할 때 시스템이나 하드웨어에 대한 세세한 지식 없이도 지정된 명령어로 윈도우에서 동작을 수행할 수 있도록 소프트웨어를 짤 수 있는 Window API를 제공한다. '이 함수를 넣으면 윈도우가 이렇게 해준다'라는 걸 알면 개발자는 그 명령어들로 코드를 짜면 되는 것이다. API란 바로 이런 것이다. 

 

REST API는 REST란 형식의 API이다. REST의 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다. 

 

REST API란?

Representational State Transfe라는 용어의 약자이다. 자원을 URI로 표시하고 해당 자원의 상태를 주고 받는 것을 의미한다.

 

REST의 구성요소는

  • 자원(Resource) : URI
  • 행위(Verb) : HTTP METHOD
  • 표현(Representations)

로 이루어져 있다.

 

즉 REST는 URI를 통해 자원을 표시하고, HTTP METHOD를 이용하여 해당 자원의 행위를 정해주며 그 결과를 받는 것을 말한다.