솔챌을 제출했다! [Google Solution Challenge 2024]

지니🧸·2024년 3월 1일
0

GDSC

목록 보기
12/12
post-thumbnail

솔챌이 쉽지 않을 거라고 생각하긴 했지만.. 진짜 쉽지 않았던 것 같다

  1. 솔챌이란?
  2. 솔챌을 시작하면서
  3. 반쯤 왔어
  4. 다시 시작된 기획과 개발
  5. 유저 테스트
  6. 마무리 단계
  7. 솔챌을 제출하며

솔챌이란?

Google Solution Challenge는 유엔에서 선정한 지속가능발전목표 17가지 중 한 개 이상을 타겟하는 솔루션을 제시하는 전세계 단위 공모전으로, 구글 개발자 학생 동아리 (Google Developer Students Club) 인원을 1명 이상 포함한 최대 4명의 팀으로 참가할 수 있다.

솔챌을 시작하면서

12월 중에 솔챌 팀을 결성했기 때문에 시작할 때는 아 설마 3개월을 다 갈아넣어서 개발하겠어?라는 생각이 있었다.
아이디어는 사실상 첫 회의에서 결정했고, 주2회 (1회는 대면, 1회는 비대면) 회의로 꾸준히 기획과 개발 진도를 내고 있었다.

💡 아이디어

우리는 파킨슨병 환자가 근육강직, 손떨림 등의 증상으로 인해 사회로부터 고립되고, 유일한 소통수단일 수도 있는 IT기기의 사용조차 어려워진다는 점에 통감하여 파킨슨병 환자를 위한 앱을 개발하고자 결정했다.
파킨슨병 환자의 손떨림과 목소리 강직 및 작아짐을 보완해주는 소프트웨어 앱으로 환자들의 스마트기기 활용도를 높이는데 집중했다.
Parkinson's 환자에게 뭐든지 가능하다는 자신감을 보조할만한 소프트웨어가 되고 싶다는 생각에 팀 이름을 Parkour로 지었다.

🐣 모바일 팀원이 없는데?

팀원 중에 모바일 개발 특히 플러터 개발을 해본 사람이 없어서 우리는 FlutterFlow를 선택했다.
지금 생각해보면 이때 그냥 플러터 공부해서 개발했으면 나중에 시간을 훨씬 아끼지 않았을까~라는 생각이 든다
프로젝트 셋팅 및 코드를 포함한 거의 모든 것이 비개발자가 쓰기에 편리하게 제공되어있는 툴이고, 딱 필요한 것만 custom code로 추가하면 된다는 점이 매력적이였다.
우리가 제공하고자 하는 기능은 당연히 커스텀 코드로 짜야했다. 나는 dart, flutter를 처음 사용하는 BE개발자라서 시작부터 여러 난관에 부딪히긴 했지만, 결국 어찌저찌 해내긴 했다.

반쯤 왔어

시간으로 따지면 사실 반보다 조금 더 왔을 때다.
기획했던 두 기능 중에 한 개는 완성단계에 있는 상태였는데, 사용자 테스트를 할 대상을 구하지 못했다.
주제를 결정 지은 순간부터 이 때까지 국내와 해외 기관에 꾸준하게, 다양하게 연락을 드려봤지만 어렵다는 답변 뿐이였다.
나는 앱을 개발하는데에 있어 사용자의 피드백은 그 무엇보다도 중요하다고 생각한다. 사용자가 사용성의 판단조차 내릴 수 없는, 사용자를 찾지 못한 앱은 무의미하다고 생각했고, 팀원들의 동의하에 주제를 엎자는 판단을 내렸다.

🔑 또 Ideation?

스터디카페에서 스타벅스로, 식사 후 또 다른 카페로 이동해가며 장장 9시간에 달하는 회의를 통해서 드디어 새로운 주제를 정했다.

시각장애인의 의약품 복약 보조를 위한 어플리케이션을 개발하기로 한데에 있어 다큐멘터리가 큰 도움이 됐다. 이 다큐멘터리는 시각장애인 부모가 자신의 자녀에게 잘못된 일반의약품을 먹인 경험을 비췄고, 활동보조사가 올 때까지 기다려야 하는 답답함 또한 이야기되었다. 우리는 장애 때문에 자신의 건강, 그리고 자녀의 건강을 독립적으로 관리하지 못하는 시각장애인 분들의 어려움을 돕고자 앱을 기획했다.

우리는 시각장애인 부모가 자녀에게 안전하고 독립적으로 일반의약품을 줄 수 있도록 하는데 기여하고자 했다.

다시 시작된 기획과 개발

ML팀원은 머신러닝에 집중할 수 있도록 팀장인 나와 디자인 팀원은 기획, 기관 컨택트, 기능 세분화 등 여러 주제에 관해 열심히 회의했다. 당연히 우리 둘의 회의가 끝나고 나면 또 ML팀원도 함께 회의하며 역할이 잘 분담되었던 것 같다.

🧐 어떤 기능이 가장 필요한 기능일까?

돌아보면 우선 시각장애인 분들과의 인터뷰를 진행한 다음에 기능을 정했으면 좋았겠지만, 이미 이 시점에서는 개발할 수 있는 기간이 한달조차 되지 못했고, 어떻게든 완성하고 싶다는 마음에 급하게 회의를 했던 것 같다

우리의 기능 아이디어는:

  • 실시간 카메라를 통한 텍스트 추출로 일반의약품을 인식하여 정보 제공하는 기능
  • 원하는 약 또는 현재 증상을 입력 받아 일반의약품 뭉치에서 타겟 약으로 사용자의 손을 안내하는 기능
  • 위 두 기능을 기반하여 복용한 일반의약품을 기록 및 조회하는 기능
  • 처방약 또는 처방전을 인식해 푸쉬 알림을 자동 등록하는 기능

사용자(시각장애인)의 경험을 고려한 우리의 UI 아이디어는:

  • Text-to-Speech(TTS), Speech-to-Text(STT) 기능으로만 유저와 소통
  • 큼직한 버튼
  • 대비되는 색상 사용

📆 사용자 및 관계자 인터뷰

감사하게도, 시각장애인 곁에서 일하시는 분들, 그리고 시각장애인 분들과 각각 인터뷰할 수 있는 기회를 얻었다.

인터뷰에서 정말 많은 인사이트를 얻었는데, 그 가운데 앱의 기능 및 UI 확립에 가장 도움이 되었던 내용은 다음과 같았다.

사용자에 관하여

  • 시각장애인 부모는 주로 활동보조사 또는 주변인의 도움을 많이 받는다.
  • 시각장애인은 자신의 활동 반경 내의 물건은 구조화시켜 기억하는 경우가 많다.
  • 방향은 시각방향으로 표현한다.
  • 개개인마다 더 잘 보이는 색상이 다르다.
  • 비프음과 같은 청각적 요소를 잘 활용해야 한다.
  • 스크린리더를 상시 활용하는 시각장애인이 많다
    • 리딩 속도를 정말 빠르게 사용하시는 분들도 더러 있다.
    • 앱 자체 TTS보다 핸드폰 운영체제의 스크린리더를 선호하는 분들이 많다.

페인 포인트에 관하여

  • 아이들이 많이 복용하는 시럽류/액체류 약은 시각장애인이 잔량을 확인하거나, 복용량 조절하기가 어렵다.
  • 약국에서 전달받는 의약품 복약 방법은 주로 포괄적이고, 전부를 기억하기가 어렵다.
  • 바코드 인식을 통한 약 정보 제공 앱은 있어도, 사용기한에 대한 정보를 얻을 수 있는 앱은 없다.
  • 결국 이 모든 과정이 활동보조사 등의 정안인의 도움으로 해결이 되고는 있지만, 독립적으로, 직접 하고 싶다.

👒 최종 기능 및 UI 선정

위의 인터뷰 내용을 기반하여 최종적으로 우리 앱의 기능과 UI를 결정했다.

메인 기능 #1 약 정보 인식 기능

카메라로 일반의약품의 바코드와 사용기한을 인식하여 약의 이름, 복용방법 등을 포함한 정보를 제공한다.

카메라가 활성화된 동안에는 비프음이 나오고, 바코드와 사용기한이 각각 인식될 때마다 진동이 나고, 둘 다 인식되면 성공음이 나온다.

메인 기능 #2 물약 복약 보조 기능

카메라로 물약병 내의 잔량을 확인하는 기능을 제공하고,
따르고자하는 양을 입력받아, 실시간으로 물약병에 알맞은 양을 따르는지 음성 피드백을 제공한다.

기타 기능

  • 앱의 모든 정보는 스크린리더를 통해 제공된다.
    • 스크린리더 자체적으로 속도 조절 기능 또한 제공되기 때문에 사용자가 원하는 속도로 음성정보를 전달받을 수 있다.
  • 사용자가 자신에게 맞는 고대비 색상 조합을 선택할 수 있도록 색상 커스터마이징 설정 기능을 제공한다.
  • 사용자가 자신의 알레르기를 입력하면 일반의약품 인식 시에 알레르기와 관련된 성분이 포함되었는지 확인하여 안내한다.
  • 도움말 기능을 제공한다.

유저 테스트

인터뷰했던 분들과의 인연으로, 전맹과 저시력자 분들과 유저 테스트를 진행할 수 있었다. 대체로 긍정적인 반응을 보여주시고, 다행히도 인터뷰 기반으로 우리가 준비했던 기능에 크게 공감해주셔서 자신감을 얻을 수 있었다.

정말 감사하게도 우리의 급한 일정에 맞춰 유저 테스트를 진행해 주셔서 피드백을 수용하고 앱에 반영할 시간까지 넉넉했다.

앱의 사용성을 인정받으니 꼭 배포까지 하고싶다는 욕심이 생겼다.

마무리 단계

🏛️ 리팩토링

이전에 언급했던 것과 같이, 모바일 개발을 FlutterFlow로 시작했지만, 한달 구독 후 깔끔하게 FlutterFlow 없이 다트 코딩을 시작했다. 디자이너나 비개발자가 쓰기에는 너무나도 편리한 툴이지만, 어느 정도 코딩을 할 줄 아는 사람이라면 프론트 경험이 부족하더라도 직접 코딩하는게 더 편리하다고 느껴졌다.

그래서 진짜

flutter create

부터 다시 시작했다 ㅋㅋ
처음부터 다시 짜니까 깔끔한 프로젝트 구조와 모듈화를 성취해낼 수 있었고, 플러터를 더 잘 이해할 수 있는 계기가 되었다.

사실 여기서 삽질을 하루나 해서 리팩토링 때려칠 뻔

🎥 섭미션 폼과 데모 비디오

밤새가며 겨우 앱을 완성시켜놨더니 섭미션 폼과 데모 비디오가 우리를 기다리고 있었다. 사실 섭미션 폼과 데모 비디오를 포함한, 개발 외적의 업무는 디자인 팀원이 (너무너무너무너무) 감사하게도 도맡아해준 덕에 크게 어렵지는 않았다.

섭미션 폼은 워낙 구글 측에서 상세한 질문 리스트를 제공하기 때문에 하나하나 대답만 하면 되는 부분이였어서.. 어렵지는 않았다!

하지만 데모비디오의 조건인 최대 2분은 우리가 이 기능을 구현하고 싶었던 이유, 시각장애인들이 겪는 어려움부터 우리 기능의 데모와 팀의 포부까지 구구절절 넣기에는 턱없이 부족한 시간이였다.

다음과 같은 어젠다로 최대한 줄여보았다.

  • Problem Statement
  • 관련 UN SDGs
  • 기능 소개 (메인 기능#1, #2, 기타 기능)
  • 사용자 테스트
  • 마무리

깔쌈한 디자인과 스무스한 플로우는 다 우리 디자인 팀원 덕이다
https://www.youtube.com/watch?v=22VUkDcbuaw

솔챌을 제출하며

주제를 바꾸고 제출하기까지, 연장시간 포함 약 4주의 기간 동안 거의 매일 밤샜던 것 같다. 우리 동아리 내에서도 우리팀만큼 늦게 주제를 엎은 팀은 없는 것 같더라

모바일 개발 초보라서 삽질도 많이 했고, 복잡하지는 않았지만 백엔드와 데이터 전처리까지 이것저것 신경쓸 부분이 많아 내가 예상했던 만큼의 속도는 내지는 못했다. 아쉬운 마음에 밤을 많이 샜는데, 건강이 제일 중요하다.. 내게 남은 건 만성피로와 손목부상 뿐.ㅋㅋ

돌아보면 정말 부족함이 많은 팀장이였지만 우리 팀원이 각자 맡은 역할을 잘 해내고 최선을 다했기에 완성해낼 수 있었다! +__+

https://parkourapp.dev

profile
우당탕탕

0개의 댓글