본문 바로가기
개발 이모저모

제대로 이해하는 RESTful - API

by 코린이의 세계 2024. 8. 26.
API가 무엇일까

REST - API를 배우기 전에 API가 무엇인지 다시 정리해보자 한다.

https://codingworld2002.tistory.com/18

 

API가 뭘까?

https://youtu.be/ckSdPNKM2pY?si=xS4cIt-5GQYixcyz 쉽게 말하자면 "메뉴판"이다.예를 들어 네이버라고 치자. 네이버에 날씨 부분이 있다. 네이버는 기상청의 API를 가져와서 화면에 띄울 것이다. 물론 하루마

codingworld2002.tistory.com

(정리해 둠)

> 요약하자면, 결국 특정 규칙이 존재하는 "메뉴판"인 것이다. 


https://www.youtube.com/watch?v=fB3MB8TXNXM&t=26s

(이 영상을 참고해서 정리했다. 고마워요 코딩사전!)

 

 RESTful - API는 API 중에서 오늘날 가장 널리 사용되는 것이다.

API가 "A는 요청하고 B는 받는다"라는 규칙을 가진 메뉴판이라면

 RESTful - API는 "A가 어떤 방식으로 요청하고 B가 어떤 방식으로 응답을 받을지 지정하는 형식"라고 여길 수 있다.

쉽게 말해서 일정한 통신 규칙을 말하는 것이다. 근데 이 규칙이 굉장히 직관적이라서 많이 쓰이는 것이다.


디테일한 설명

API는 다음과 같은 기능을 하는데..

  • 추가
  • 조회
  • 업데이트
  • 삭제

이렇게 볼 수 있다.

코드로 표현하면 다음과 같을 것이다.

HTTP 프로토콜을 이용해서 뒤의 API를 가져오는 것이 될 것이다. 앞에 있는 명령어는 추가할지, 조회할지, 업데이트할지, 삭제를 할 것인지 정해주는 명령어라고 이해하면 된다. 

이때 API가 URL의 형식을 띠고 있다. 네이버를 예시로 들어보자.

이건 네이버의 날씨 파트이다. 우리가 날씨에 대한 코드를 하나하나 바꾸는 일을 할 수 있겠지만, 그건 너무 비효율적일 것이다. 그래서 "기상청"이 만들어둔 날씨 API를 가져와서 화면에 띄우면 편하다. 코드로 생각하면 그냥 GET 해버리면 끝이기 때문이다. 또한 형식으로 따지면 특정 URL이 될 것이다. (클릭하면 URL이 자동으로 바뀐다.)


또한, 데이터를 가져올 때의 파일 형식은 .json으로 많이 가져온다. 파일이 가볍고 많은 양을 담을 수 있기 때문이다.

그리고, 데이터를 가져올 때에는 전체적인 데이터를 가져오는 것이 아니라 특정 데이터만 가져오게 만들어야 한다. 만일 전체적인 데이터를 가져오게 된다면 CPU 부하가 일어날 수도 있기 때문이다. (데이터 양이 많다면)

RESTful - API의 중요한 부분

앞에서 설명하지 않은 RESTful - API의 중요 부분을 설명하고자 한다.

1. 요청을 처리한 결과를 알려야 한다.

RESTful - API에서는 클라이언트와 서버와의 통신 결과를 알려주는 것이 중요하다.

앞에 번호로 결과에 대한 이슈를 정한다. 200번대는 성공적인 응답이다. 400번대는 클라이언트선에서 오류가 발생했다는 뜻이다. 500번대는 서버 측에서 오류가 발생했다는 뜻이다.

이런 일련번호를 매겨서 현재 코드에 대한 결과를 알려야 한다.

2. 상태가 없는 통신

서버는 클라이언트에 대해 아무것도 기억하지 말아야 한다. 물론 캐싱을 통해 불필요한 자원 낭비를 막을 수 있다.

또한 한 번의 통신만 하고 그 통신에 대해 기억을 하지 못하기에, 클라이언트가 몇 번을 반복해서 요청해도 항상 똑같은, 필요한 정보를 서버가 보내야 한다.

3. 캐싱

클라이언트이든, 서버든 "특정 요청"에 대한 응답을 캐싱해 두면 불필요한 요청, 응답을 안 해도 좋다.

그래서 캐싱을 미리 해두는 것이 효율적이다. (특히 반복적이고 중요한 통신)


 

결론

RESTful - API는 오늘날 가장 널리 쓰이는 "규칙"인 것이고 이 규칙은 정말 중요하다.

규칙이 없으면 개발자들끼리 소통이 제대로 이루어지지 않기 때문이다. (누구는 Get이라고 생각해서 요청했는데 사실은 그게 삭제 요청일 수도!!)


 

이 밖에 좀 더 디테일한 부분은 다음 글들을 참고하자. (Fetch / Axios에 대한 내용)

 

REST API와 Fetch api

해당 포스팅에서는 Rest api와 Fetch api에 대해 다루었습니다.

velog.io

 


 

RESTful API를 알아보기 - axios

REST API REST(Representational State Transfer)는 HTTP 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습을 보며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 로이필딩에 의해 발표됨. ✔ API란 API

velog.io