Skip to content

Commit

Permalink
Merge pull request #363 from boostcampwm-2024/docs/#362/readme
Browse files Browse the repository at this point in the history
[Docs] 운영진 피드백 반영하여 README 수정
  • Loading branch information
simeunseo authored Dec 4, 2024
2 parents 0724fe9 + cdd2ec8 commit 22ec22e
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,26 +56,33 @@

<h1 id='기획_의도'>💭 기획 의도</h1>

> "부스트캠프의 **기술 공유** 시간이 참 좋은데, 시간이 한정적이다..."
부스트캠프에서는 월요일마다 "**기술 공유**"를 진행하여, 원하는 주제로 발표하고 공유하는 시간을 가졌습니다. 이 시간이 매우 유익했지만, 발표를 준비하고 참여하는 시간이 한정적이라고 느꼈습니다.

> "**시간에 구애받지 않고 누구나** 지식을 나눌 수 있는 플랫폼이 있다면 어떨까?"
> "준일님의 글쓰기 클래스처럼, 캠퍼들도 **각자의 전문성과 경험을 더욱 자유롭게 공유**할 수 있다면 좋지 않을까?"
> "**각자의 전문성과 경험을 더욱 자유롭게 공유**할 수 있다면 좋지 않을까?"
#### ➡️ 누구나, 언제든, 자유롭게 개설하고 참여하는 실시간 지식공유 플랫폼 **TICLE**❗️
#### ➡️ 누구나, 언제든, 자유롭게 개설하고 참여하는 실시간 지식 공유 플랫폼 **TICLE**❗️

<h1 id='핵심_목표'>🎯 핵심 목표</h1>

1️⃣ 실시간으로 발표자와 참여자가 즉각적인 피드백과 질문이 가능한 **양방향 소통 환경**

2️⃣ 모든 참여자가 **카메라, 마이크, 화면 공유**를 제어하고 활용할 수 있는 환경

3️⃣ **다수의 참여자가 동시에 접속**하여 최대한 많은 사람에게 지식 공유를 할 수 있는 안정적인 환경
3️⃣ 부스트캠프의 모든 캠퍼들이 동시에 접속할 수 있는 **안정적인 환경**

<h1 id='시스템_아키텍처'>🖧 시스템 아키텍처</h1>

![Cloudcraft Image (4)](https://github.com/user-attachments/assets/1e5874ee-2485-4e89-90a0-cebb47621c77)

최대한 많은 인원을 안정적으로 수용하고, 참가자 간 상호작용을 원활히 하기위해
다음과 같은 핵심 기술을 선택하였습니다.

1. 통신 지연 시간이 적고 별도의 플러그인 없이 사용할 수 있는 **WebRTC**
2. 선택적으로 스트림에 대한 수신을 결정하여 부하를 관리할 수 있는 **SFU 구조**
3. 세밀한 로직을 직접 설계할 수 있고, 스트림에 대한 로우 레벨의 제어가 가능한 **MediaSoup**

<h1 id='핵심_기능'>✴️ 핵심 기능</h1>

## **✔️ 누구나, 언제든, 자유롭게 실시간 지식 공유가 가능해요**
Expand Down Expand Up @@ -119,13 +126,16 @@

<img src='https://github.com/user-attachments/assets/825a5ea0-e873-40e1-a866-5706bde4bf5a' width=600 alt='AI 요약'/>

- 실시간 티클을 진행하면서 AI 음성 요약 버튼으로 녹음을 시작할 수 있어요.
- 티클이 종료되면 대시보드에서 요약본을 확인할 수 있어요.

<h1 id='우리만의_기술적_경험'>🏃 우리만의 기술적 경험</h1>

## 공통

<h4>WebRTC와 Mediasoup</h4>

> TICLE 프로젝트의 핵심 기술인 'WebRTC'와 'Mediasoup'에 대해 5명 팀원 모두가 학습 정리를 진행하였습니다.
> TICLE 프로젝트의 핵심 기술인 '**WebRTC**'와 '**Mediasoup**'에 대해 5명 팀원 모두가 학습 정리를 진행하였습니다.
- [WebRTC 정리 - 이지은, 황성하](https://simeunseo.notion.site/WebRTC-8c90ccf49d7c4ec5894222aeeb6de5a4?pvs=4)

Expand Down Expand Up @@ -166,10 +176,10 @@
> 로그인 성공 후 JWT를 쿠키에 넣은 뒤 redirection을 하여 클라이언트에서 쿠키를 조작할 수 없었습니다.
> 클라이언트 단일로 로그아웃이 불가능하여 쿠키 옵션에 대해 공부하며 로그아웃 기능을 구현했습니다.
<h4><a href='https://simeunseo.notion.site/nest-Throttler-143c27a1f6bf4feb9b0983e770c82b95?pvs=4'>🔗 게스트 로그인 구현과 @nest/Throttler</a></h4>
<h4><a href='https://simeunseo.notion.site/ffmpeg-4668724ddc4c4ec484c4e2551a11f577?pvs=4'>🔗 mediasoup + ffmpeg을 활용한 음성저장</a></h4>

> 캠퍼들이 저희의 서비스를 편하게 테스트할 수 있도록 게스트 로그인 기능을 구현하였습니다.
> 게스트 로그인을 구현하며 고민이였던 과도한 게스트 로그인 요청을 nest의 Throttler를 활용하여 해결하였습니다.
> 강의 AI 요약 기능을 위하여 회의실의 음성을 저장해야합니다
> mediasoup의 transport에 대해 간단히 학습하고 ffmpeg을 활용하여 음성저장 기능을 구현하였습니다.
<h4><a href='https://simeunseo.notion.site/clova-speech-clova-studio-ec1a9813b5a74439b32186b4fc5f8450?pvs=4'>🔗 Clova studio, Clova speech</a></h4>

Expand Down

0 comments on commit 22ec22e

Please sign in to comment.