인공지능 청력 테스트 앱 개발 및 해커톤 후기


발단

때는 2021년 2학기 개강후 얼마 안돼서 우연히 학교 커뮤니티에 안드로이드 개발자를 구한다는 글을 보게 되었다.

내용을 보아하니 삼성병원에서 주최하는 디지털 헬스케어 해커톤 에 참가할 팀을 모집 중이었고 목표는 인공지능 청력 테스트 앱 제작이었다.

본격적으로 공부를 시작한지 막 6개월 차였던 나에겐 두렵기도 했지만 꼭 잡아야겠다는 뭔지모를 기대감에 바로 팀장님과 상담을 했다.

당시 나는 Kotlin의 기본 문법조차 몰랐고 당장 2개월 안에 앱을 완성해야했지만 팀장님께서 응원해주신 덕분에 과감히 도전할 수 있었다.


전개

역시 실제 프로젝트를 해보는 것과 글로만 공부하는 것은 천지차이가 난다는 것을 느꼈다.

프로젝트 기간에 매일 밤을 새며 코틀린 기분 문법부터 MVVM, Data Binding, Retrofit2, Room, Paging2, Coroutine 들을 공부하고 프로젝트에 접목 시켰다.

한번 사용(흉내)했다고 모든 내용을 이해한건 아니지만 개발자 꿈나무의 사기를 증진 시키기에는 충분했다.


위기

안드로이드 개발진들에게 위기가 봉착했다.

청력 진단을 위해 특정 주파수와 데시벨의 순음을 발생시켜야 한다.

순음으로 사용할 리소스 파일을 준비할 때 주파수는 특정할 수 있지만 데시벨을 특정할 수 없었다.

시스템 볼륨을 최대로 고정한 상태에서 순음 리소스를 MediaPlayer를 통해 재생하였고 mediaPlayer.setVolume(leftVolume: Float, RightVolume:Float) 함수를 통해 볼륨을 조절할 수 있었다.

0~1사이 Float값을 통해 세밀하게 볼륨을 조절할 수 있었지만 문제는 여러 기기에서 동일한 데시벨을 나도록 만들어야 하는것이다.

기획을 담당하시던 팀장님은 동일한 데시벨을 내도록 요청했지만 쉽지 않은 상황이었고 해커톤 멘토님들도 쉽지 않을거고 아마 불가능에 가깝다고 말씀하셨다.

나도 정확히 같은 데시벨을 내지 못한다라는 건 알고있었지만 그렇다고 프로젝트를 뒤엎을순 없다고 생각했다.

그래서 이어폰과 헤드셋의 공학적 원리를 찾아보았고 단위 와트당 데시벨을 나타내는 음압감도의 통계량을 계산해 신뢰할 수 있는 데시벨을 발생시키기로 했다.

pipi1


결국 여러 기기를 테스트 해본 결과 +-10% 오차범위 안에서 같은 데시벨을 발생시키는 앱을 만들 수 있었고 문제 해결 능력 평가항목에서 가산점을 받을 수 있었다!!!


스크린샷


결말

밤을 새며 혼신을 다했던 프로젝트는 결국 아쉬운 결과로 끝났다.

30개의 본선 팀들 중에 많은 기창업 팀들이 투자 유치를 위해 지원했고 너무 수준이 높었다며 자기 위로를 하고싶지만 결국은 실력 미달이 주요 이유라고 생각한다.

세상은 넓도 개발을 잘하는 사람, 번뜩이는 아이디어를 갖고있는 사람은 많다.

아쉬움은 조금 있었지만 결과를 떠나서 돈주고도 바꿀수 없는 좋은 경험을 했고, 프로젝트를 통해 만난 팀원분들은 하나같이 충실히 맡은바 역할을 수행하며 실력도 성격도 좋은 분들이었다.

이런 분들과 함께 프로젝트를 할수 있는 것 자체로 큰 배움이었다(실제로 많이 배웠다).


그 후에…

아쉬워할 시간도 없이 나의 시간은 빠르게 흘러가고있다.

아직 배울 점도 부족한 점도 차고 넘치는 중에 나는 쉬지 않고 다시 달려야 할 것 같다.

언제든 힘들고 쉬고 싶을 때 이때의 불타오르던 의욕과 용기를 생각하며 다시 일어날 수 있으면 좋겠다.