Into Stunning Space, IceCraft!
•
젭, 줌 등 화상채팅을 기반으로 한 모임에서 다양한 게임을 통해 Icebreaking을 하는 웹사이트입니다.
•
마피아, 노래 맞추기 등 다양한 서비스 준비 중
•
Livekit을 사용하여 화상채팅을 구현하고 soketIO를 사용하여 프론트/백엔드 간 통신을 활용하여 마피아 게임을 구현했습니다.
아키텍쳐
주요 기술
WebRTC 기반 화상 커뮤니케이션 마피아 게임
기술적 의사결정
•
SEO에 유리, 이미지 최적화
•
앱 라우팅으로 유연한 라우팅 구성을 할 수 있음
•
일정 시간마다 자동으로 페이지를 렌더링하는 기능(ISR)이 필요 (랭킹 페이지)
•
계정, 방, 게임 진행에 필요한 데이터 등 대량의 데이터가 필요
•
여러 사용자가 데이터에 동시에 접근해서 데이터를 생성, 조회, 수정, 삭제하는 기능 필요
•
DB 대량의 작업이 필요하며 supabase는 DB API 사용에 제한이 없음
•
필요한 데이터들은 대부분 텍스트라서 트래픽 사용량 제한도 양호
•
SQL문을 직접 작성할 필요 없어 공식 문서에서 지원하는 API 사용 가능
•
Auth 긴능을 제공해서 계정과 로그인 기능 제공
•
방 기능과 게임 진행 기능은 server에서 관리하고 client는 유저의 입력을 받아 server에게 전달하여 게임을 진행
•
클라이언트와 게임 로직을 서버에서 중앙 통제 방식으로 진행
•
서버가 고성능을 요구하지 않음
•
server 개발 시간 대비 효율성이 좋음
•
socket.io에서 공식적으로 지원
•
서버와 클라이언트간의 양방향 통신과 빠른 통신이 필요
•
socket.io는 소켓 방식 중에서도 여러 기능을 제공 (네임스페이스, 룸, 브로드캐스트, 다양한 자료형 전달)
•
Next.js 13버전 이상의 라이브러리 지원
•
마피아 게임에 필수적인 요소 지원 (화상 카메라 및 마이크)
•
다양한 components와 hooks를 제공

팀원
팀 노션 :
IceCraft
멤버보기
Search