왜 채팅 구현에 웹소켓을 안쓰고 HTTP Polling 방식을 썼을까? [실시간 채팅 구현] 필요지식 학습 (1) HTTP, WebSoket우리는 채팅 서비스의 데이터 전송 방식으로 HTTP를 선택했다.HTTP (HyperText Transfer Protocol)HTTP는 클라이언트가 서버에 요청을 보내면 서버가 응답을 보내는 단방향 통신이다. 따라서 클라이언트의leeemingyu.tistory.com 일반적으로 채팅 서비스에는 웹 소켓 방식이 많이 쓰이지만 우리는 동아리 내의 소규모 채팅 서비스이기 때문에 예상 사용자가 최대 100명 내외로 트래픽이 많지 않아 polling의 단점인 지연시간 문제도 크게 없을 것 같았고, 기본적인 CRUD도 학습할 겸 HTTP 방식을 선택했다. 1. 채팅 가져오기 (F..
API?API(Application Programming Interface)란 소프트웨어 간의 상호작용을 정의하는 일련의 규칙과 프로토콜이다. API는 한 프로그램이 다른 프로그램의 기능이나 데이터를 활용할 수 있도록 해준다. 예를 들어 백엔드 시스템에는 채팅 데이터가 들어있고 이를 프론트엔드에서 API를 통해 백엔드와 통신하여 웹페이지에 채팅 정보를 표시할 수 있다.이처럼 서버간의 데이터 교환을 API 호출이라고 한다. API 호출에 주로 사용되는 HTTP 메서드는 다음과 같다.GET : 데이터 요청POST : 서버에 데이터 전송PUT : 서버에 데이터 업데이트DELETE : 서버의 데이터 삭제JSON과 XML데이터를 원활하게 주고 받으려면 형식이 정해져 있어야 한다. API랑 다른게 뭐냐고 할 수도 ..
HTTP (HyperText Transfer Protocol)HTTP는 클라이언트가 서버에 요청을 보내면 서버가 응답을 보내는 단방향 통신이다. 따라서 클라이언트의 요청이 없으면 서버는 데이터를 보낼 수 없다.HTTP로 채팅 서비스를 구현하려면 서버에 지속적인 요청을 보내야하는데 이를 Polling이라고 한다. 서버에 일정한 간격의 Polling을 주기적으로 보내 데이터의 변화를 체크하여 업데이트한다. Polling의 간격이 너무 짧으면 서버 부하가 증가하고, 너무 길면 실시간성이 떨어지게 되므로 적절한 간격을 설정할 필요가 있다. WebSoket웹 소켓은 클라이언트와 서버가 한 번 연결되면, 그 연결이 지속되는 양방향 통신이다. 클라이언트와 서버가 서로 데이터를 주고받을 수 있으며, 서버는 클라이언트의..
프로젝트 소개기존 GDSC-KMOU 동아리 사이트에 새로운 채팅 기능을 추가하기로 했다. 백엔드 개발은 다른 동아리원이 Node.js로 서버를 구축하고 RESTful API로 채팅 서비스의 CRUD 기능을 만들어 주었다. 나는 이 API를 연동하여 바닐라 JavaScript로 프론트엔드를 구현했다.