본문 바로가기
개발/오픈소스

[오픈소스][socket.io]react-tomato-talk

by ISA(류) 2021. 12. 14.

npm

개인적으로 채팅 프로그램을 혼자 개발해보고 싶은 마음으로 시작한 사이드 프로젝트이다. 채팅을 개발해보고 싶었으나 효율적인 측면에서 단기간에 혼자서 서비스급의 규모를 개발하고 디자인하고 싶지는 않았고, 그렇다고 사이드 프로젝트로 그저 별 의미도 없는 보여주기 위한 것을 개발할 바에는 다른 부분을 공부하는 게 더 효율적이라 생각하던 차에 적당히 시작해서 결과물을 내보자는 생각으로 만든 프로젝트이다.

 

채팅을 개발하는 것 자체는 사실 그렇게 어렵지 않다. 그러나, 고도화하고 잘 개발하는 것은 어렵다. 그런점에서 볼 때 유의미한 결과물을 만들기 위해서는 기존의 사용자들이 가진 요구와 나의 욕구를 적절히 충족시킬 방법을 고려해볼 필요가 있었다. 어차피 공개적으로 오픈소스로 개발할 것이라면 특정한 프로젝트에 종속적인 것보다는 여러 사용자가 쉽게 가져다 쓸 수 있고 그렇기에 개발할 보람이 조금이라도 생길만한 프로젝트가 뭘까? 그게 바로 채팅 플러그인이다.

 

채팅의 경우 가장 기본적인 1:1 채팅이 대표적이라 할 수 있지만 1:1 채팅의 경우 채널톡이라는 잘 만들어진 무료 서비스(또는 다른 서비스들)가 이미 존재한다. 내가 만드는 오픈소스로 해당하는 서비스들에 준할 정도의 퀄리티를 내려고 한다면 솔직히 시간 + 비용적인 측면에서 효율적이지 않다. 그래서 익명 1:1 채팅 기능을 주 타깃에서 제외했다.

 

1:1 채팅을 제외했으니 그나마 수요가 있을 만한 부분은 사실 n:n 채팅이다. 익명 다대다 채팅 다행히 해당 부분은 별다른 무료 서비스를 찾아 볼 수 없었다. 그로 인해서 해당 채팅 플러그인은 1:1 채팅보다 다대다 채팅을 위주로 기획하고 진행하게 되었다. 그리고 실제로 자신의 사이트, 특히 커뮤니티에서 간단한 실시간 채팅 기능을 추가하길 원하는 수요는 꽤 있는 편이니 오픈소스로 만들기에 적당했다.

 

무엇을 만들지는 결정했으니 어떻게 만들지를 결정해야 했다.  결국 프론트엔드이다 보니 프론트엔드 spa에 종속성을 가지는 부분을 고려해서 모든 spa 오픈소스에 호환성을 가지게 하는 것은 난이도와 규모가 상승한다. 이 이유로 해당 패키지는 현시점에서 react만 지원한다. 또한 상태 관리 생태계의 변화나 css 관리에 따라서 추가되는 의존성을 최소화하기 위해서 기본적인 react, socket.io-client와 바벨만을 이용해서 코드를 작성했다. 추후 해당 부분에 대해서 수요가 늘어난다면 따로 고려해볼 필요는 있겠지만 현시점에서는 별 의미가 없다고 생각된다.

 

개발을 진행한 방법은 먼저 해당 프로젝트를 데모버전으로 개발을 했고 가장 기본적인 기능들을 따로 모듈화 해서 배포하는 방법으로 결정했다. 기능의 경우 가장 기초적인 기능들과 설정을 제공하고 추가적인 기능 및 ui가 업데이트될 때마다 버전업을 하는 방향으로 미니멀리즘 하게 프로젝트를 진행했고 진행 중이다. 현재는 기초적인 기능만 배포했으며 추후 계획에 따라서 기능을 추가적으로 배포할 예정이다.

 

 

관련 링크

https://www.npmjs.com/package/react-tomato-talk

 

react-tomato-talk

리액트 오픈채팅 모듈, 익명, 오픈채팅을 제공한다.

www.npmjs.com

https://github.com/yoonjonglyu/react-tomato-talk

 

GitHub - yoonjonglyu/react-tomato-talk: react, socket, chatting, 채팅, 리액트, 오픈채팅

react, socket, chatting, 채팅, 리액트, 오픈채팅. Contribute to yoonjonglyu/react-tomato-talk development by creating an account on GitHub.

github.com

 

반응형