REST API가 무엇일까?

Moonchop·2022년 1월 26일
0

Node.js

목록 보기
1/1



누군가 나에게 "API가 뭐야?" 라고 물어본다면, 요청을 통해 원하는 데이터들을 얻는 것이라고 대답할 것이다. 개념을 잘 모르기 때문에 얼버무려서 이런 대답이 나온다고 생각했다. 그래서 API, REST API가 무엇인지 내 머릿속에 정리하기 위해 포스팅을 통해 공부하려고 한다.

이미지 출처 : 구조 img

🛑REST API는 뭘까?

한번은 들어봤던 단어지만, 개념을 정확히 설명할 수 없는 사람들도 꽤 있을 것이다. (그중에 본인도 포함이다)
REST API를 파헤쳐보기 전에 API가 무엇인지 살펴보자.

✔API란?

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

여기서 인터페이스는 서로 다른 두 개의 시스템이 소통할 때의 접점(=매개체)이다. 이해가 잘 되지않는다. 예시를 들어보자.

밑에 그림처럼 기상청 서버(파란박스)에게 얻고싶은 정보(date, place 등)를 표시하여 주소로 요청한다. "17degree"라는 답이 올 것이라는 공개된 메뉴얼이 있으면 누구든 이를 활용해 기상청 정보를 활용해 소프트웨어를 만들 수 있다.

이미지 출처 : API Youtube

API 정의 정리

즉, 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 API라고 한다.
수단은 위에서의 인터페이스라고 생각하면 될 것 같다.

✔REST API란?

프론트엔드 웹에서 서버에 데이터를 요청하거나 배달 앱에서 서버에 주문을 넣는 등의 서비스들에서 최근 널리 사용되는 것이 REST란 형식의 API이다.

REST의 대표적 특성

각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론 가능하다. 즉, RESTful하게 만든 API는 요청을 보내는 주소만으로도 어떤 요청인지 대략 파악이 가능하다는 뜻이다.

기능만 중요하게 생각하면 동작만 하면 되므로 REST를 안써도되지만, 만약 사용하지 않는다면 나중에 이 API를 이용하는 개발자는 힘들 것이다.

CRUD(CREATE / READ / UPDATE / DELETE)

이 4개를 가지고, CRUD=Create, Read, Update, Delete를 할 수 있다.

이미지 출처 : CRUD img

REST API로 서버에 요청을 보낼 때, HTTP의 규약을 따른다. POST, GET, PUT, DELETE, (PATCH)의 메소드를 사용한다는 뜻이다.

POST, PUT, PATCH에는 body라는 주머니가 있어서 GET, DELETE보다 많은 정보를 보낼 수 있고, 더 안전하다.
각각의 기능들이 어떤 용도에 사용하도록 제한되어 있지 않다. POST로 read/ write/ delete/ update를 모두 할 수 있다. 그러나 위에서 말했듯이 각 요청의 의도를 쉽게 알도록 API를 만들기 위해서는 개발자가 목적에 따라 사용해야한다.

REST 메소드


이미지 출처 : Method img

  1. GET : 데이터를 조회하는데 사용한다.(READ)
    ex) http://(도메인)/computer/languages 를 통해 컴퓨터의 언어들을 본다는 요청이라는 것을 알 수 있다.

  2. POST : 새로운 정보를 추가하는데 사용한다.(CREATE)
    ex) http://(도메인)/computer/languages 이렇게 URI를 만들어 post 요청을 통해 body에 새로운 language를 담아 보낸다.

  3. PUT(PATCH) : 정보를 수정하는데 사용한다.(UPDATE)
    POST 처럼 body에 담아서 보내는 것은 똑같지만, http://(도메인)/computer/languages/javascript 에서 javascript를 추가하여 수정할 새 정보를 body에 담는다.

  4. DELETE : 정보를 삭제하는데 사용한다. PUT 방식과 같다.

여기서 put은 정보를 통째로 바꿀때, patch는 정보 중 일부를 변경할 때 사용한다.

REST API 정리

HTTP 요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할지 개발자들끼리 지켜지는 약속이다.

profile
개발의 흔적을 기록하기

0개의 댓글