프로그래밍/개발 지식

[개발 지식] API와 REST API

I'm_ 2024. 1. 8. 14:04

들어가며

오늘은 프로그래밍을 배우기 시작한 후로 수없이 들어봤지만 한번도 공부해보지 않았던 API와 REST API에 대해서 정리해보는 시간을 가졌다.

 

API란?

개념

API(Application Programming Interface)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다.
일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다. (위키백과)

 

좀 더 쉽게 정리하자면, API는 식당의 점원과 같은 역할로 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)을 정리하고, 주문(명령)을 받으면 요리사(응용프로그램) 상의하여 음식(명령에 대한 값) 전달한다. 즉, 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이다.

출처: https://yozm.wishket.com/magazine/detail/53/

 

역할

  1. 서버와 데이터베이스에 대한 출입구 역할을 해서 허용된 사람에게만 접근성을 부여한다.
  2. 애플리케이션(스마트폰 어플 혹은 프로그램)과 기기가 원활히 통신할 수 있도록 돕는다.
  3. 모든 접속을 표준화하여 기계/운영체제와 상관없이 누구나 동일한 액세스를 얻을 수 있다. 

 

REST API란?

개념

REST(Representational State Transfer) API는 REST의 원리를 따르는 API를 말한다.

 

REST

REST(Representational State Transfer)는 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다.

  • 자원의 표현
    • 자원 : 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터, 해당 소프트웨어 자체 등)
    • 자원의 표현 : 그 자원을 표현하기 위한 이름
  • 상태(정보) 전달 
    • 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달
    • 일반적으로 JSON 혹은 XML을 통해 데이터를 전달

구체적으로, HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)을 통해 해당 자원에 대한 CRUD Operation(Create, Read, Update, Delete)를 적용한다. 

 

나가며

개념 정리를 위해 다양한 블로그 글을 읽었지만 직접 만들어보지 않아서인지 확실히 개념이 와닿지는 않는다.

내가 이해한대로 짧게 정리해보자면, API는 프로그램들의 상호작용을 돕는 중간 역할을 하는 매개체이고, REST API는 그 상호작용의 방식이 '데이터 등의 자원을 HTTP 요청 메서드를 통해 CRUD'하는 방식인 것이다.

이해가 부족하고 어려운 부분은 직접 프로젝트를 해가며 채워나가야 겠다.


참고자료