REST API 기초 이해

여리·2023년 7월 25일
0

최근에 좋은 경험을 할 수 있게 해준 면접이 있었다.
그리고 그 면접 내용에는 개발자라면 어느정도에 대해서 이해하고 넘어가야 할 관문이 필요한 지식이 있다. 그중 대표적인 내용 "REST API" !

얼마전까지는 에러를 마주한 나에 대해서 어떻게 해결할 것인지에 대한 블로그 내용이었다면 이번에 돌다리도 두드리고 가는 개념에 대해서 정리하며 다시 공부할 타이밍이다.

REST API에 대해서 깊게 공부할 필요성을 느꼈고 생각보다 아주 깊은 지식과 이해가 필요하다는 것을 다시 한 번 깨달았다.
그래서 이를 한 번에 정리할 수 있는 것이 아니라는 것을 깨달았고 단계별(?) 또는 분기하여 정리를 해야겠다고 생각하고 정리를 해본다.

그럼 시작해보자.
(참고로 이번 기초 이해는 생활코딩을에서 설명하는 기본적인 내용을 다시 한 번 정리하는 정도의 개념으로 기초이해를 다진다.)
🔗생활코딩 REST API 영상 링크

API

  • API : API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의합니다. API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있습니다.
    -출처 : aws.amazon.com

API의 예시를 들면

  • python
print("hello")
  • javascript
document.write("hello")

위 두가지 는 언어 별 브라우저에 hello라는 문자를 띄우기 위한 방법이다.
이 또한 API라고 할 수 있다.

API는 작동하는 방식에 따라서 4가지로 나뉘어져 있다.
1. SOAP API
2. RPC API
3. Websocket API
4. REST API

이번 내용에서는 REST API를 다룬다.

REST API

말그대로 직역하자면 REST는 Representational State Transfer의 줄임말입니다. REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의합니다. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환합니다.를 의미한다.(출처: aws.amazon.com)

특정기술을 의미하는것이 아닌 http를 이용한 통신을 할때 http의 잠재력을 최대한 활용하기 위한 모범적인 사례라고 볼 수 있다.
아래 이미지를 통해서 REST API의 표현을 참고할 수 있도록 해보자

(출처)생활코딩 youtube REST API 강의 내용 일부

위 이미지에서 table(표)을 Resource라고 표현하며 전체적인 활용 범위를 사용하기때문에 말그대로 '원천'이 된다.
그리고 table안에 해당되는 전체적인 data를 collection이라고 표현하며
collection에서 한 번 더 쪼갠 data를 Element라고 표현한다.

element(하나의 data 조각) ⊂ collection(element의 모음) ⊂ Resource(collection의 모음) 이 된다고 볼 수 있다.

위 이미지의 URI는 정보를 식별하는 이름일 뿐
결국 이를 이용할 줄 알아야 한다. 이는 아래 이미지로 이용할 수 있다.

Resource를 이용하는 용어를 method라고 한다.
method 안에는 CRUD라는 기능이 있으며 http를 활용하여 CRUD를 활용하는데 있어서 post,get,put 또는 patch, delete를 사용한다.
REST API는 http들의 method를 본래 용도에 맞게 사용하자는것도 중요한 목표중에 하나이다. (각 method별 내용에 대해서는 추가로 공부할 수 있길 바란다.) 그리고 (REST)API는 웹 브라우저에만 국한되지 않고 모바일 앱 등에서도 활용될 수 있다는 점!

그렇다면 응답에 대해서 살펴보도록 하자.

개발자도구(검사)->Network로 넘어가면 API사용에 대한 과정을 확인할 수 있다.


위 이미지를 보면 Request Headers, Response Headers 를 통해서 클라이언트에서 요구하는 내용과 서버에서 클라이언트에게 보내주는 내용에 대한 http의 세부내용을 확인할 수 있다. 어떤 method, StatusCode(상태코드), zotlduqn, application content type을json으로 사용했는지 등등등을 확인할 수 있다.

REST API는 깊게 파고들면 복잡하고 어려울 수 있지만 기초적인 이해 정도로 생각하면 간단한 권고 안이다.

결국 기계와 기계간에 http를 이용해서 통신할때 RESOURCE는 URI로, 행위는 METHOD로, 결과는 응답(상태)코드로 잘 활용하자는 의미정도로 시작해보면 좋을 것 같다.

추가적인 깊이와 이해에 대해서는 정리할 수 있는 기회에 디벨롭하여 정리해야겠다.

참고링크

🔗 AWS-API란 무엇인가요?
🔗 생활코딩 유튜브 영상-REST API

profile
beckend developer

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

유익한 글이었습니다.

답글 달기