본문 바로가기

Web

WebSocket으로 web API 만드는게 이점이 있을까?

반응형

🍳머리말

우리는 web api만들 때 WebSocket 또는 HTTP로 작성하곤 합니다.  


📕설명

📔 websocket으로 web api를 만드는게 무슨 이점이 있니?

📑 실시간 통신

 HTTP 요청과 달리 WebSocket은 서버와 클라이언트 간 지속적인 양방향 통신을 지원합니다. 이를 통해 실시간으로 데이터를 전송하고 수신할 수 있습니다. 이는 실시간 채팅, 게임, 주식 시장 등 실시간 정보가 중요한 애플리케이션에서 매우 유용합니다.

📑 감소된 지연 시간

 HTTP 요청은 클라이언트에서 요청을 보내고 서버가 응답을 보내는 순간까지 시간이 걸립니다. 이러한 지연 시간은 WebSocket을 사용하면 줄어들 수 있습니다. WebSocket을 사용하면 서버에서 전송되는 데이터를 클라이언트에서 실시간으로 수신할 수 있으므로 지연 시간이 줄어듭니다.

📑 효율적인 서버 처리

 WebSocket은 클라이언트와 서버 간 지속적인 연결을 유지하므로 매번 새로운 연결을 맺을 필요가 없습니다. 이는 서버 측에서 자원을 효율적으로 관리할 수 있게 합니다.

📑 더 나은 확장성

WebSocket은 HTTP 요청과 달리 서버에서 클라이언트로 보내는 데이터의 양이 적습니다. 이는 서버 측에서 더 많은 클라이언트를 처리할 수 있게 해줍니다.

따라서 WebSocket을 사용하여 웹 API를 만들면 보다 효율적이고 빠른 양방향 통신이 가능하며, 실시간 애플리케이션에서 매우 유용한 특성을 제공할 수 있습니다.

 

📔 그럼 다 websocket으로 짜면 되지 왜 http로 api만들까?

웹 API를 WebSocket으로만 구현하면 HTTP를 사용하는 API보다 몇 가지 단점이 있습니다.

📑 오래된 브라우저를 지원하지 않음

 HTTP를 사용하는 API는 대부분의 브라우저에서 사용할 수 있지만, WebSocket을 사용하는 API는 일부 브라우저에서는 지원되지 않을 수 있습니다.

📑 사용 자원

 WebSocket은 일반적으로 HTTP 요청보다 더 많은 자원을 사용합니다. 이는 WebSocket을 사용하는 API를 개발할 때 추가적인 자원이 필요하다는 것을 의미합니다.

📑 오류 처리 및 보안

 WebSocket은 오류 처리와 보안에 대한 고려 사항이 더 많습니다. WebSocket을 사용하면 보안에 민감한 데이터를 전송할 때 HTTPS와 같은 추가 보안 레이어를 구현해야 합니다.

📔 결론

 WebSocket을 사용하면서도 HTTP를 사용하는 API를 개발하는 것이 좋은 선택일 수 있습니다. WebSocket을 사용하여 실시간 데이터 전송 및 통신을 구현하고, HTTP를 사용하여 요청 및 응답 기능을 구현할 수 있습니다. 이러한 방식으로 개발하면 WebSocket을 사용하는 장점과 함께 HTTP를 사용하는 API의 간단함과 호환성을 유지할 수 있습니다.


📕참조

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java

 

Writing a WebSocket server in Java - Web APIs | MDN

This example shows you how to create a WebSocket API server using Oracle Java.

developer.mozilla.org

https://www.tutorialsteacher.com/webapi/what-is-web-api

 

What is Web API?

What is Web API? Before we understand what is Web API, let's see what is an API (Application Programing Interface). As per Wikipedia's Definition of API: In computer programming, an application programming interface (API) is a set of subroutine definitions

www.tutorialsteacher.com


*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.