-
Notifications
You must be signed in to change notification settings - Fork 0
[채팅 스터디] 어떤 기술을 사용할까 _그림
Seogeurim edited this page Jan 9, 2022
·
1 revision
- 작성자: @Seogeurim
- 작성일: 2022.01.09
- Description: 채팅 기능 - 어떤 기술을 사용할까
- 채팅 메시지 실시간으로 주고 받기
- http 통신은 비연결성이므로 한계가 있음
- WebSocket 기술을 이용해야 한다
- 이중 통신을 지원하여, client의 요청이 없어도 server에서 client에게 정보를 전송할 수 있다
- 채팅 내용 갱신될 때의 UI
- 전체가 렌더링되지 않고 새로운 채팅 메시지만 추가되어야 한다 : 상태 관리
- 채팅창 스크롤 위치 하단 고정 : 채팅 내용 갱신 후 스크롤 하단으로 내리기
- 배포
- node.js 서버와 client 서버를 별개로 두어 통신
참고 : https://www.peterkimzz.com/websocket-vs-socket-io/
- WebSocket은 HTML5 웹 표준 기술이고, Socket.io는 이 기술을 활용한 라이브러리이다.
- WebSocket
- 통신할 때 아주 적은 데이터를 이용하며 매우 빠르게 동작
- 단순히 이벤트를 듣고, 보내는 것만 가능
- 데이터 전송이 많은 경우에는 빠르고 비용이 적은 WebSocket을 이용하는 것이 유리함
- Socket.io
- WebSocket보다는 더 느림
- 소켓 연결 실패 시 다른 방식으로 재시도한다던지, 브로드캐스팅 기능 등 많은 편리한 기능을 제공
- 다양한 기능으로 사용자들을 세밀하게 관리해야 하는 서비스의 경우 Socket.io를 쓰는 것이 유지보수 측면에서 유리함
- “개발자의 사이드 프로젝트에 대한 피드백을 받는 서비스”라는 기획을 고려했을 때, 매우 많은 사용자 또는 많은, 무거운 데이터를 다루지 않을 것임
- 오히려 앞으로 채팅과 관련된 여러 기능들을 추가해나갈 것을 생각하면, Socket.io를 활용해 편리하게 관리하면 좋지 않을까.
- Socket.io를 쓰면 좋을 것 같다!!!!
- React, Node.js 모두 socket.io 설치하고, 예제 많이 나오던데 따라하면 될듯!!!