REST API 의 한계점
사실 REST API 는 API 중 몇 가지 특성을 가진 특정 API 의 종류일 뿐이다.
현재 대부분 API 라고 하면 REST API 를 말한다. 그만큼 많이 쓰이는 방식이다.
REST API 를 설명하자면,
브라우저에 웹사이트 주소를 넣고, 엔터를 치면 웹사이트가 나온다.
엔터를 치지 않으면 안뜬다.
즉 엔터를 치는 행위가 웹 페이지의 컨텐츠를 가져와 달라고 요청하는 행위인 것이다.
요청 행위의 결과로 받는 것이다.
한 번 뜨고 나면 그 결과가 변하지 않는다.
예를 들어 사이트에 들어갔을 때 아무 행위도 하지 않는다면 그대로 있다.
그런데 주식창을 생각해보면 아무것도 하지 않았는데, 계속해서 변동되는 주가가 보인다.
만일 이것을 REST API 로 만든다면 지속적으로 데이터를 요청하며 새로고침 하는 셈이 되는 것이다.
무한반복으로 초당 10,000번 불러오게 만든다고 해도 어떤 주식의 값은 변하지 않을 수도 있는데 계속 불러오게 되는 자원 낭비가 일어나는 것이다.
즉 REST API 한계는 정보가 변하는 경우, 그 때에만 정보를 받아오는 것이 힘들다는 것이다.
정보를 받아오려면 계속 요청을 반복해서 해야한다.
한 번만 요청하고, 그 뒤로 정보가 변할 때마다 그냥 불러오도록 할 수는 없을까?
여기서 새로운 방식의 API 가 필요하게 된다.
Websocket API
바로 Websocket API이다.구독형 API 라고도 할 수 있다.
Websocket API 방식에서는 데이터 요청자와 데이터 제공자 간에 데이터가 흐르는 채널이 열리게 된다.
채널이 열리기 전에 데이터 요청자는 제공자에게 어떤 정보를 받고 싶은지 요청한다. 구독하는 것과 비슷하다.
이 채널이 닫히지 않는 이상 계속해서 정보가 들어오는 것이다.
실시간 스트리밍이나 실시간 채팅, 온라인 게임과 같이 즉각적으로 정보를 주고받아야 하는 실시간 통신이 필요한 경우에 자주 사용한다.
REST API 는 필요시마다 문을 두드려서 문을 여는 것이라면
Websocket API 의 경우에는 계속해서 물이 흐르는 것과 같다.
웹소켓의 경우 처음에 열리기에 좀 더 시간이 걸리고
REST 는 바로 된다. 그러나 REST 는 여러 번 반복 하다보면 한계가 와서 에러가 나게 된다.
소켓 (Socket)
네트워크 환경에 연결할 수 있게 만들어진 연결부
참고)
https://www.youtube.com/watch?v=LddPLO4bXmQ
https://colinch4.github.io/2021-05-14/Rest_%EC%86%8C%EC%BC%93_%EC%B0%A8%EC%9D%B4/
'자라나라 PM' 카테고리의 다른 글
인덱스 (index) (0) | 2022.07.14 |
---|---|
모듈, 패키지, 프레임워크, 라이브러리 (0) | 2022.07.13 |
API,REST API,Private API,Partner API,Public API (0) | 2022.07.12 |
그리드시스템, 아임웹, 쿼리, MySQL, DBMS, 그누보드 (0) | 2022.07.11 |
아이피, 웹 호스팅 서버 아이피 (0) | 2022.07.05 |