⭕ 사용 목적

<용감한 원정대> Project는 도움이 필요한 사람이 게시글을 올리면, 가까운 이웃이 채팅을 신청해 함께 문제를 해결하는 서비스이다.

사용 주체는 원정대와 의뢰인이고, 두 사람의 거래를 위해 채팅 기능을 구현하기로 했다.

⭕ 개발 과정

✔ 기술 선택

우리 Project의 Client는 React Framework로 개발 되었고, Server는 Springboot Framework로 개발 되었다. 그래서 Client와 Server가 통신할 때, 주로 Rest API를 사용하여 HTTP 통신을 한다.

HTTP 통신은 Client에서 먼저 요청을 보내면, Server가 그에 맞는 응답을 해주는 방식으로 Client → Server로 단 방향 통신이다.

하지만 우리 Project에서 구현 목표였던 채팅 기능은 Client가 요청하지 않아도 Server에서 메시지를 보내줘야 하기 때문에 단 방향 통신이 아닌, 양 방향 통신을 지원하는 기술이 필요했다.

양 방향 통신 기술을 지원하는 서비스를 찾아보았을 때, Web Socket 기술을 찾을 수 있었고, 우리는 여기서 조금 더 발전된 STOMP 기술을 사용하기로 했다.

STOMP를 사용한 이유는 메시지를 발신, 수신하는 과정이 신문 구독과 같은 구독 방법을 사용하기 때문에 구조화 되어 보였고, 우리 Project의 코드 구조 관리에 더 수월할 것 같다는 판단이 들었다.

그리고 Client에게 보내주는 메시지도 다음과 같이 형식이 구조화 되어있어, 메시지 형식을 따로 규격화 하지 않아도 된다는 장점이 있었다.