🍳머리말
우리는 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
https://www.tutorialsteacher.com/webapi/what-is-web-api
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.