모바일 메신저 오픈소스 - mobail mesinjeo opeunsoseu

이미 왓츠앱, 카카오톡, 라인 등이 시장을 선점한 모바일 메신저 시장에서 또 다른 메신저가 필요한가 싶지만, 여러 가지 이유로 텔레그램은 신선하고 꼭 필요한 기능을 제공하기 때문에 눈 여겨 볼만 하다.

가입이 쉽다

앱을 설치하고 핸드폰 번호만 있으면 가입이 된다.

핸드폰 번호를 입력하면 SMS 문자로 인증 코드가 오고 해당 인증 코드를 입력하면 바로 접속이 되어 사용이 가능하다. ID/PWD 기반이 아니라 핸드폰 번호만 있으면 되고 처음 가입할 때는 SMS 문자로 인증 받고 이후에는 이미 설치된 앱으로 인증 코드가 전달 되는 방식으로 처리 된다.

모바일 메신저 오픈소스 - mobail mesinjeo opeunsoseu

메신저 통신 API 공유로 다양한 디바이스에서 접속 가능하다

텔레그램은 모든 통신 프로토콜, API, 안드로이드, 아이폰 앱의 소스코드가 공개되어 있고, 외부 개발자가 해당 API 를 이용하여 손쉽게 클라이언트를 개발 할 수 있게 해 주고 있다.

덕분에 아이폰, 안드로이드 모바일 앱 뿐만 아니라 PC, 맥, 리눅스 용으로 다양한 클라이언트 앱이 제공된다. (공식 앱도 있고 비공식 앱도 있음)


윈도우 데스크톱용 텔레그램 프로그램은 아래 사이트에서 내려 받을 수 있다.

위 사이트에서 포터벌 버전을 내려받으면 별도의 설치없이 EXE 실행만으로 PC 에서 텔레그램을 바로 사용 가능하다. (물론 핸드폰 번호를 이용하여 인증을 받아야 한다)

위 화면은 PC 용 텔레그램 프로그램 설정 화면

설정은 아직 단순한 편이지만, 딱히 부족한 게 없다.

클립보드에 복사한 그림도 채팅창에 바로 붙여 넣기가 가능하고 PDF 나 문서, 파일들도 바로 드래그 & 드롭으로 전송이 가능해서 PC 에서 폰으로 글이나 그림, 문서를 보낼 때 아주 유용하다.

특히 고급 설정에는 연결 방식도 고를 수 있는데 방화벽 등으로 접속이 안될 경우 유용하게 쓸 수 있을 거 같다.

그 외 웹 브라우저에서 텔레그램 채팅을 가능하도록 도와 주는 크롬용 앱과 아예 웹 브라우저에서 바로 채팅할 수 있는 사이트도 있다.

웹 브라우저용 텔레그램: http://zhukov.github.io/webogram/#/

텔레그램 크롬 확장앱 : https://chrome.google.com/webstore/detail/telegram-unofficial/clhhggbfdinjmjhajaheehoeibfljjno

보안에 특화된 메신저

2013.12월 서버 코드의 암호를 깨는 사람에게 20만 달러 상금을 걸었다고 하는데 보안을 깼는지 여부는 모르겠지만 ^^;

암튼 매일같이 해커에서 개인정보를 털리는 국내 서비스보다는 안전하겠지 싶다.

그 외 장점들

모바일 메신저도 그렇고 PC 용 프로그램도 그렇고 앱이 아주 가볍다. 채팅 문자나 사진도 바로 바로 전송 되고 느리다는 느낌을 받지 못했다

쓸모 없는 광고 팝업, 공지 팝업, 이런 게 없고

영원히 무료로 광고 없이 쓰게 하겠다는 제작자의 소개화면도 아주 마음에 든다.

한 가지 단점(어쩌면 가장 큰 단점)은 앱을 내려 받아도 아무도 친구가 없을 수 있다 ^^;' (한 두명은 채팅할 사람을 꼬셔야 함.)

하지만, 폰과 PC 로 글이나 사진을 바로 전달 하는 용도(혼자 놀이)로도 충분히 쓸만한 가치가 있고 보안 걱정 없이 가볍게 사용 가능한 메신저라는 사실만으로 충분이 가치가 있다.

퀄리티라는게...

완성도라고 볼수도 있을 것 같고... 필요한 기능이 얼마나 잘 커스터마이징 되었냐 하는 것일 수도 있을 것 같고요.

상용으로 나온 제품들은 어떤 특정 회사나, 특정 업무 등에 맞게 만들어진게 아니라, 두리뭉실하게 누구나가 필요할만한 내용들을 가지고 구현하는게 일반적이기 때문에...

필요하지 않은 기능들이 많이 포함되어 있는 경향이 있고요.

그리고, 정작 필요한 기능인데 다른 곳에서는 활용 가치가 없기 때문에 포함되지 않은 기능들도 있을 것 같고요.

물론 전문 업체의 최고급 인력들이 만든 제품이기 때문에 잘 만든 제품이기야 하겠지만... 정작 필요한 기능들이 없고, 불필요한 기능들로 인해 덩치가 커져서 성능이 낮다면 자사에 맞게 최적화되어 개발된 소프트웨어가 더 좋을 수 있겠고요~

자체 개발 능력이 안된다면 외주 개발 업체를 선정해서 SI 형태로 개발도 고려해 볼 필요가 있을 것 같고요.

자체 개발 능력이 된다면, 처음 부터 새롭게 개발하는 것보다는 적절한 오픈소스 메신저를 선택해서 커스터 마이징 및 추가 개발을 해서 사용하는 것도 방법이 될 수 있을 것 같고요.

오픈소스 메신저를 검색해 보면 많이 찾을 수 있을 겁니다.

모바일까지 지원 가능한 오픈소스 메신저도 있고, 사내에서만 사용 가능한 메신저, 웹 베이스의 메신저 등등 다양한 오픈 소스 메신저 중에 적절한 걸 선택해서 추가 개발하는 걸 검토해 봐도 될것 같네요.

참고로 몇가지 검색해 본 링크도 남겨 봅니다.

스파크 웹 메신저 : http://blog.naver.com/matoker/30179883804

LAN Messenger :  http://lanmsngr.sourceforge.net/

Signal : https://signal.org/download/

linphone : https://www.linphone.org/

wire : https://wire.com/

Delta chat : https://delta.chat/en/download

tox chat :  https://tox.chat/download.html

...

※ 본 포스팅은 다음 블로그에서 작성한 것을 이관한 내용입니다.

현재 회사에 Jitsi Meet를 설치해서 약간의 커스터마이징 후 사용하고 있습니다.

처음 설치는 한 부서에서 지역랩(대구, 광주, 부산)과의 화상회의를 Skype로 진행하다 너무 문제가 많아서 별도의 화상회의 솔루션을 구입한다고 하길래 비용을 줄여볼까 해서 진행한거라 그리 많이 사용을 하진 않을거라 생각했습니다.

하지만 코로나의 급격한 증가로 타부서에서도 화상회의를 진행하다보니 전사적으로 지속적으로 사용하고 있는 상황입니다. 최근은 대표이사에게 사업계획 보고도 화상회의를 진행하고 있네요.

추가로 내부에 메신저 서비스를 별도 구축하는 것도 어떠냐는 의견이 있어서 오픈소스를 이용해서 구축을 해봤습니다.

몇달전 Rocket Chat으로 처음 구축을 했는데, 생각보다 사용이 너무 어려워서 저희 부서에서도 사용을 못했습니다.

그러다 Rocket Chat보다 Mattermost가 좀 더 안정적이고, 기본적으로 한글을 지원한다고 해서 다시 Mattermost로 구축을 해봤습니다.

나름 깔끔한 인터페이스와 Desktop, Android, iOS, Linux Client 제공, 특히 Push 서비스를 Mattermost 서버를 통해서 지원해주는 부분이 있어서 Rocket Chat보다는 이용하기가 훨씬 더 용이했습니다.

아직은 회사내 테스트서버에 구축만 해놓은 상태이고, 차주부터는 부서 인력들과 활용하면서 전사적으로 사용이 가능할지는 테스트해볼 생각입니다.

또 언젠가 필요할지 몰라 제가 설치했던 순서를 한번 정리해보겠습니다.

서버 및 Client Download : https://mattermost.com/download/

Download Mattermost

Download the latest version of the Mattermost Server for Team Edition and Enterprise Edition, as well as our most current desktop and mobile apps.

mattermost.com

모바일 메신저 오픈소스 - mobail mesinjeo opeunsoseu

설치 가이드 : https://docs.mattermost.com/guides/administrator.html#installing-mattermost

Self-Managed Administrator’s Guide — Mattermost 5.29 documentation

© Copyright 2015-2020 Mattermost

docs.mattermost.com

설치 시 위 설치 가이드를 참고했으며, 제가 설치했던 내용은 다음과 같습니다.

1. 서버 : Ubuntu 20.02 Server

2. DBMS : MySQL Server (PostgreSQL 서버도 지원합니다, 보편적인 MySQL로 진행했습니다)

"설치 내용"

1. Ubunt 20.04 Server 설치

   여러 플랫폼을 지원하는데, Jitsi Meet 설치를 Ubuntu에 해서 Ubuntu Server를 이용했습니다.

   향후엔 Docker에 올려보고 싶은데, 아직 제가 Docker에 대한 지식이 부족해서 공부중입니다.

   Ubuntu Server 설치는 별다른 내용이 없어서 생략합니다.

2. MySQL 설치

1) MySQL Server 설치

sudo apt install mysql-server

2) MySQL 보안 설정

sudo mysql_secure_installation

MySQL 패스워드 재설정, 보안 설정을 하는 부분이며, 필요에 따라 해당 부분 설정을 해주시면 됩니다.

3)  MySQL 접속

유저 및 Database 생성을 위해 mysql을 root 권한으로 접속을 합니다.

4) Mattermost User 생성

mysql> create user 'mmuser'@'%' identified by '패스워드';

Mattermost user인 mmuser를 생성하고 패스워드를 설정합니다.

위에 보안 설정 시 패스워드 복잡도를 어떻게 설정했느냐에 따라 입력을 해주시면 됩니다.

5) Mattermost database 생성

mysql> create database mattermost;

6) mmuser의 database 권한 설정

mysql> grant all privileges on mattermost.* to 'mmuser'@'%';

필요에 따라 권한을 세부적으로 나눠서 부여할 수도 있지만, 굳이 그럴 필요는 없을거 같습니다.

7) MySQL 접속 종료

3. Mattemost Server 설치

1) 최신 Mattermost 파일 다운로드

wget https://releases.mattermost.com/5.29.1/mattermost-5.29.1-linux-amd64.tar.gz

위쪽에 표시한 다운로드 사이트에 최신 버전이 표시되어 있습니다.

2) 파일 압축해제 및 디렉토리 설정

tar -xvzf mattermost*.gz
sudo mv mattermost /opt
sudo mkdir /opt/mattermost/data
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost

압축 해제 후 순서대로 디렉토리 이동, 권한 설정 등을 해주면 됩니다.

3) Config 설정

/opt/mattermost/config/config.json 파일내 DBMS 부분을 수정해줍니다.

 "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mmuser:패스워드@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

MySQL 설치시 입력했던 패스워드를 수정하고, database가 mattermost_test로 되어 있는 부분을 mattermost로 수정합니다. 만약 DBMS 서버가 외부에 있다면 localhost 부분을 해당 서버의 ip로 수정하면 되는데, 같은 서버에 설치했으니 수정할 필요는 없습니다.

파일 제일 윗부분에 "SiteURL"이 있는데, 회사같은 경우 Domain 할당을 받았다면 해당 Domain을 넣어주면 됩니다.

자체 Test용에도 Domain을 넣고 싶다면 hosts파일을 수정하면 가능하겠죠.

4) 설정 테스트

cd /opt/mattermost
sudo -u mattermost ./bin/mattermost

위와 같이 실행했을때

"Server is listening on [::]:8065","address":"[::]:8065"

위와 같은 메시지가 나온다면 정상적으로 설치가 완료된 것입니다.

5) 서비스 설정

sudo touch /lib/systemd/system/mattermost.service

서비스 설정을 위해 파일을 생성하고 아래 내용을 넣어줍니다

[Unit]

Description=Mattermost

After=network.target

After=mysql.service

BindsTo=mysql.service

[Service]

Type=notify

ExecStart=/opt/mattermost/bin/mattermost

TimeoutStartSec=3600

Restart=always

RestartSec=10

WorkingDirectory=/opt/mattermost

User=mattermost

Group=mattermost

LimitNOFILE=49152

[Install]

WantedBy=mysql.service

DBMS 서버가 Mattermost 서버내 설치하지 않고 별도로 있다면 추가적으로 몇가지 설정을 해줘야하는데, 그건 설치가이드를 참고하시기 바랍니다.

6) 서비스 등록 및 테스트

sudo systemctl daemon-reload
sudo systemctl status mattermost.service 
sudo systemctl start mattermost.service
curl http://localhost:8065
sudo systemctl enable mattermost.service

서비스 등록 및 부팅시 자동시작까지 설정했습니다.

여기까지 진행하면 브라우저에 http://서버IP:8065 를 입력하면 아래와 같은 내용이 나타납니다.

모바일 메신저 오픈소스 - mobail mesinjeo opeunsoseu

Mattermost 설치는 가이드대로 순서대로 진행하면 쉽게 완료됩니다.

굉장히 친절하게 설명이 잘되어 있는 편인데, 환경설정이나 사용 매뉴얼도 굉장히 자세하게 설명이 되어있습니다.

소규모 회사나 개인이 구축해서 사용하기엔 정말 좋은 솔루션이라고 생각되네요.

일단 서버는 설치가 된 상태이고, 이후 TLS 설정과 사용자 설정등을 진행해야합니다.

그 부분은 다음 포스팅에서 다루도록 하겠습니다.

===========================

회사에서 단독서버에 Ubuntu 설치하고 MySQL, Mattermost 설치시에는 별 문제가 없었는데, 집에서 VMware Play에서는 설치는 가능하지만 TLS 설정과 몇가지 설정이 안되는 문제가 있었습니다. VMware 설치 이미지는 별도 제공을 하는 거 같아서 그건 따로 테스트를 해봐야할거 같습니다.