이쁜 디자인
실시간
라이프 스타일
편한 주제
소셜 플랫폼
귀여움
msa
대용량 트래픽 처리
로그를 통한 데이터 수집 !


깃스타그램 + 프로젝트 매칭 + 실시간 슬랙+ 클린 봇 api + 추천
메인 스트림 : 실시간 채팅(슬랙이미지 첨부)
12/3 8시!!!!!
-비교 테이블 (okky, stack overflow, slack)
| 깃스타그램(가제) | okky | stack overflow | slack | |
|---|---|---|---|---|
| 소셜로그인 | O | O | o | o |
| 프로젝트 매칭 | O | X | x(but can find a Jobs) | x |
| 실시간 포스팅 | O | X | o | o |
간편 로그인 : 카카오 로그인, 깃 로그인, 구글 로그인
메인 스트림 : 실시간 채팅(슬랙이미지 첨부)
슬랙 방 개설(관심사 별로 방 생성): (아령)
사용자는 관심사에 맞는 방을 개설하고 다른 사용자와 함께 대화에 참여할 수 있다. 사용자가 방을 개설했다고 해서 해당 방의 관리자가 되지 않는다. 개설된 방은 아래와 같이 public과 private로 이용된다.
-public : 다른 이용자들이 자유롭게 개설된 방에 참여할 수 있는 설정이다. public 설정 시 다른 검색 결과로 노출이 가능하고 자유롭게 방에 참여한다.
-private : 다른 이용자들에게 노출되지 않아 오직 초대 방식을 통해서만 방에 참여한다. 가입 시 비밀번호를 통해 입장 자격을 확인하고, 초대 링크는 24시간이 지나면 무효화 된다.
-코드 블럭 사용 가능하도록(마크 다운) : 슬랙 방에서 이용자는 마크 다운을 통해 중요한 내용을 강조표시할 수 있다.
-실시간 채널
일단 먼저 실시간 채팅을 제작하기 위해서는 체팅보다는 쓰레드에 글을 올린다라는 표현이 상대방에게 더 와닿을거야. 그리고 그 안에서 멘션을 남겨서 해당 글에 댓글을 달 수 있는거고 다이렉트 메시지를 통해서 구성원이랑 체팅을 할 수 있는거야. 이때 workspace는 초대 코드나 링크가 있어야 가입하고 그 안에서 체널을 비공개 채널과 공개 채널을 팔 수 있게 되어 있어.
우리가 선택해야 할 것은 두가지야

nomad Coders라는 workSpace 내 React 채널에 입장한 모습이다.
사용자는 메시지를 보내면 가입된 workspace 내 개설된 channel에 쓰레드를 생성 할 수 있다. 이때 보낼수 있는 메시지의 종류는 코드 문법이 보이는 마크다운, 이미지파일, 동영상 파일을 보낼 수 있어야 한다.
사용자는 좌측에 보이는 것 처럼 생성된 쓰레드에 댓글을 달 수 있다.
1.1 실시간 체팅을 위한 준비
1.1.a Web socket

클라이언트와 서버간 ajax 통신과 web Socket 통신을 비교한 시퀸스 다이어그램
웹소켓은 클라이언트에서 주기적으로 서버 측에 데이터 확인 요청을 하는 polling 기법과 달리 새로운 데이터가 들어오면 먼저 서버가 클라이언트에게 데이터를 전송하는 기술이다.
기존에 client 와 server의 관계는서버는 가동중이고 클라이언트에게 리소스를 줄 준비를 한다. 이후 클라이언트가 서버에 요청을 해서 html 등 여러 리소스를 받아 브라우저에 표시했다. 즉, 무조건적인 클라이언트의 요청이 먼저 있어야 서버가 그에 응답하는 방식이었다.
하지만 html5에서 등장한 웹소켓은 위에 언급했듯 서버가 클라이언트에게 먼저 데이터를 주는 역할을 한다. (데이터가 있으면) 이런 기존 클라이언트/서버의 관계를 탈피하는 양방향 통신 기술이 등장하면서 이를 이용한 기능들이 생겨났다. 웹에서 실시간 알림,실시간 채팅 등 실시간이라는 키워드가 들어가는 기능들은 대부분 이 웹소켓 기술을 이용한다.
1.1.b socket.io
그리고 web Socket을 기반으로 하는 https://socket.io/라는 실시간 서비스를 기능하는 다른 라이브러리도 존재한다. 더욱 사용성이 편하고 다양한 언어에서 지원한다. 그리고 가장 큰 장점은 클라이언트의 방을 구분하여 broadcast 할 수 있는 유용성이 존재한다. 기존 웹 소켓에서 편의성이 증대된 라이브러리라고 생각하여도 좋다.
기존 socket.io는 npm 모듈에서 구동되어 node.js가 필요했으나 https://github.com/mrniko/netty-socketio java 기반으로 구현한 netty-socketio라는 라이브러리를 활용하여 socket.io를 사용할 수 있다.

Slack workSpace 입장 유저와 다이렉트 메시지를 주고 받고 있다.
사용자는 workSpace 내 가입된 유저와 다이렉트 메시지를 주고 받을 수 있다. 또한 해당 사용자와 전화 혹은 화상 전화가 가능하다.
각 체널마다 클린 봇이 참여한다. 텍스트 판단 기술을 통하여(자연처 처리 아님) 욕설 혹은 수치심이 들 수 있는 단어가 포함된 쓰레드를 감지하여 이를 운영자가 제제할 수 있는 알림을 제공한다.
-프로젝트 매칭, 추천기능 (경진)
스코프기반
스코프 → 사용자의 성향을 파악하여 알맞은 프로젝트를 추천하고 사용자는 모집중인 프로젝트 중에서 참여하고 싶은 곳에 참여한다.
사용자는 기술 스택을 지정해서 프로젝트를 모집한다. 모집중인 프로젝트는 기한을 지정할 수 있고 실시간으로 얼마나 모집되었는지, 모집중인지를 보여줘야 한다.
사용자의 성향 및 기술스택을 파악하여 알맞은 프로젝트를 추천할 수 있는 방법이 필요하다.
+추가 의견 : 프로젝트에 참여하면 그 프로젝트의 슬랙(태그 별 채팅, 다이렉트 메시지 기능)을 생성해주는 것도 좋을 것 같다.

대용량 트래픽 처리를 위한 백엔드 구현 (기현)
https://github.com/mattermost/mattermost-server
각자의 출발지를 입력하면 중간 지점 알려주는 기능 지도에서