뻘소리 1
ㅇ 프로젝트 주요 결과물
MVP 1.0
webRTC를 활용한 화면 공유 및 음성 통화
최대 4인까지 화면공유를 할 수 있다
화면공유를 끄고 재선택 할 수 있다
음성 통화가 가능하다
채팅
다른 사람들과 채팅을 할 수 있다
회원가입 및 로그인
새로운 유저는 회원가입을 할 수 있다
이메일과 비밀번호를 통해 로그인을 할 수 있다
ㅇ 프로젝트 세부 산출물(개발물, 제작물)
webRTC
□ 결과물 형태 및 서비스 방식
심의
ㅇ 결과물 형태:실시간 통신, 개발자 친화적인 기능, 네트워킹이 이루어질 수 있는 기능 등이 갖추어진 PC 웹사이트입니다.
ㅇ 서비스 방식:별도의 설치가 필요 없이 인터넷에 접속하면 바로 사용할 수 있는 SaaS(Service as a Service) 형태의 서비스를 할 것입니다. 사전에 복잡한 작업을 필요로 하지 않고 웹사이트에 접속하면 바로 사용할 수 있습니다.
피드백
개발자 모각코 문화가 비즈니스로 창출되기에는 좀 시장 규모가 작은 것으로 분석됨 - 수익모델이 작동되기에는 수익을 창출하기 위한 기획이 좀 부족해 보임
국내 뿐만 아니라 국외로도 이용가능하게 확장할 예정
"문제해결"의 컨텐츠는 향후 GitHub 커뮤니티 또는 다른 개발자 커뮤니티와의 연계 또는 파트너십도 고려하여 확장해보면 좋을 것 같음
스프(https://soup.pw/ ) 사이트와의 연계 (?)
고수를 영입해서 방장을 시키고 일정 시간동안 첨삭지도 해주는 방법을 강력 추천함 - 프로젝트에서 제공하는 기능들이 기존의 커뮤니티를 잘 활용하면 대부분 충족이 될 것으로 보임
이벤트 기획중
멘토 중 알고리즘을 정말 잘하는 (책도 씀) 나동빈을 영입해서 라이브 코딩쇼를 해볼 예정
멘토링을 여기서 진행해보라고 부탁도 할 예정
이번 이벤트는 성공적으로 끝나서 충분히 가능해 보임
본 프로젝트를 통해 달성할 수 있는 기술적 챌린지를 목표로 세워보면 좋겠음
WebRTC 직접 구현
SFU
MCU
Turn 서버
2022년도 SW마에스트로 과정 제13기 프로젝트 중간점검 보고서
프로젝트 개요서
프로젝트명 | 모도코(모여서 도란도란 코딩) | ||
프로젝트 요약 | 모도코는 모여서 각자 코딩할 수 있는 환경을 제공합니다. 사용자들은 다양한 목적에 따라 자유롭게 드나들 수 있으며, 다른 개발자와 교류하고 다양한 기회를 얻을 수 있으며 성장의 발판을 마련할 수 있습니다. | ||
기술 키워드 | 웹, 소켓 통신, 실시간 통신 | ||
ICT연구개발 기술 분류 | ① 방송·콘텐츠 - ② 디지털콘텐츠 | ||
팀 명 | FIRE | 팀 원 | 고주형, 윤영기, 이하령 |
목적 및 필요성 | 개발자에 대한 수요가 많아지면서 다양한 사람들이 유입되고 있습니다. 이러한 사람들에게 모여서 각자 코딩의 준말인 ‘모각코’는 익숙한 신조어입니다. 최근에 모각코에 대한 수요가 증가하고 있지만 모각코를 할 인원을 모집하는 곳과 진 실제로 하는 곳이 분리되어 있습니다. 실제로 대다수 사람이 커뮤니티에서 인원을 모집하고 화상회의 서비스에서 각자 코딩합니다. 그렇다고 이러한 화상회의 서비스에 개발자를 위한 편리 기능이 있는 것도 아닙니다. | ||
프로젝트 개요 | 설문조사 결과 도란도란한 분위기가 모각코를 하는 이유 중의 가장 큰 비율을 차 지했습니다. 모도코(모여서 도란도란 코딩) 프로젝트는 다양한 사람들이 모여서 도란도란 코딩을 할 수 있게 해주는 플랫폼입니다. 개발자 친화적인 요소를 갖춰서 다른 사람과 함께 소통하고 코딩에 몰입하는 것을 도와줍니다. | ||
수행 방법 및 프로젝트 관리 | 저희 서비스의 개발자 친화적인 기능은 많은 피드백을 통해 만들어가고자 합니다. 실제 고객과 접촉하는 빈도를 높여 잘못된 가정을 빠르게 검증하고 개선할 것입니 다. 저의 아이디어를 검증하며 핵심적인 기능을 계속 보완해가며 개발할 것입니다. | ||
개발 진행현황 | 실시간 통신을 위한 기반 환경 작업을 80% 정도 완료했습니다. 다수의 사용자를 지원하기 위한 Media Server 구축 작업이 남아있습니다. 전반적인 UI 컨셉을 결정했습니다. 디자이너와 협의하며 계속 발전시켜나가고 있습니다. 결정한 컨셉을 기반으로 실시간 통신 기능 붙여서 프리토타입을 완성했습니다. | ||
결과물 형태 및 서비스 방식 | 실시간 통신, 개발자 친화적인 기능이 갖추어져 있고 네트워킹이 자연스럽게 이루어질 수 있는 SaaS(Service as a Service) 형태의 PC 웹사이트입니다. | ||
기대 효과 및 활용 방안 |
울 수 있습니다.
|
프로젝트 중간보고서
☞ 분량:24p 이내 작성
□ 목적 및 필요성
ㅇ 문제인식
ㅇ 기획 의도(문제해결)
상세내용(추가설명)
ㅇ 시장/소비자 동향/분석, 경쟁 제품 비교/차별화 요소
상세내용(추가설명)
□ 프로젝트 개요
ㅇ 프로젝트 소개
상세내용(추가설명)
ㅇ 시스템 구성도
상세내용(추가설명)
ㅇ 주요 기능
상세내용(추가설명)
ㅇ 개발 환경
구분 | 상세내용 | ||
S/W 개발환경 | OS |
| |
개발환경(IDE) |
| ||
개발도구 |
| ||
개발언어 |
| ||
기타사항 |
| ||
H/W 구성장비 | 디바이스 |
| |
센서 |
| ||
통신 |
| ||
언어 |
| ||
기타사항 |
| ||
프로젝트 관리환경 | 형상관리 |
| |
의사소통관리 |
| ||
기타사항 |
|
□ 수행 방법 및 프로젝트 관리
ㅇ 주요 기능별 수행방법
화면공유 | 화면 공유 음성 통화 캠 공유 |
친구 | 다이렉트 메시지 친구 추가/삭제/수락/거절 친구 초대 친구가 참여하고 있는 방에 동시 입장 |
테마 | 모닥불 바다 캠핑 우주인 여행 |
통계 | 월/주/일별 모각코 통계량 사용한 언어/프레임워크별 통계량 Wakatime 써드파티 이용 |
방 | 방 내보내기 방 생성하기 방 수정하기 |
라이브 코딩 | VS code live share 써드파티 이용 |
채팅 | 전체 채팅 1:1 채팅 파일 보내기 |
|
|
ㅇ 수행방법 확보방안(아웃소싱 등)
상세내용(추가설명)
기능명 | 구분 | 추진 내용 | 진척도 | 추진 일정 | |||||
6월 | 7월 | 8월 | 9월 | 10월 | 11월 | ||||
실시간 통신 | 계획 | Media Stream 제어 실시간 파일 공유 및 채팅 | 100% |
|
|
|
|
| |
분석 | Medis Stream 튜닝 | 100% |
|
|
|
|
|
| |
설계 | 대용량 스트리밍 서버 구축 | 70% |
|
|
|
|
|
| |
개발 |
| 50% |
|
|
|
|
|
| |
테스트 |
| 10% |
|
|
|
|
|
| |
종료 |
| 00% |
|
|
|
|
|
| |
인프라 구축 | 계획 | 모니터링, CI/CD, AutoScaling, LoadBalancing, CDN, RDS | 00% |
|
|
|
|
| |
분석 | 필요한 기능 분석 | 95% |
|
|
|
|
|
| |
설계 |
| 70% |
|
|
|
|
|
| |
개발 |
| 40% |
|
|
|
|
|
| |
테스트 |
| 00% |
|
|
|
|
|
| |
종료 |
| 00% |
|
|
|
|
|
| |
모니터링 | 계획 |
| 00% | 예시 |
|
|
|
|
|
분석 |
| 00% |
|
|
|
|
|
| |
설계 |
| 00% |
|
|
|
|
|
| |
개발 |
| 00% |
|
|
|
|
|
| |
테스트 |
| 00% |
|
|
|
|
|
| |
종료 |
| 00% |
|
|
|
|
|
| |
Socket 서버 | 계획 |
| 00% | 예시 |
|
|
|
|
|
분석 |
| 00% |
|
|
|
|
|
| |
설계 |
| 00% |
|
|
|
|
|
| |
개발 |
| 00% |
|
|
|
|
|
| |
테스트 |
| 00% |
|
|
|
|
|
| |
종료 |
| 00% |
|
|
|
|
|
|
ㅇ 추진 일정
ㅇ 역할 분담
담 당 | 역할 및 상세활동 | |
연수생 |
|
|
|
| |
|
| |
멘토 |
|
|
|
| |
|
|
ㅇ 기술 습득 노력
담 당 | 기술 습득 노력 | |
연수생 | 고주형 |
|
|
| |
|
|
ㅇ 문제점 및 해결방안
구 분 | 문제점 및 해결방안 |
관리 측면 |
|
개발 측면 |
|
상세내용(추가설명)
□ 개발 진행현황
ㅇ 프로젝트 주요 결과물
주요 결과물 제목
· 주요 결과물 내용
프로젝트 주요 결과에 대해 항목(-) 추가하여 작성 가능
ㅇ 프로젝트 세부 산출물(개발물, 제작물)
기능별 설명
· 주요 소스 코드 정보 설명 등
· 주요 소스 코드 위치(링크)
· 기능 동작의 정확성 설명 및 화면 캡처
프로젝트 주요 결과에 대해 항목(-) 추가하여 작성 가능
□ 결과물 형태 및 서비스 방식
이벤트
8월 16일 10:00 ~ 23:00 까지 소프트웨어 마에스트로 연수생들 누구나 참여할 수 있는 모각코 대회를 개최하였습니다. 팀별로 누적된 모각코 시간을 합산하여 계산을 하였으며, 이번 이벤트의 목표는 저희의 서비스에 모각코에 필수적인 요소들 (화면공유, 음성채팅, 채팅 등)이 잘 갖추어져 있는지 테스트를 하기 위함이였습니다.
참여방식은, 저희 플랫폼에 접속 후 회원가입을 하여 원하는 방을 입장 혹은 방을 생성하여 모각코를 진행하면, 저희가 진행 통계를 누적시켜 팀별로 순위를 매기는 방식으로 진행하였습니다.
실제로 30명이 넘는 연수생들이 저희 플랫폼에 와서 모각코를 진행하였으며, 다양한 피드백과 다음 MVP를 위한 필수 기능들을 확정 지을 수 있었습니다.
사용자들의 이용 통계는 다음과 같았습니다.
팀 이름 | 팀원 1 | 팀원 2 | 팀원 3 |
---|---|---|---|
Trendly | 12:53:52 | 12:41:37 | 12:50:46 |
Re-Phasion | 12:48:46 | 12:48:11 | 11:00:48 |
369 | 12:11:09 | 9:49:40 | 8:55:42 |
못하는게Ops | 12:55:51 | 7:21:38 | 6:20:33 |
MVP | 11:6:48 | 8:37:16 | 5:37:11 |
Nice-Guys | 5:39:46 | 4:21:48 | 3:24:45 |
Growith | 4:53:5 | 4:49:56 | 2:43:50 |
해치웠나 | 7:23:40 | 2:44:0 | 1:03:02 |
rebase | 1:40:49 | 0:56:53 | |
Cheetah | 0:30:32 | 0:20:32 |
사용자들의 주요 피드백들은 다음과 같았습니다.
긍정적 피드백 | 홈페이지가 예쁘고 아이디어도 좋았다 |
---|---|
노래가 너무 좋아서 코딩하는데 집중이 잘 되었다 | |
디자인이 예쁘고 테마도 다양해서 너무 좋다 | |
디스코드보다 화질 및 음질이 좋았다 | |
개선점 | 카메라랑 마이크가 잘 되는지 확인할 수 있는 방법이 필요할 것 같다 |
노래나 테마를 바꿀 수 있다면 더 좋을 것 같다 | |
카메라랑 마이크가 잘 되는지 확인할 수 있는 방법이 필요할 것 같다 | |
앱으로 출시했으면 좋겠다 (태블릿용으로도 출시했으면 좋겠다) | |
채팅 보낼 때 알람 기능이 있으면 좋겠다 | |
코딩 테스트 대결과 같은 게임적 요소가 있으면 좋겠다 | |
부정적 피드백 | 기획의도를 하나도 모르는 제 입장에서 여타 다른 화상회의 시스템(zoom, webex 등)과의 차별점을 느끼지 못했고 따라서 아직 이 서비스를 찾아와서 쓸만한 이유를 찾지 못했다 |
마이크 하울링이 심하고 화면 공유가 안될 때도 있다 |
아쉬웠던 부분은 이벤트 참가대상 조건이 현재 프로젝트를 진행하고 있는 같은 팀이였기 때문에 모르는 사람끼리 코딩을 진행하지 못했다는 점입니다. 이후 MVP를 개발하면서 추가적으로 이벤트를 진행할 때 이를 반영해 계획할 예정입니다.
아쉬웠던점은, 저희가 생각하는 모각코는 모르는 사람의 방에도 입장을 하여 같이 코딩을 진행할 수 있으며, 소통을 할 수 있는 도란도란 분위기였지만, 아쉽게도 소프트웨어 마에스트로 연수생들은 이미 팀으로 이루어져, 팀끼리 많이 진행을 하여 저희의 첫 기획의도와 어긋났습니다.
ㅇ 결과물 형태
상세내용(추가설명)
ㅇ 서비스 방식
상세내용(추가설명)
□ 기대효과 및 활용분야
ㅇ 기대효과
사용자 측면 |
|
비즈니스 측면 |
|
개발자 측면 |
|
# 시장 파급력, 고용 창출, 개발자 생태계에 미치는 영향, 사회공헌 및 공공목적 활용 등
ㅇ 결과물 활용 방안
# 비즈니스 모델 구축, 사업화 계획(창업 등), 특허, 논문 등재, 기술 제휴 등
□ 기획심의 개선 요구사항 반영 결과(주요)
개선 요구사항 | 반영 결과 |
블러 처리 외에도 사용자가 원하지 않는 경우 화면 공유 기능으로 인한 자료 유출을 방지할 수 있도록 기술적 방어막이 필요함 | 블러처리 외에도 사용자가 키보드를 입력할 때마다 인터랙션을 보여줌으로써 코딩 화면을 대체할 수 있을 것 같습니다. 화면 공유 뿐만 아니라 실시간 화상(캠)도 지원하여 코딩 화면이 아닌 사용자의 손이 보이도록 할 수 있습니다. |
강의자를 둔다.
실시간 통신이 1:100까지 가능하게 한다.
강의자가 선정한 수강료 내게 한다.
주요 내용만 요약하여 작성, 개선 요구사항 수에 따라 행 추가 가능
저희와 비슷한 Agora는 동접 1000명이 하루동안 이용할 경우 12,945.6달러
MODOCO
CPU 사용 4%대
동접 20명이 1분동안 0.003472달러
동접 20명이 60분동안 0.2083달러
동접 20명이 하루동안 5달러
1명이 하루동안 0.25달러
1명이 한달동안 7.5달러
유사서비스
동접 1000명이 1분동안 8.99달러
동접 1000명이 60분 동안 539.4달러
동접 1000명이 하루 동안 12,945.6달러
동접 20명이 1분동안 0.1798달러
동접 20명이 60분동안 10.788달러
동접 20명이 하루 동안 258.912달러
2. Discord
1명 1달 요금 9.99달러
화질 비교
디스코드
모도코
디스코드는 유료 플랜을 하지 않는 이상 화질이 720p 로 HD로 제한된다.
하지만, 우리는 WebRTC library를 자체적으로 사용하여 FHD 화질까지 문제없이 송신할 수 있다.
음질또한 디스코드와 같은 4800hz의 frequency를 송신 및 수신 할 수 있다
문제점 및 해결방안 UPDATE VER.
지라, 컨플 등등
문제점에
깃허브 브랜치 전략(주형님 설명해주신 trunk base)
hotfix만 main
구 분 | 문제점 및 해결방안 |
관리 측면 | [문제점] 애자일한 개발론을 채택하며 칸반보드를 활용하기 위해 Jira라는 도구를 사용하였습니다. 하지만 task의 범위를 어떻게 잡아야 할지, 이슈 트래킹을 제대로 못하는 등 어려움을 겪었습니다. 또한 스프린트 단위의 프로젝트 진행이 익숙하지 않았고 이슈 기반의 소통이 잘 되지 않았습니다. 처음에는 무리한 일정을 잡아서 칸반 보드에 진행 중인 스토리가 많았고 팀원들이 어떤 작업을 하고 있는지 알기 어려웠습니다. [해결방안] 멘토님을 통해서 애자일 및 Jira, Confluence를 활용한 프로젝트 관리법에 대한 피드백을 받았습니다. 서로 번갈아가며 스크럼 마스터를 하며 프로젝트의 전반적인 상황을 관리하였습니다. 각 에픽은 스토리 기반으로 분류하고 하위 태스크로 각자 할 일로 나누었습니다. 현재 진행상황 및 이슈 보고를 적으며 팀원들과 sync를 맞춰갔습니다. 또한 기존에 스프린트 단위를 2주에서 1주로 줄여 Try and Error를 하였습니다. 스프린트가 끝날 때마다 KPT 회고를 진행하며 좋았던 점, 아쉬웠던 점, 노력해야 할 점에 대해 이야기를 나누었습니다. 현재는 스토리 포인트를 기반으로 무리한 일정을 잡지 않으며 실제 진행중인 이슈만을 칸반 보드에 반영하여 효율적으로 프로젝트를 진행하고 있습니다. [문제점] 전통적인 git flow 방식으로 브랜치 전략을 사용하였습니다. 프로젝트 시작 후 2주 안에 배포를 하여 브랜치 관리에 드는 리소스가 많았습니다. [해결방안] 트렁크 기반 브랜치 전략으로 변경하였습니다. main을 주 브랜치로 두고 며칠 내로 main에 머지할 dev 브랜치에 새 기능을 작업하였습니다. 머지할 때 발생하는 conflict 비율이 현저히 낮아졌고 코드 리뷰 및 관리에 용이하였습니다. 보다 잦은 배포를 진행하는 데에도 더 적합하였습니다. |
개발 측면 | [문제점] Web에서의 실시간 통신 기술인 WebRTC가 처음 써보는 기술이라 처음에 막막했음. 특히, 처음의 시그널링 부분은 표준이 없었기 때문에 어떤 기술을 써야할지 막막했음. [해결법] 팀원들끼리 실시간 통신 기술 세미나를 진행하며 지식을 쌓아감. 국내 WebRTC 컨퍼런스에 참여해서 안목을 넓힘. 따로 WebRTC 컨퍼런스를 참여하는 등 여러가지 안목을 넓힘.
[문제점] React 18이 되면서 비동기의 제어가 쉽지 않았음. Strict Mode로 인해 useEffect가 두 번 호출되는 등 React16과 전혀 다른 동작을 하는 문제가 있었음. [해결법] 따로 React 18의 동시성이 어떻게 이루어지는 팀끼리의 세미나를 통하여 공부를 해서 해결했음.
[문제점] 기본적으로 npm을 사용하게 되어 있는데 yarn을 이용한 빌드 및 배포 자동화에 어려움을 겪음. [해결법] yarn을 이용해서 빌드가 되도록 Build 스크립트를 작성 후에 AWS Code Build로 빌드를 진행함. 해당 빌드 결과물을 S3에 업로드를 하고 그것을 이용해 배포가 되도록 자동화 시스템을 구성함. |
기술 습득 노력 UPDATE VERSION
담당 | 기술 습득 노력 | |
---|---|---|
연수생 | 고주형 |
|
윤영기 |
| |
이하령 |
|
기대효과 및 활용분야 고주형
사용자 측면 |
|
비즈니스 측면 |
|
개발자 측면 |
|
개선 요구사항 | 반영 결과 |
|
|
주요 기능
화상회의기능
여러 사람들이 한 모도코 방에 입장하여 WebRTC 기술을 사용하여 서로의 화면 및 얼굴을 공유하며, 실시간 채팅을 지원
최대 50명까지 입장하여, 모각코를 진행 가능
개발자를 위한 기능
나의 프로필을 공유 할 수 있으며, 내가 어떤 개발자이며, 어디 소속인지, 깃허브 프로필 확인등이 가능
마음에 드는 개발자인 경우, 친구 추가 및 Direct Message 로 개인적인 연락 가능
이번주에 모도코 플랫폼에서 코딩을 얼마나 했는지 등 다양한 통계 기능을 지원
지원 가능한 통계
일별, 주별, 월별 등 기간에 따른 사용시간
코딩 언어별 어떤 작업을 얼마나 했는지 통계
어떠한 방에서 누구와 얼마나 작업을 진행을 했는지 알려주는 통계
Attachments:



















