RESTful api에 대해서

권강민·2021년 3월 17일
0

항상 어느 회사의 자격요건 혹은 이 부서에서 무슨 일을 하는지에 대해서 살펴보면 RESTful api라는 말이 거의 빠지지 않았던 것 같다. 그래서 검색을 해보면 그 때 당시엔 아 그렇구나 하고 넘어갔었다. 뭐 예를 들면 HTTP protocol을 이용해서 뭔가 주고받는 거?? 정도로 이해하고 넘어간 듯 싶었다.

반성한다.. 그렇게 살지 말자.. 팔거면 제대로 파든가..

그래서 이 글을 처음으로해서 앞으로 중요하다고 생각되는 건 개인 노션 말고도 velog에도 기록을 해보려고 한다. 개발자로서의 삶을 살아가기로 했으면

내가 삽질을 했다면 기록해서 남은 삽질하게 하지 말자

커먼컴퓨터 인턴쉽 당시 멘토 였던 민호님께서 해주신 말씀이다. 당시 처음 접한 Docker 및 수두룩 빽빽히 알 수 없던 코드들로 작성되어진 머신러닝 코드들에 좌절한 인턴들을 위해서 해주신 말씀이다. 저 말은 그 이후로 일종의 개발자로서의 좌우명이 된 것 같다.

사족은 여기까지 하고..

이번에 내가 정보를 획득한 획득처는 '얄팍한 코딩사전' 유튜브였다. 매우 알기 쉽게 설명해주셨다고 생각한다. 다른 자세한 이야기들은 내가 또 구글링해보고 더 추가해보려고 한다.

API가 뭐야?

일단 API에 대해서 알아보자. 우리가 우체국이나 편의점에 가서 택배를 보내려고 할 때 송장을 쓴다.
뭐 이런거 많이 보았을거다. 보내는 사람, 전화, 주소 등등 규약이 있는, 정해진 폼이 있다. 이걸 우리는 앞으로 Interface라고 부를거다. 자 이런게 우리 소프트웨어 혹은 컴퓨터에서도 볼 수 있다. 우리가 이용하는 브라우저, 애플리케이션 등등은 사용자가 사용하는 일종의 형식이 있다. 그걸 UI(User Interface)라고 한다. 자 그럼 사용자 인터페이스도 있으니까... 앱 끼리는, 소프트웨어끼리는 그런거 없나? 그게 바로 API(Application Program Interface)다.

그래서 REST는 뭐야 그러면?

쉬는 api야...제발 이런거 하지말자...
RESTapi 혹은 RESTful 하다는 건, REST라는 이름의 형식이다. 과거에는 이 방식 대신 SOAP 방식을 이용했다 한다. 그건 나중에 또 알아보겠다.
REST의 가장 중요한 개념은 각 요청이 그 모습 자체로 어떤 기능을 하는지 추론할 수 있다는 점이다. 예를 들어서,

https://(도메인)/1  # 이건 학생의 이름을 불러오는 요청
https://(도메인)/hello # 이건 학생의 성적을 불러오는 요청
https://(도메인)/hahaha # 이건 어떤 과목을 듣고 있는지 불러오는 요청

위와 같은 요청은 사실 가능한 요청이긴하다. 혼자 개발할거면 가능은하다. 하지만 개발자는 절대 혼자 일할 수 없다. 협업은 필수이다. 협업을 떠나서 저렇게 요청을 만들면 이해 자체가 불가능하다. 그래서 요청 자체로 추론 가능한 api를 만들어야 개발자들이 이해하고 다른 곳에서도 써 먹을 수 있는 것이다.

서버에 RESTapi를 요청을 보낼 때는 HTTP 프로토콜을 따르는데, RESTapi 에서는 GET/POST/DELETE/PUT 또는 PATCH를 이용한다.

자 그럼 GET으로 요청을 보내도 되는걸 굳이 POST로 보내는 이유는 뭘까?
하지만 그게 GET의 본래 요청 목적일까? GET으로 만들었으면 그 요청에 맞는 기능을 해야한다.
즉,
RESTful 하다는 의미는 누구든 각 요청의 의도를 쉽게 파악할 수 있도록 이들의 목적에 따라 구분해서 사용해야 한다.

GET : 데이터를 read, 조회하는데 사용
POST : CREATE, 새로운 정보를 추가하는데 보통 사용
PUT or PATCH : UPDATE
DELETE : 데이터를 삭제하는 요청

뭐 이런식으로 말이다.

이번에 RESTful api 라는 걸 정리하면서 그런 생각이 들었다. '아 정말 선대 개발자들이 서로간의 협업, 혹은 이해를 위해서 많은 노력을 기울였고 그 노력의 결실 중 하나가 REST방식일 수도 있겠구나'라는 생각이였다..

흔히 지식은 남들에게 설명해주려고 할 때 본인이 더 배운다는 말이 있는데. 내 블로그에서 이렇게 나름대로 설명하니까 정리가 잘 되는 느낌이다. 앞으로도 잘 써먹어야겠다.

0개의 댓글