-
초안 발표Projects/나만의 무기 2024. 6. 14. 00:32
팀이 결성되었다.
안태리, 정재혁, 남청우, 유흥국, 문건우24시간 만에 2개의 초안을 만들어 최종발표처럼 발표를 하는 미션을 받았다.
우리의 전략
우선 밤 9시 까지 하나의 안건을 완성하기. 그 다음 두번째 안건 생각하기.
이유: 하나의 주제에 몰입했을 때 집중이 더 잘되어서. 우선 하나를 만들면 두번째것은 아이디어만 내면 좀더 수월할거 같아서.
KOVI
"Keyword Out Voice In" 음성대화를 키워드로 기록해주는 서비스
주제 선정 배경
겪었던 문제
- 팀 회의 중 어떤 키워드들을 언급했는지 기억하기 어려움
- 회의의 흐름을 다시 파악하고 싶을 때가 자주 있음
- 중간에 회의에 참여한 경우, 이전 대화 내용을 파악하기 어려움
- 회의록 작성등 회의의 내용을 요약하고싶었을 때 다시 듣고 치느라 불편했던 경험.
핵심 기능 설명
프로젝트 DOVI는 음성 채팅 웹 서비스로, 회의 중 음성으로 말한 내용을 실시간으로 분석하여 키워드를 추출하고, 이를 마인드맵 형태로 시각화해 줍니다.
주요 기능
- 키워드 추출 및 마인드맵 시각화:
- 실시간으로 음성에서 키워드를 추출하여 마인드맵으로 보여줍니다.
- 키워드 흐름 분석:
- 키워드의 발생 순서와 흐름을 시각적으로 확인할 수 있습니다.
- 참여자 분석:
- 각 참여자의 발언 횟수와 키워드 언급 횟수를 분석하여 참여도를 시각화합니다.
- 분석 결과 저장:
- '추출하기' 버튼을 통해 분석 결과를 문서로 저장할 수 있습니다.
시연 / 데모
- 유즈 케이스:
"팀 회의 시작 -> 발언 내용 실시간 키워드 추출 및 마인드맵 시각화 -> 대화 중간에 합류한 팀원에게 지난 대화 내용 요약 제공 -> 참여자 분석 결과 시각화 -> 추출하기 버튼을 통해 분석 결과 저장"
- 흥미 요소: 실시간으로 변하는 마인드맵과 분석 결과를 통해 청중의 주의를 끌며, 시연을 통해 서비스의 실용성을 강조
아키텍쳐
- 전체 아키텍쳐 소개:
- 프로젝트 DOVI의 전체 구조를 한눈에 볼 수 있게 도식화된 아키텍쳐를 먼저 보여주기.
- 사용된 기술과 이유:
- 각 기술을 선택한 이유와 그로 인해 얻게 된 장점을 설명.
- 음성 인식 API
- 키워드 추출 알고리즘
- 마인드맵 시각화 도구
서버를 음성을 텍스트로 변환하고 키워드로 추출하는 서버와 클라이언트 끼리 미디어를 주고받는 서버로 분리했습니다.
기술적 챌린지
- 실시간 반응성 문제:
- 두 번의 API 호출이 연동되어 실시간 반응이 지연되는 현상이 발생. 이를 해결하기 위해 지연시간 최소화에대한 노력과 적용한 방법을 소개하기.
- 마인드맵의 반응이 느린 이슈가 있었는데, 마인드맵 업데이트 시 변경된 부분만 전송하도록 해 마인드맵 반응성을 개선
- 음성 및 영상 끊김 문제:
- 많은 정보량을 한꺼번에 서버에 요청하면서 발생하는 음성 및 영상 끊김 문제 해결을 위한 최적화 방법.
-
- 해당 이슈를 로드 밸런싱과 오디오 및 비디오 데이터를 압축하여 최적화?
- 키워드 분류 기준 설정:
- 키워드를 주제별로 묶는 기준을 정하는 것이 어려웠던 점과 이를 해결하기 위해 어떤 논리와 방식을 사용했는지 설명하기.
- 키워드들을 주제별로 분리하는 것의 로직에서 중복되는 의믜의 단어를 줄이기 위해 최장공통부분수열 알고리즘을 적용해 분석량을 줄였습니다.
팀원 소개
- 팀원 사진 및 역할 소개:
- 팀장: 프로젝트 총괄 및 아키텍쳐 설계
- 프론트엔드 개발자: UI/UX 디자인 및 구현
- 백엔드 개발자: 서버 및 데이터베이스 관리
- 데이터 분석: 키워드 추출 및 분석 알고리즘 개발
- 기타: 테스트, 안정화 등등
나는 장소가 주는 힘이 있다고 생각하고 그힘을 다쓰면 잠시 새로운 장소를 찾아가야한다고 생각한다. 그래서 우리팀은 1안을 끝내고 2안을 생각하기위해 밤 산책을 떠났다. 일부러 it 기술적인 이야기를 뺀체 "무엇을 할때 즐거웠어?", "뭐가 불편했어?" 라는 대화를 하며 길을 걸었다. 우리는 함께 무엇을 할때 즐거웠던 경험을 떠올리며 2안은 대규모로 다함께 참여하는 게임을 만들기로 했다.
다모모
다함께 모두 모여. 웹 기반의 최대 50명 동시 접속 게임.
주제 선정 이유
즐거워야 할 시간에 게임 참여 인원이 제한되어 아쉬움을 느낀 경험은 없으셨나요?
저희 팀은 이런 문제를 해결하고 싶었습니다. 최대 50명이라는 대규모 인원이 함께 즐길 수 있는 게임을 만들어 모두가 함께 웃고 즐기는 시간을 만들고 싶었습니다.
단체 생활 아이스브레이킹.
주요 기능
- 실시간 멀티플레이어 게임
- 50명 동시 접속 및 25:25 팀 구성
- 빠른 반응 속도 및 협동을 요구하느 게임플레이
- 스마트폰을 컨트롤러로 사용하는 다양한 모드 제공
- 타이밍 기반 게임 (줄넘기)
- 스마트폰 기울기 활용 게임 (흔들흔들, 밀지마 빠진다)
- 협동 리듬 기반 게임 (줄다리기)
- 이미지 인식 기반 게임 (사진 색 맞추기)
시연 영상
아키텍처
3D게임 구현을 위해 Three.js를 사용하였고 프론트엔드는 리엑트, 백엔드는 Nodejs를 이용하였습니다. socket.io를 사용하여 게임 상태를 관리하고 Redis를 활용하여 게임 데이터를 효율적으로 저장하였습니다.
기술적 챌린지
- 서버 부하 관리
- 다수 플레이어가 동시 접속해도 안정적인 서버환경을 제공하기 위해 클러스터링과 로드 밸런싱을 활용해 여러 웹 서버를 사용했습니다.
- 지연시간 최소화 & 상태 동기화
- 플레이어의 상태를 동기화하기 위해 클라이언트가 게임상태를 예측하여 렌더링하는 로직을 추가하였습니다.
- 서버는 오차를 계산하여 보정할 수 있도록 하였습니다.
'Projects > 나만의 무기' 카테고리의 다른 글
429에러 해결하기 (0) 2024.07.29 나만무 중간 발표 For 멘토님 (0) 2024.06.27