-
Notifications
You must be signed in to change notification settings - Fork 1
11 5 회의
Sunny edited this page Nov 15, 2024
·
1 revision
헥사고날 아키텍처 설계는 어떤가?
: 조금 어려울것 같지만 간단하게 의존성만 신경써서 해보자
원래는 시그널링 이후에 클라이언트가 정보를 가지고 클라이언트와 SFU 서버를 연결하여 스트림을 보내는 과정이다.
그런데 우리는 단방향 스트리밍인데, 시그널링 과정이 필요한가? 시그널링은 p2p 방식에서 서로의 정보를 알기 위해 있는것이 아닌가?
클라이언트 쪽도 시청하는건데 p2p로 연결을 해야되나? ⇒ 안그래도 된다. http나 websocket방식으로 해서 받는 방식으로 해도 된다.
- 방(room) 개념을 만들어서 그 안에서 P2P 방식으로 host와 client의 연결을 관리한다
- 방에 host와 client의 정보가 담겨져 있고, 실시간으로 데이터를 주고 받는다
- 스트리밍 서비스에 적합하다. P2P 방식으로 연결되기 때문에 delay가 거의 없다
- 이미 잘 구현해 놓은 라이브러리가 존재한다. mediasoup
- 서버에서 모든 연결을 관리하기 때문에 서버에 가해지는 부하가 크다
- 방을 만들어 참가자 정보를 유지하지만, 실제 세션을 유지하지 않고 데이터만 기록한다
- 스트리밍 데이터는 미디어 데이터로 변환 후 Object Storage, CDN에 저장한다.
- 사용자가 요청하면 CDN 혹은 Object Stroage에서 데이터를 가져와서 제공한다.
- 서버에 가는 부하가 줄어든다
- 영상을 장기 보관 혹은 관리에 더 유리하다
- webRTC에 비해서 delay가 훨씬 크다
- 기존 webRTC와 비교했을 때 구현하는 방식이 다르기 때문에 추가 학습이 필요하다
- Mediasoup 포트 매핑 문제
- swagger 같은 응답 코드에 다양한 응답 보여주기
- Sudo가 계속 비밀번호를 요청함
- Docker 이미지가 너무 크다
- Git action에서 도커 이미지 빌드 시간을 단축시켜보자
- Docker compose를 이용해서 메모리 사용률을 줄여보자
- 방송 녹화 시 CPU 과부하 문제를 해결해보자
- Release 브랜치? 너 필요해?
- 로딩이 너무 짧아…!
- NestJS ORM으로 무엇을 사용해야 할까?
- WebRTC를 이용한 1:N 스트리밍 서비스에서 시그널링 서버가 필요할까?
- 실시간 채팅 구현: 인메모리 방식을 선택한 이유
- MySQL 아키텍처 개선: DB 의존성 분리와 서버 역할 명확화
- 브라우저 창이 최소화되면 비디오 송출이 안된다…!
- Mediasoup 기본 개념
- DLTS와 Signaling
- Tell, Don't Ask (TDA) 원칙이란
- VPC(Virtual Private Cloud) 학습 정리
- 순환참조: A 서비스 ‐ B 서비스 vs. A 서비스 ‐ B 레포지토리
- Dto 메서드 전략
- WebRTC란?
- 자바스크립트 패키지 매니저(npm, yarn, pnpm)
- shadcn/ui을 이용해 UI 개발 생산성 높이기
- React 이벤트 핸들러 네이밍(on vs handle)
- React-router-dom의 createBrowserRouter을 사용해보기
- fetch vs axios