안녕하세요 코치님
1, 2, 3안을 읽으시고 총평을 주신다면 주제선정에 큰 도움이 될 것 같습니다. 혹시 우려되는 부분에 노션댓글 혹은 각 주제 별 생각해야 하는 부분 지적해주신다면 화요일까지 기획안 잘 수정해 보도록 하겠습니다.
감사합니다.
윤중선, 김기운, 김희산, 이송희, 우수연.
⚡️1안⚡️
-
주제
-
WOW-point
- 100명이 접속해도 전혀 끊김없이 돌아가는 로비
- Geolocation 또는 IP주소를 통한 위치인식, 같은지역끼리 로비를 묶어줌
- 빨리달리기, 캐릭터끼리의 충돌(밀어내기) 등 물리적 위치 계산 구현
- 딜레이 없이 입장하는 단체채팅방, 끊김없는 채팅
- 채널의 수용 인원이 한계에 다다르면 서버가 감지하여 해당 지역에 추가 채널을 생성.
- 특정 지역에 사용자가 너무 적을 경우 이를 감지하여 보다 넓은 지역을 하나의 채널로 통합.
-
관련 고려해본 내용
- NPC
- 서버사이드에서 데이터 전송 후, 이후 NPC와의 대화는 CSR로 처리
- 위치정보-update
- webRTC로 연결된 상태, 미디어 서버를 통해 나의 위치를 다른 100명에게 업데이트시켜줌
- 데드레커닝 방법으로 미디어 서버의부담을 줄여줌
- (여기서 언급되는 미디어서버는 통상 동영상과 음성이지만, 여기서는 위치정보와 텍스트메시지를 전달하는 역할만을 수행)
- Geo
-
기능
- 사용자들의 현재 위치들을 clustering 시켜, 로비로 입장시켜줌
- 채팅은 전체 채팅, 그룹 채팅, 1:1채팅으로 구분.
- 전체 채팅은 해당 지역내의 모든 채널에서 보이게끔 설정. (오남용을 막기위해 사용자에게 채팅제한 설정.), 전체 채팅은 서버를 통해 해당 지역 사용자에게 뿌려줌.
- 그룹 채팅과 1:1 채팅은 webRTC를 통해 구현해보고자 함.
-
기술스택
- react, redux, axios, webrtc(peer.js), nodejs, HTML5 canvas
⚡️2안⚡️
-
주제
-
WOW-point
- slack(허들)보다 낮은 latency의 음성채팅 기능
- 음성채팅 도중 이루어지는, 끊임없는 채팅 기능
- 100명이 접속해도 문제없는 튼튼한 송출 환경
-
관련 고려해본 내용
- latency
- slack 허들의 네트워크
- 비디오가 꺼진 상태임에도 불고하고, 상당한 latency 발생(원인 분석중)
- discord의 네트워크
- 화면공유, 음성채팅 모두 latency를 느낄 수 없었음
- slack의 문제점을 분석하고, discord의 기술을 리버스엔지니어링
- 음성채팅에 효율적인 아키텍처를 이해할 수 있으리라 예상
- 추후, 우리의 서비스 크기에 맞는 기술스택 사용
- 서버 분할
- 각 채팅방별로 크기가 다름, 인원수에 따라 통신방식이 어떻게 달라질지에 대한 고민
-
기능
-
유저들간의 유대감 형성
-
각 사용자들이 프로필을 통해 자신을 나타낼 수 있는 기능 구현
-
1 : 1 채팅기능 + 같은 채널에 접속한 유저끼리 다수 대화 가능한 기능 구현
-
N : N 실시간 화상채팅 및 화면 공유 기능을 구현
-
기술스택
- react, redux, webRTC, nodejs, mongoDB, redis