-
Notifications
You must be signed in to change notification settings - Fork 1
알쏭달쏭 프로젝트 소개
부스트캠프에서 팀 프로젝트를 시작할 때
- 멀티미디어를 활용한 서비스
- 커뮤니티 서비스
- P2P 통신
로 대주제를 나눠 지원을 받았습니다. 미리 팀원들과 만나볼 수 있는 시간이 있었고, 조사 결과 다 같은 주제를 선택했다는 것을 알게 되었고 그 뒤로 어떤 서비스를 만들어볼까에 대한 생각을 하게 되었습니다.
멀티미디어를 크게
- 영상
- 사진
- 음악
으로 나누어 생각해 보았습니다. 그 중 3번인 음악을 이용한 서비스를 개발해보면 좋을 것 같다고 생각을 하였습니다.
평소 친구들이 같이 있는 톡방에 음성메시지로 성대모사를 보내거나 장난을 많이 치곤 했습니다. 친구들도 같이 음성메시지로 응답을 해주기도 하였는데 이때의 기억이 즐거운 기억으로 남아있었고, 이를 게임화 해보면 좋지않을까 생각하게 됐습니다.
또한 부스트캠프에서 개발하는 프로젝트로 당장 출시하여 수익을 내기 위한 것이 아니고 다같이 재밌게 개발에만 몰두 할 수 있는 기회라 생각을 하였고. 있어보이는 것(포트폴리오를 위한?)을 만들기보다는 정말 만들어 보고 싶은 것을 만들자라는 생각을 했습니다. 그리고 개발하는 사람이 즐거워야 사용자도 즐겁게 이용할 수 있을 것 같고 더 좋은 작품이 나올 것이라 생각하였습니다.
이에 대해 주제 선정 기간에 회의를 할 때 제안을 해보게 되었고 팀원 모두 흔쾌히 동의하여 저희 프로젝트의 주제 선정을 하게 되었습니다.
알쏭달쏭이 어떤 프로젝트인지 소개하기 위해 다른 예시를 들어 설명하는 것이 빠를 것 같습니다.
기존에 존재하던 서비스 중 가장 저희 프로젝트를 쉽게 설명할 수 있는 것이 [Gartic Phone](https://garticphone.com/) 입니다.
(연배가 있으신 분들에게는 가족오락관이 가장 이해하기 쉬운 예시일 것 같습니다)
Gartic Phone은
- 주제어 혹은 문장을 선정
- 다음사람은 해당 주제를 그림으로 그려 표현
- 다음 사람은 그림을 보고 주제어, 문장을 유추
- 다음사람은 3번에서 유추한 문장을 보고 다시 그림으로 표현
- 반복 후 결과를 함께 확인
하는 형태의 게임인데,
알쏭달쏭은 그림(시각)이 아닌 소리(청각)로 진행하는 게임이라 이해하시면 쉬울 것 같습니다.
Gartic Phone 혹은 가족오락관의 재미 포인트는 점점 변질이 되어가는 것.
- 그림은 실제 문장의 정보를 완벽하게 전달 할 수 없이 대략적인 의미 정도를 내포하고있고
- 가족오락관에서는 귀를 막음으로써 정보의 전달을 방해하여 변질을 유도하도록 함
노래는 가사라는 명확한 정보가 있기 때문에 이를 막기 위해 허밍(흥얼흥얼 대는 행위)로서 변질을 유도하도록 하였습니다.
알쏭달쏭의 그렇게 계획된 진행과정은 다음과 같습니다.
- 노래를 선택
- 선택한 노래를 허밍 후 다른사람에게 넘기기
- 허밍을 받은 사람은 허밍을 듣고 따라하기
- 3번을 반복 후 마지막 사람은 최종 허밍을 듣고 원래 노래가 무엇이었을지 유추
이 과정을 알쏭달쏭의 기본모드로 기획을 하고 이후에 다른 여러가지 모드들을 추가적으로 구상해보게 되었습니다.
- 📒 기획의 과정과 의도
- 📒 swift6 도입기 ‐ @unchecked Sendable을 사용해야만 했던 이유
- 📒 WaveForm(파형) 제작기
- 📒 프로젝트 구조와 이유
- 📒 화면 전환(Game NavigationController)
- 📒 DIContainer를 사용한 계기
- 📒 AudioHelper 제작기
- 📒 음악 플레이어의 compact 버전 제작기
- 📒 Combine을 이용한 데이터 전달
- 📒 파이어베이스를 쓰며 있었던 일
- 📒 캐싱 모듈 구현과 문제점
- 📒 로그 시스템 제작기
- ❗ Data 끼리의 비교
- ❗ 프레임워크 Reference 안잡히는 문제
- ❗ actor 안에서 timer가 실행되지 않는 문제
- ❗ NSLayoutConstraint 옵셔널 문제
- ❗ 테이블 뷰가 보고 있는 배열과 bind하고 있는 배열 간의 race condition 문제
- ❗ 테스트끼리의 독립성
- ❗ 네트워크 테스팅 시 Error 핸들링
- ❗ 여러 클라이언트가 서버에 동시 요청시, 데이터가 반영이 안되는 이슈 해결
- ❗ 의존성 framework 추가시 불러오지 못하는 문제
- ❗ Timer를 6초 설정해도 더 실행되는 문제
- ❗ Music Kit Data Request 에러
- ❗ DI Container 에서 생성한 인스턴스가 동시에 존재 하는 이슈