본문 바로가기

🌼 TIL

🍈 [TIL] Rest API란 무엇인가?

오늘은 Restful API에 대해 공부해보겠습니다.

 

오늘의 질문

: Restful API에 대해 설명해주세요. GET,POST 외에 알고있는 메소드와 그 기준을 설명해주세요. RESTful API 가 아닌 것들은 어떤게 있나요?

 

답변 : 먼저 REST API에서 REST는 정보들이 주고받아지는데에 있어서 개발자들이 널리 쓰이는 일종의 형식입니다. 그리고 API란 것은 티비를 켤때 명령을 내리기위한 도구로 리모컨을 사용하는 것 처럼 API는 인터넷상에서 데이터를 전송하고 이용할 수 있게 하는 소프트웨어 인터페이스를 의미합니다. 

REST API를 사용하는 이유는 REST기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수와 운용을 편리하게 할 수 있기 때문입니다. 

그러므로 REST API는

HTTP를 잘사용하기위해, URI와 HTTP메소드를 사용해서, URL로 어떤 자원에 접근할 것인지, 메소드로 어떤 행위를 할것인지 표현하여 설계된 API를 말합니다.

 

또한 API가 RESTful로 간주되기 위해서는 몇가지 조건이 있는데 그 중 가장 중요한 건,

  • 클라이언트-서버 커뮤니케이션: 요청 간에 클라이언트 정보가 저장되지 않으며, 각 요청이 분리되어 있고 서로 연결되어 있지 않음
  • Stateless(무상태)입니다.

클라이언트와 서버간 종속적이지 않다는 말입니다.

즉, 서버는 클라이언트의 정보를 저장-유지하고 있지않아, 같은 사람이보낸 정보도, 같은사람이 보냈는지 정보를 유지하고있지 않다는 말입니다.

 

이말은 즉, 클라이언트가 요청시 마다, 자기 정보를 보내야하고, 서버는 받은 정보로 클라이언트의 정보를 확인합니다.

 

따라서,  

  • 멀티플랫폼 지원이 용이하고,
  • Stateless한 RESTful API는 Client의 요청(호출)을 어느 Server라도 동일하게 처리할 수 있고
  • 즉, 어떤 Server라도 Client들의 요청에 응답할 수 있다는 것은, 서버 환경이 분산되었든 아니든, Client쪽에서는 Server쪽에 신경 쓸 필요 없이 API 호출만 하면 원하는 결과를 받을 수 있다는 점에서 RESTful API가 활용되는 것입니다.

REST API에는 리소스에 대한 CRUD 동작을 HTTP메소드로 수행하는데 여기에 HTTP 메소드에는 GET,POST,PUT,DELETE가 있습니다.

여기서 GET과 POST외에

PUT은 데이터를 수정할 때 사용하는 메서드입니다. PUT은 POST와 동일한 URL로 요청을 하지만, 메소드가 다르기 때문에 다르게 동작합니다.

DELETE는 데이터를 삭제하고 싶을 때 사용하는 메서드입니다.

 

RESTful API가 아닌 것들에는 SOAP API가 있습니다. SOAP API는 XML 기반으로 하여 보안성이 높고 다양한 프로토콜을 지원할 수 있지만, 복잡하고 처리속도가 느린 단점이 있습니다. 또한 GraphQL도 REST API를 대신할 수 있습니다. GraphQL은 클라이언트가 필요한 데이터만 요청하도록 해 데이터 전송량을 줄일 수 있지만, 복잡한 쿼르를 작성해야 하므로 러닝커브가 높을 수 있습니다.