TIL
파이널 프로젝트 2일째
i'm suna
2024. 1. 16. 00:57
webRTC 개발과 관련한 이슈와 개발시 참고사항을 찾아봤다.
- 실시간 번역 (구글 api 사용) 시 구글 번역의 낮은 정확도
- chatGTP를 사용해 문맥간 비교 후 이중검토 (느림)
- 동영상에 자막을 넣지 않고 번역 페이지를 따로 만듬
- 라이브방송때는 낮은 정확도로 실시간 번역을 넣고 추후 자막수정페이지를 따로 만들어서 사용자가 직접 번역을 넣게 함
- 서버 트래픽
- 채팅과 라이브 방송을 위한 서버를 각각 새로 팜
- 인원제한을 넣어서 한정된 인원만 들어오게 함
- 마이리틀텔레비전 참고 (방송하는 사람은 한명이니까 방송자를 위한 서버를 하나 파고 송출하는 서버를 여러개 파서 나머지 서버에서는 관람만 가능하도록) _ 제공되는 동영상 파일은 메인서버만
- 웹소켓 비교 소켓io와 firebase중에서 고민했다. 왜냐하면 라이브방송중에만 기능하는 채팅기능이기 때문에 사진이나 동영상같은 첨부파일전송기능이 필요하지 않고, 복잡한 쿼리가 필요하지 않기 때문.
- firebase로 실시간 채팅을 만든적이 있기 때문에 이걸로 진행해보겠습니다.기술 특징 및 장점 단점 주요 사용 사례
Socket.IO - 양방향 통신을 지원하는 실시간 웹 소켓 라이브러리<br>- 크로스 플랫폼 지원<br>- 쉬운 사용 및 설정 - 채팅 이외의 기능을 위해 별도의 서버가 필요하다.<br>- 일부 브라우저에서 WebSocket 지원 문제가 발생할 수 있다. 실시간 채팅, 알림, 협업 도구 등 Firebase - 서버리스 및 클라우드 기반의 실시간 데이터베이스 제공<br>- 간편한 설정 및 사용<br>- 실시간 동기화 지원 - 대용량 데이터 및 복잡한 쿼리에는 비용이 증가할 수 있다.<br>- 서버리스로 제한된 기능이 있을 수 있다. 채팅 애플리케이션, 실시간 협업 앱 등 Pusher - 쉽게 사용 가능한 Pub/Sub 메시징 서비스<br>- 강력한 실시간 기능 제공<br>- 즉시 사용 가능한 채팅 키트 제공 - 일부 상황에서는 비용이 증가할 수 있다.<br>- Pusher 서비스에 의존해야 한다. 채팅 애플리케이션, 실시간 협업 앱 등 RabbitMQ - 메시지 큐 시스템으로 분산 메시징을 지원<br>- AMQP 프로토콜을 사용<br>- 다양한 언어 지원 - 메시지 큐가 필요 없는 간단한 애플리케이션에는 오버헤드일 수 있다.<br>- 확장성 측면에서 어려움이 있을 수 있다. 이벤트 기반 아키텍처, 분산 시스템 등 Kafka - 분산 스트리밍 플랫폼으로 대량의 이벤트 스트림 데이터 처리 지원<br>- 높은 확장성 및 내고장성 - 초기 구성 및 관리가 복잡할 수 있다.<br>- 작은 규모의 데이터 처리에는 비효율적일 수 있다. 대규모 이벤트 스트리밍, 로그 처리, 실시간 데이터 분석 등 AWS AppSync - 서버리스 GraphQL 서비스로 실시간 데이터 동기화 지원<br>- AWS Amplify 및 AWS SDK 통합 - 복잡한 데이터 모델 및 쿼리에 대한 학습이 필요하다.<br>- AWS 서비스 비용이 발생할 수 있다. 채팅 애플리케이션, 실시간 협업 앱 등
- 동영상 저장 플렛폼
- vimeo
- youtube 두 곳에 영상을 업로드 해 보니 vimeo가 훨씬 업로드속도가 빨랐다 다만 영상업로드 중 페이지 전환이 어려울수도 있기 때문에 SPA를 도입 → https://www.elancer.co.kr/blog/view?seq=214(SPA를 사용하는 이유)