티스토리 뷰

오픈소스

오픈소스 Mattermost 소개

토마's 2018. 9. 14. 10:15

안녕하세요. 오늘은 Mattermost라는 오픈소스에 대해서 소개해보려고 합니다.



1. Mattermost?


Mattermost는 오픈소스이며, 자체 호스팅이 가능하고, 협업 메신저인 슬랙(Slack)을 대체할 수 있는 메신저입니다. 홈페이지 메인의 주소는 아래와 같습니다.


링크 : https://mattermost.com/


Mattermost에도 슬랙과 마찬가지로 가격 정책을 통해 사용하는 버전이 있고, 다르게 오픈 소스 Team Edition을 다운로드 받아서 설치하게 되면 무료로 협업 메신저를 사용할 수 있습니다. 물론, 돈을 합당하게 지불하는 Enterprise 버전을 사용하실 경우에는 더욱 많은 기능들을 사용할 수 있는 장점이 있고, Team Edition 버전은 Github을 통해 프로젝트를 clone하고 커스터마이징 해서 사용할 수 있는 장점이 있습니다.


현재 pricing 정책은 아래와 같습니다.




2. 소스 커스터마이징


Mattermost는 기본적으로 서버 사이드 개발 언어는 Go언어로 되어 있으며, 프론드엔드 개발언어는 react.js로 구성되어 있습니다. 먼저 Team Edition 프로젝트를 clone하기 위해서는 Github에 로그인 후, Explore -> Mattermost-server 또는 Mattermost-webapp를 복사해 옵니다. server 및 web-app쪽 뿐만  아니라, mobile-app, redux, desktop-app 등도 clone을 통해 커스터마이징 가능합니다.


전 아래의 순서대로 진행을 했습니다.


자세한 설치 방법에 대해서는 아래 링크  Mattermost document에서 참고하시면 더욱 많은 정보를 얻을 수 있습니다.


링크 : https://developers.mattermost.com/


위 링크를 따라서, 개발 환경을 구성하고 나면 다음과 같이 mattermost-server 및 mattermost-webapp 프로젝트가 있는 것을 확인 할 수 있습니다.



3. 테스트 방법


/Users/username/go/src/github.com/mattermost-webapp의 경로에서 make test 명령어 수행


/Users/username/go/src/github.com/mattermost-server의 경로로 들어가서 make test  명령어 수행


위의 명령어들을 수행하는 경우, 소스를 실행 시키기 위해서 자체 테스팅을 진행하면서 수많은 로그가 나오는 것을 확인할 수 있습니다.



4. 실행 방법


3번의 테스트가 정상적으로 이루어졌을 경우에


/Users/username/go/src/github.com/mattermost-server 디렉토리에 위치해서 make run-client, make run-server 명령어를 수행해줍니다.


make run-client 명령어는 프론트엔드 소스인 클라이언트를 run

make run-server 명령어는 서버 run


그리고 나서 /Users/username/go/src/github.com/mattermost-server/config/config.json 파일에서 포트(기본적으로 8065)를 설정하고 http://localhost:8065로 접속했을 때 다음과 같이 로그인 페이지가 나오면 정상적으로 동작한 것입니다.




5. 빌드 & 패키지 방법


소스코드를 자신의 입맛에 따라, 또는 필요한 환경에 따라서 커스터마이징을 하고 난 후에는 빌드 및 패키징 작업을 통해 커스터마이징 된 실행 파일을 만드는 것이 중요합니다.


우선,

/Users/username/go/src/github.com/mattermost-server 경로 상에서 make build라는 명령어와 make package라는 명령어를 사용하면 되는데,


make build 명령어는 해당 소스코드를 빌드 하게 됩니다. 빌드가 수행되고 나면 ~/go/bin/ 경로와 ~/go/pkg/ 경로 상에 파일들이 생성된 것을 확인 할 수 있습니다.




make package 명령어는 빌드된 소스들을 패키징 형태로 묶는 작업을 수행하게 되는데 각 운영체제 환경에 맞는 버전들이 만들어 지면서, tar.gz 파일로 묶이게 됩니다. 패키징이 되고 나면 /Users/username/go/src/github.com/mattermost-server/dist 밑에 각 운영체제에 사용 가능한 tar.gz 파일들이 있는 것을 확인할 수 있습니다.




해당 tar.gz 파일들을 가지고, 실제 Team-Edition을 설치하는 방법대로 설치를 진행해주시면 커스터마이징 된 Mattermost 메신저를 이용할 수 있습니다.


참고 사이트

1) https://github.com/mattermost/mattermost-server

2) https://github.com/mattermost/mattermost-webapp

3) https://forum.mattermost.org/



이처럼 요즘에는 다양한 오픈소스 프로젝트들이 있으며, 해당 프로젝트들의 정책을 잘 살펴보시고, 필요에 따라서 커스터마이징을 해서 사용할 수 있는 방법도 하나의 방법이라고 생각합니다. 이것으로 Mattermost 소개, 설치, 테스트 및 빌드 방법에 대해서 알아보았고 포스팅을 마치도록 하겠습니다. :)