Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] 운영진 피드백 반영하여 README 수정 #363

Merged
merged 2 commits into from
Dec 4, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading