← 프로젝트 목록

웹 서비스

산학 프로젝트

새로고침 없이 대화가 이어지는 웹 채팅을, 처음 다뤄 본 WebSocket으로 직접 구현해 기업 서비스에 붙였습니다.

기간
2022.04.01 – 2022.06.30
역할
웹 채팅 개발 · 실시간 통신 연동
동시 접속 기능 점검
5~10명

업무 배경과 해결 과정

  1. 기업 프로젝트의 웹 채팅 기능을 주된 개발 범위로 맡았습니다. 사용자가 웹에서 대화할 수 있도록 채팅 기능과 실시간 통신을 구현하고 Firebase를 활용한 서비스에 연동했습니다. 한국항공대학교 산학프로젝트 과목을 통해 참여한 기업 연계 개발입니다.

  2. 처음에는 Firebase 중심으로 실시간 기능을 구현하는 방식을 검토했지만, 응답 흐름과 통신 제어 측면에서 요구사항에 맞는 별도의 실시간 연결이 필요했습니다.

  3. WebSocket 연결을 직접 구성해 클라이언트와 서버 간 양방향 통신을 구현했습니다. 메시지가 도착하면 새로고침 없이 채팅창에 바로 반영되도록 하고, 연결 해제와 재접속 상황을 중점적으로 점검했습니다. 기업 측 담당자가 만족한 기능 중 하나였습니다.

직접 만든 것

웹 채팅 화면과 WebSocket 기반 실시간 통신을 개발하고 Firebase를 활용한 서비스 연동을 담당했습니다.

  1. 01

    웹 채팅과 실시간 데이터 송수신

    브라우저에서 대화를 주고받는 웹 채팅 기능을 개발했습니다. WebSocket 기반으로 실시간 데이터를 송수신하는 통신 기능을 구현해 사용자 간 대화 내용을 웹에서 확인할 수 있도록 했습니다.

  2. 02

    Firebase를 활용한 서비스 연동

    Firebase는 사용자와 채팅 데이터 관리, 서비스 연동에 쓰고 실시간 메시지 송수신은 WebSocket이 맡도록 역할을 나눴습니다. 기업 측 프로젝트에서 요구한 웹 채팅 기능을 개발하는 과정에서, 웹 화면과 실시간 통신을 서비스에 연결하는 작업을 수행했습니다.

사용 기술JavaScript · PHP · Firebase · WebSocket · HTML · CSS · MySQL

담당 범위
  • 웹 채팅 기능과 WebSocket 기반 실시간 데이터 통신 개발
  • Firebase를 활용한 서비스 개발 및 실서비스 연동
다시 만든다면 (개선 설계안)

구현 내용을 바탕으로 확장해 검토한 설계안입니다.

  • 재접속 이후 메시지 복구와 중복 표시 방지

    WebSocket 연결이 끊긴 동안 전송한 메시지가 재접속 후 누락되거나 중복 표시되는 상황을 검증 대상으로 둘 수 있습니다. 개선안은 메시지 식별자와 서버 수신 확인을 구분하고 마지막 수신 지점 이후의 메시지를 복구하는 방식입니다. 전송 직전·직후 연결을 끊고 같은 메시지를 재전송해 서버 저장과 화면 표시가 각각 한 번만 이루어지는지 확인합니다.