본문 바로가기

자라나라 PM

REST API 와 Websocket API 의 차이는?

728x90

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/

 

colin's 블로그

개발 강좌 블로그

colinch4.github.io

 

728x90