Server


Node.js

Node.js는 자바스크립트 런타임 환경입니다. 프론트엔드와 서버 사이드에서 모두 JavaScript를 사용할 수 있어, 동일한 언어로 전체 애플리케이션을 개발할 수 있습니다. Node.js와 함께 제공되는 npm은 전 세계의 다양한 오픈소스 라이브러리와 패키지를 쉽게 설치하고 관리할 수 있는 도구입니다. 프로젝트에서 필요한 모든 의존성을 package.json 파일을 통해서 관리할 수 있으며, 프로젝트 관련 패키지 관리를 위해 Node.js를 사용했습니다.

Javascript

채팅방에서 필요한 요청들을 비동기 처리 방식을 이용해 사용자 경험을 향상 시킬 수 있습니다. 또한 Fetch API를 이용해 서버와의 통신을 간단하고 직관적으로 처리할 수 있습니다.

Firebase

Firebase의 Realtime Database는 데이터 베이스 변경 사항을 실시간으로 반영할 수 있습니다. 채팅 서비스를 구현하기 위한 핵심 기능으로, 사용자 간의 메시지 송수신을 즉각적으로 반영할 수 있습니다.

또한 Firebase는 서버를 직접 관리하지 않아도 되는 서버리스 환경을 제공합니다. 콘챗은 콘솔에서 유저 간의 메시지를 송수신하며 서로의 DOM 조작을 통한 디버깅 서비스가 주요 기능이었기 때문에 복잡한 비즈니스 로직이 필요하지 않습니다. 따라서 서버리스 환경의 개발이 필요했고, 이외에도 배포 및 호스팅 등 Firebase가 제공하는 다양한 기능적 이점을 활용하기 위해 Firebase를 선택했습니다.

CDN

CDN으로 배포시 항상 최신 버전으로 유지되는 이점이 있습니다. 또한 자체 서버에서 제공하는 것보다 서버의 부하가 감소하고 안정적인 서비스를 제공할 수 있습니다.

그리고 현재 Firebase를 사용하기에 Firebase Hosting을 이용하여 CDN으로도 저희 프로젝트를 배포할 수 있기에 CDN을 선택했습니다.

빌드 도구


Vite