다양한 개발 지식

API란? : REST API와 RESTful API의 차이는?

pearl.k 2023. 7. 14. 17:48

 

 

1. API (Application Programming Interface)

프로그램 간 상호작용하기 위핸 매개체를 말한다. 클라이언트의 요청을 서버에 잘 전달하고 서버의 결과물을 클라이언트에게 잘 돌려주는 역할을 한다. 좀 더 자세하게 설명하면, API는 프로그램 간 소통하는데 사용되는 규칙과 도구의 집합을 의미하며, 소프트웨어나 애플리케이션 사이에 데이터 교환 / 서비스 요청 / 응답받을 수 있는 인터페이스이다.

API에는 수많은 API들이 있고, 다양한 형태로 나타난다. 백엔드 개발자로서 알아야 하는 API 몇 가지를 소개하자면,

(1) 웹 API : 웹 기술을 사용하여 데이터를 주고 받는 API 이다. 주로 HTTP 프로토콜을 통해 요청(Request)와 응답(Response)을 주고 받으며 이에 해당하는 예시로는 RESTful API 등이 있다.

(2) 라이브러리 API : 프로그래밍 언어나 플랫폼에 특정한 기능을 사용할 수 있도록 함수, 클래스, 모듈 등을 제공하는 API 이다.

(3) 운영체제 API : 운영체제와 상호작용하는 프로그램을 개발하기 위한 API로, 파일 시스템 접근, 네트워크 통신, 프로세스 관리 등의 기능을 제공한다.

 

2. REST API

REST는 (Representational State Transfer) 를 줄인 표현으로, 자원을 이름으로 구분하여 자원의 상태를 주고받는 API 방식을 말한다. 웹의 장점을 최대한 활용하는 API 이다. 자원을 이름으로 구분해 자원의 상태를 주고 받는 API 방식을 뜻한다.  URL의 설계 방식을 의미하며 위에서 언급한 "자원"을 URL에 표시하기 때문에 명확하고 이해하기 쉽다.  (많이 쓰임)

 

3. REST API의 장단점

  • 장점
    • URL만 보고 무슨 행동을 하는 API인지 명확하게 알 수 있다. 특히 주소와 메서드만 보고 요청의 내용을 파악할 수 있다.
    • HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있다.
  • 단점
    • HTTP 메서드 (ex. get/post) 방식 개수에 제한이 있다.
    • REST API 설계를 위한 공식적인 표준 규약이 없다.

REST API에는 이러한 장단점이 존재하나, "주소와 메서드만 보고 요청 내용을 파악할 수 있다는 강력한 장점" 때문에 많은 개발자들이 이 설계 방식을 채택하고 있다.

 

4. REST API를 사용하는 기본적인 규칙

  • (1)  URL에 동사를 쓰면 안된다. 동사 대신 자원을 표시해야 한다. (get, show와 같은 동작을 표현하는 동사를 넣으면 안된다. HTTP 메서드와 혼동할 위험이 있기 때문이다.)
  • (2)  동사는 HTTP 메서드로 표현해야 한다. HTTP 메서드는 서버에 요청하는 명령어, 방법을 나눈 것으로 CRUD 역할을 담당한다. (CRUD : Create - Read - Update - Delete 기능을 묶어서 부르는 말)

 

5. RESTful API는 뭘까?

RESTful API는 앞에서 설명한 REST 원칙을 준수하는 API를  말한다. REST API와 RESTful API가 서로 같은 것인지 다른 것인지 헷갈릴 수 있다. RESTful API는 REST 아키텍쳐의 원칙을 따라 설계된 것이므로 REST API 라고 부를 수 있다.

 

'다양한 개발 지식' 카테고리의 다른 글

[NETWORK] HTTP 개관  (0) 2023.07.12