WebSockets를 활용한 실시간 채팅 애플리케이션 만들기 💬
웹 개발에 관심 있는 주니어 개발자 여러분, 실시간 채팅 애플리케이션을 만들어보고 싶으신가요? 오늘은 WebSockets를 사용하여 간단하게 실시간으로 메시지를 주고받을 수 있는 채팅 애플리케이션을 만드는 방법을 알려드리겠습니다. 복잡한 기술 용어는 최대한 피하면서, 쉽게 따라 할 수 있도록 설명해드리겠습니다.
시작하기 전에
WebSockets는 웹 페이지와 서버 간에 실시간 양방향 통신을 가능하게 하는 기술입니다. 이를 통해 사용자가 서버에 요청을 보내지 않아도 서버로부터 데이터를 실시간으로 받을 수 있습니다. 채팅 애플리케이션 같은 실시간 기능을 구현할 때 매우 유용합니다.
기본 셋업
먼저, Node.js가 설치되어 있어야 합니다. Node.js는 JavaScript를 서버 사이드에서 실행할 수 있게 해주는 환경입니다. 설치되어 있지 않다면, Node.js 공식 웹사이트에서 설치할 수 있습니다.
프로젝트 생성
- 새 폴더를 만들고, 해당 폴더에서 터미널을 엽니다.
npm init -y
명령어를 통해 새 Node.js 프로젝트를 생성합니다.- WebSocket 라이브러리를 설치하기 위해
npm install ws
명령어를 실행합니다.
서버 코드 작성
server.js
파일을 생성하고, 다음 코드를 입력합니다.
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
// 모든 클라이언트에 메시지 전송
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
});
ws.send('환영합니다! 실시간 채팅에 연결되었습니다.');
});
이 코드는 8080 포트에서 WebSocket 서버를 실행하고, 클라이언트로부터 메시지를 받으면 콘솔에 출력한 후, 모든 클라이언트에게 그 메시지를 전송합니다.
클라이언트 코드 작성
간단한 HTML 페이지를 만들어 WebSocket 클라이언트를 구현해봅시다. index.html
파일을 생성하고 다음 코드를 입력합니다.
<!DOCTYPE html>
<html>
<head>
<title>실시간 채팅 애플리케이션</title>
</head>
<body>
<input id="messageInput" type="text" placeholder="메시지를 입력하세요" />
<button onclick="sendMessage()">전송</button>
<ul id="messages"></ul>
<script>
const ws = new WebSocket('ws://localhost:8080');
ws.onmessage = function(event) {
const messages = document.getElementById('messages');
const message = document.createElement('li');
message.textContent = event.data;
messages.appendChild(message);
};
function sendMessage() {
const input = document.getElementById('messageInput');
ws.send(input.value);
input.value = '';
}
</script>
</body>
</html>
이 HTML 페이지는 사용자로부터 메시지를 입력받아 WebSocket 서버로 전송하고, 서버로부터 메시지를 받으면 화면에 표시합니다.
실행하기
- 터미널에서
node server.js
를 실행하여 서버를 시작합니다. index.html
파일을 웹 브라우저에서 열어 클라이언트를 실행합니다.- 메시지를 입력하고 전송 버튼을 클릭해보세요. 다른 브라우저 창을 열어 똑같이 실행하면, 실시간으로 메시지가 전송되는 것을 볼 수 있습니다.
이제 여러분은 WebSockets를 사용하여 간단한 실시간 채팅 애플리케이션을 만드는 방법을 배웠습니다. 이 기술을 활용하여 다양한 실시간 웹 애플리케이션을 만들어보세요!