사내 서버에 Web 메신저 구축하기 (Rocketchat)

2021. 8. 29. 14:32DevTips

일반적인 기업들은 매우 엄격하고 폐쇄적인 보안정책으로 네트워크 망이 운영되고 있다. 나도 대기업 + 제조업인지라 사내 네트워크는 매우 빡센 네트워크 정책이 적용되어 있어, 허용된 방법이 아닌 개인적인 용도로 외부망에서 사내 네트워크로 접속하는 것은 꿈도 못꾼다. 이런 기업들에서 일하는 개발자들 경우에는 보안상 PC 카카오톡은 둘째치더라도 Slack 도 못쓰는 경우도 허다하다. 우리 회사도 역시 둘다 못쓴다.

 

하지만 Agile 개발론이며, MVP 며 빠른 개발 사이클을 울부짖는 현재의 개발 트렌드에서 개발자들끼리 간단하게 소통할 수 있는 메신저 협업툴은 필수 중에 필수다. 심플하고 신속한 커뮤니케이션을 추구하는 MZ세대에게 필수라는 말을 굳이 할 필요도 없을 것 같다.

 

우리 회사의 경우 사내 메신저가 있기는 하지만 개발을 어떻게 했는지 느린 속도와 특유의 무거움 때문에 대부분 잘 쓰지 않는다. 심지어 나는 메신저를 켜두지도 않아서 가끔 한달에 한번 들어가면 이미 퇴사한 사람이 몇달전에 내게 '안녕하세요~' 라고 보낸 메세지를 그제서야 확인하고, 개인 카톡으로 이제 봐서 죄송하다며 사과한 적도 있다.

 

한참 개발 사이클을 기승전결의 '전'에 다다르고 있었고, 이런 상황에서 우리팀 개발자들은 하나하나 메일로 커뮤니케이션을 해야하는 것에 깊은 피로감을 느끼고 있었다. 심지어 재택을 해도 무방한 상황인데도 메일로 소스코드를 캡처해 개발미팅을 하느니 차라리 출근해서 얘기하는게 더 낫겠다며 무리하게 출근해서 개발미팅을 한 팀원도 있었다.

 

이 상화을 어찌하면 좋을꼬 하다가 마침 회사에 노는 서버에 사제(?) 메신저 웹앱을 구축해보면 어떨까 하는 생각을 해봤다. 그 서버에는 사내 IP도 할당되어 있고 원한다면 IP로 도메인도 부여받을 수 있어, 잘만 된다면 팀원들이 브라우저로 메신저 웹앱에 접속하여 커뮤니케이션 하는게 가능할 것 같았다. 

 

웹 메신저 구축에 앞서 크게 두가지 포인트로 생각했다.

  1. 노는 서버에 웹 기반 메신저를 구축해서 팀원들이 웹브라우저로 접속해 커뮤니케이션을 하게 하자!
  2. 그렇다고 웹 메신저를 내가 직접 개발할 수는 없으니 오픈소스로 만들어놓은 걸 찾아보자!

 

마침 몇년 전 일본에 다니던 회사에서도 비슷한 고민을 했던지라 2번에 대해서는 쉽게 답이 나왔다. Rocketchat 이라는 오픈소스 기반 웹 메신저를 쓰자고.

 

Rocketchat 공식 홈페이지

 

Rockatchat 홈페이지의 메인화면. 직접 써보면 Slack 과 인터페이스가 매우 유사하다.

 

 

만약 여러분이 Docker에 익숙하다면 금상첨화다. 이미 Docker 이미지와 docker-compose 까지 다 준비되어 있다. 그냥 가져다가 쓰면 끝이다.

 

Docker Hub - Official Image

Github - Docker Compose

 

 

노는 서버에 docker-compose 를 통해서 Rocketchat 서비스를 올렸고 메신저 이용을 희망하는 팀원들의 계정을 생성했다. 도입결과 반응은 예상보다 정말 좋았으며, 한 팀원은 자기 일의 생산성이 10배는 향상된 것 같다고 매우 고마워했다. (그도 그럴게 이전에는 아주 사소한 커뮤니케이션인데도 메일로 하나하나 주고받아야 했었다) 지금도 20명 가량의 팀원이 간단한 커뮤니케이션이나 개발 이슈 등은 모두 Rocketchat 을 통해 처리하고 있다. 

 

사내 네트워크에 달린 노는 서버에 구축했으니, 외부에서 접근이 불가능할 뿐더러 내부에서 접근하는 사용자도 아이디가 없으면 접속할 수 없으니 아직까지 우리는 크게 보안팀과 트러블 없이 잘 운영하고 있다.  하지만 아무래도 회사 차원에서 보면 비공식적인 커뮤니케이션 툴이기 때문에 여러분이 운영자라면 사용자들에게 룰을 정해주는게 좋을 것이다. 예를 들면 우리 팀은 아래 사항 한가지만 사용자들에게 모두 동의를 받고 Rocketchat 을 사용한다.

 

  • 반드시 문서로 남겨야 하는 중요한 사항은 메신저가 아닌 메일로 남길 것! 메신저 상의 대화 내용이나 첨부파일에 대한 데이터 백업은 지원하지 않으니, 언제든지 메신저의 데이터는 손실될 수 있다는 점을 기억할 것!

 

 

나처럼 폐쇄적인 사내 네트워크 망에서 같은 고민을 하는 개발자 분들이 있다면 이 글이 도움이 되었길 바란다. 다만 혹여나 보안팀에게 문제가 되지 않게는 상사 등과 상의하여 조율하여 문제가 없게끔 하시면 좋겠다!

 

 

P.S: Docker 에 익숙하지 않아 구체적인 도입방법에 어려움을 겪고 계신 분이 있으면 편하게 연락 주세요. 최대한 도움 드리겠습니다 :)  itspjc@gmail.com