개인적으로 채팅 프로그램을 혼자 개발해보고 싶은 마음으로 시작한 사이드 프로젝트이다. 채팅을 개발해보고 싶었으나 효율적인 측면에서 단기간에 혼자서 서비스급의 규모를 개발하고 디자인하고 싶지는 않았고, 그렇다고 사이드 프로젝트로 그저 별 의미도 없는 보여주기 위한 것을 개발할 바에는 다른 부분을 공부하는 게 더 효율적이라 생각하던 차에 적당히 시작해서 결과물을 내보자는 생각으로 만든 프로젝트이다.
채팅을 개발하는 것 자체는 사실 그렇게 어렵지 않다. 그러나, 고도화하고 잘 개발하는 것은 어렵다. 그런점에서 볼 때 유의미한 결과물을 만들기 위해서는 기존의 사용자들이 가진 요구와 나의 욕구를 적절히 충족시킬 방법을 고려해볼 필요가 있었다. 어차피 공개적으로 오픈소스로 개발할 것이라면 특정한 프로젝트에 종속적인 것보다는 여러 사용자가 쉽게 가져다 쓸 수 있고 그렇기에 개발할 보람이 조금이라도 생길만한 프로젝트가 뭘까? 그게 바로 채팅 플러그인이다.
채팅의 경우 가장 기본적인 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
https://github.com/yoonjonglyu/react-tomato-talk
'개발 > 오픈소스' 카테고리의 다른 글
[React] react-custom-swipe 1.2 버전업 후기 (0) | 2023.09.27 |
---|---|
[오픈소스] 배포된 패키지 근황 (0) | 2023.01.30 |
[오픈소스][React] react-custom-swipe (0) | 2022.08.03 |
[오픈소스][JS] react-daumpost-hook (0) | 2021.11.20 |
[MDN][JS]자바스크립트 레퍼런스 컨트리뷰트 후기 (0) | 2021.07.12 |