Skip to content

뻔한 일상에 웃음 한 방 funch! 👊🏻 실시간 스트리밍 방송 플랫폼 📺

Notifications You must be signed in to change notification settings

boostcampwm-2024/web25-funch

Repository files navigation

�제목


😝 기분따라 자유롭게 즐기는 FUNCH

Funch는 취향을 반영해

✔️ 스트리머는 기분이나 방송의 전반적인 분위기를 분위기 카테고리로 표현할 수 있어요.
✔️ 마음에 든 스트리머를 팔로우하여 해당 방송을 쉽게 찾아볼 수 있어요.

누구나 시청과 채팅을 자유롭게!

✔️ 로그인 하지 않더라도 방송을 시청하거나 다른 시청자들과 익명으로 소통할 수 있어요.
✔️ 익명 유저의 닉네임과 표시 색상을 웹소켓 서버에서 랜덤하게 생성하면, 클라이언트에서 채팅 UI로 표현해줘요.


최종_1

🎞 서비스 기능 전체 보기

라이트/다크 모드

라이트다크모드



로그인/로그아웃

로그인

로그아웃



방송 시청

방송시청



미니 플레이어

미니플레이어



채팅 및 번역

채팅



팔로우

팔로우



방송 송출/설정

방송송출설정



검색

검색



카테고리 탐색

카테고리





🌊 빠르고 중단 없는 경험

적은 레이턴시

✔️ Object Storage에 API를 통해 업로드하지 않고, mount하여 속도를 500ms이상 단축시켰어요.
✔️ 더 적은 레이턴시를 위해서 다양한 시도를 했어요. 그 결과 최소 레이턴시를 3초로 줄일 수 있었어요.

latency



방송 시청 중 화면을 전환하더라도 미니 플레이어로 중단 없이 방송을 볼 수 있어요.

✔️ 라이브 섹션을 하나의 페이지가 아니라, 레이아웃에 존재하는 컴포넌트로 구현했어요.
✔️ 라이브 컨텍스트 프로바이더를 통해 라이브 정보 및 화면 경로 정보 등을 관리하고, 이에 따라 UI를 변경해요.

🚨 미니 플레이어로 전환되더라도 SSE 및 채팅 웹 소켓 통신이 끊기면 안돼요.

최종_2





🛠️ 불필요한 라이브러리는 NO, 뚝딱뚝딱 가내수공업

✔️ 컨텍스트로 모든 상태를 관리할 수 있겠다고 판단하여 전역 상태 관리 라이브러리는 사용하지 않아요.
✔️ 미디어 서버를 우리 상황에 맞게 직접 구현했어요.





👊🏻 Funch는 언어의 장벽을 뿌셔 !

✔️ 사용자는 자신의 채팅을 한국어, 영어, 일본어, 중국어로 번역할 수 있어요.
✔️ 글로벌 스트리머 & 사용자들과 언어의 장벽 없이 소통할 수 있어요.

최종_3





👷🏻 지속적인 (서비스/코드) 품질 점검

✔️ 개발과 리팩토링의 주기를 반복하며 코드 가독성과 안정성을 높여요.
✔️ 라이트하우스와 GPT에게 주기적으로 서비스 및 코드에 대한 피드백을 요청하고, 이를 반영해요.

refactor





🍎 기술 스택

분야 기술 선택 이유
공통 TypeScript
Socket.io
FE Next.js
React
Tanstack-query
BE Nginx
NestJS
MySQL
Redis



🛠️ 인프라 구성도


infra





👩🏻‍💻🧑🏻‍💻 Team 무지개 치즈


J067_김진영 J191_이인표 J266_최호빈 J279_홍정우
BE FE BE FE
@JYKIM317 @WilleLee @zzawang @HongBoogie

About

뻔한 일상에 웃음 한 방 funch! 👊🏻 실시간 스트리밍 방송 플랫폼 📺

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •