글 작성 배경
이번에 비트코인 관련 프로젝트를 하면서 API를 사용할 일이 생겼다. 이 과정에서 시세 데이터를 수신하는 API를 사용하려고 하였는데, REST와 Websocket 두 방식을 지원하고 있었다. 둘의 차이를 어렴풋이 알고는 있지만 개념을 확실히 하기 위해 둘의 차이를 비교해보려 한다.
가장 큰 차이
결론부터 말하자면 둘의 가장 큰 차이는 접속을 유지하는지이다.
REST 작동방식
가장 많이 사용하는 API 방식이다. 브라우저로 웹사이트를 접속하는 것을 생각하면 쉽다. 주소를 입력하고 엔터를 치면(요청) 해당 주소의 서버가 응답하여 웹사이트 띄워준다.
REST 방식의 특징은 한 번 요청하고 내용이 뜨면 그 내용이 변하지 않는다. 최신 정보를 받기 위해서는 계속해서 새로고침을 해야하는 것이다. 주식 시세와 같이 실시간으로 데이터를 확인해야 하는 정보에서는 치명적인 방식이다.
Websocket 작동방식
웹소켓은 이러한 REST 방식의 한계점에서부터 출발한 방식이다. REST와는 다르게 한 번 요청하면 그 뒤로 계속해서 알아서 업데이트 해주는 방식의 API이다. 일종의 구독형 API라고 생각하면 된다.
데이터 요청자와 제공자 간에 채널이 열리게 되고 원하는 정보를 제공자에게 알린다(구독). 그리고 채널이 닫히지 않는 한, 제공자는 계속해서 데이터를 제공한다.
비유
REST API는 문을 두드리면 열려서 데이터가 주어진 후 닫히는 문과 같고, Websocket API는 한 번 틀면 계속 나오는 수도꼭지와 같다.
참고
반응형
'개발 > 개발 지식' 카테고리의 다른 글
asyncio 완전 정복 - 1 (0) | 2022.07.23 |
---|---|
Anaconda와 JupyterLab 알아보기 (0) | 2022.07.10 |
파이썬 DB 커넥터(psycopg2) 간단한 사용법/executor과 commit 차이 (0) | 2022.04.06 |
NFS란? 정의/장단점 (0) | 2022.04.04 |
Vagrant 어떤 용도일까? 정의/사용이유/Docker와 비교 (0) | 2022.03.23 |