본문 바로가기

프로젝트 개발일지/프로젝트 회고

[회고] 하루 1분, 프로젝트 회고록

들어가기 전에....

안녕하세요, 하루 1분 수학 본능의 개발자 1-hee 입니다.

하루 1분을 어떻게 개발했는지, 앞으로 어떻게 할 예정인지 스스로 기록하며 되돌아보는 시간을 갖고자 회고록을 작성하게 되었습니다. 양식은 어떻게 할까 고민하다가, 스스로 질문하고 답변하는 식으로 구성해보기로 했는데, 목차나 내용이 다소 산만하더라도 너른 이해를 바랍니다.

 

🌐 하루 1분 Link

https://play.google.com/store/apps/details?id=co.kr.onedaymath

 

 

Q. 하루 1분을 간단하게 소개한다면?

 

'하루에 1분만 사칙연산 연습을 해서 수학적 암산 능력을 트레이닝해 보자'

 

이 한 줄의 아이디어로부터 시작한 토이 프로젝트입니다.

 

 제삼자에게 하루 1분은 여러 명의 개발자가 참여하는 프로젝트에 비해 규모나 기술적인 측면이 부족한, 특별한 것 없는 흔한 프로젝트 중 하나로 보일 수 있다고 생각합니다. 그러나, 저에게 하루 1분왜 개발자를 하고 싶었는지, 그리고 어떻게 노력했는지를 제대로 보여줄 수 있다는 점에서 참 특별한 프로젝트다 라고 소개하고 싶습니다.

 


Q. 하루 1분을 개발하게 된 계기?

 친구와 함께 재밌는 안드로이드 앱 하나 만들어볼 거 없을까 하다가 시작한 프로젝트입니다. 평소 우리는 수학이라고 하면 어렵고 두려운 존재라고 많이 느끼실 것 같아요. 그러나 사칙연산 같은 수학적 지식은 복잡한 세상을 편하게 살아가는 데 분명 도움을 준다고 생각합니다. 그래서 수학을 무조건 이해해야 할 어떤 '지식' 이나 '과제' 처럼 느껴질 누군가를 위해 수학을 '재미있는 것'이라고 느낄 수 있도록 gamification 기법을 적용한 앱 개발에 도전하게 되었습니다.

 

Q. 프로젝트가 버전 2.0부터 시작하는데 이전 버전의 앱이 있었나요?

 하루 1분이라는 앱은 2023년도에 출시하였지만, 사실 이 앱은 무려 2021년도에 기획해서 한 번 개발도 도전했었던 프로젝트입니다. 그래서 2023년도에 출시한 버전은 2021년도에 처음 도전한 앱의 정신(?)을 이어받는 다는 느낌으로 2.0으로 버전을 올려서 새롭게 출시에 도전해보게 되었습니다.

 

프로젝트를 처음 기획한 2021년도 당시에는 친구와 함께 기획도 하고 삼성 갤럭시 폰의 노트 앱도 사용해서 직접 화면도 그리고 UI의 위치나 전체 콘셉트 등을 열심히 설계했었습니다. 당시에는 전혀 몰랐었지만, 지금 보니 뭔가 참 투박하고 정돈되지 않은 날 것(?)의 앱을 만들었는데 조금은 부끄러운 마음이 드네요

 

Fig 1.1 하루 1분 1.0 버전의 UI

 

 

 설상가상으로 당시에 저는 거의 초심자 수준의 프로그래밍 지식을 가지고 있었기에 프로그래밍 실력이 참 형편없었습니다. 앱 개발하겠다고 도전 정신은 투철했는데, 정작 어떤 기능 하나 만들려고 당차게 도전하면 그 기능을 구현하는 데 정말 오랜 시간이 걸리거나 때로는 아예 개발 못하기도 했습니다.

 

제삼자가 본다면 개발에 흥미를 잃고 포기할 법도 한데 왜 포기하지 않았을까? 라고 생각이 들 수도 있을 것 같아요. 제가 포기하지 않았던 이유를 스스로 생각해본다면, 지금 당장 못한다고 포기하기보다 잊지 않고 시간이 들더라도 꼭 다시 도전하자 라는 마음이 컸던 것 같고 그래서 앱 개발의 야욕(?)을 포기하지 않았던 것 같습니다. (제가 봐도 고집이 참 세네요😅) 그리고 이상하게도 못하고, 안되고, 좌절(?)을 맛보았지만 뭔가 그럴수록 내가 더 잘할 순 없을까 하는 생각을 했던 것 같고 이러한 마음이 배우고자 하는 의지로 바뀌어 더 찾아보고 공부하게 하는 힘이 되어주었던 것 같습니다.


Q. 많은 소프트웨어 중 굳이 안드로이드 앱을 하게 된 이유가 있는지?

 제가 처음 프로그래밍하면서 배운 언어는 자바(Java) 였습니다. 인프런이나 코드잇 같은 데서 무료 강의도 찾아보면서 독학했는데, 문법 공부만 하자니 너무 지루하고 뭐가 뭔지도 모르겠고 해서 실전형(?) 공부를 해보자 해서 도전한 게 안드로이드 앱 개발이었습니다. 이유는... 이 때 찾아본 소프트웨어 중 앱 개발이 가장 재밌어 보였거든요 😁

 

그리고 현재는 코틀린(Kotlin)이 안드로이드 앱 개발을 거의 장악했지만, 당시에는 자바로 앱 개발을 많이 했고 자료도 많아서 자바로 앱 개발을 도전하는 것에 큰 어려움을 느끼지 못했던 것도 한몫하는 것 같습니다. 아! 물론 갤럭시 폰에서 직접 앱을 돌려보면서 개발할 수 있다는 점도 당시에는 큰 매력이라고 생각했던 것도 있습니다.

 

 

Q. 하루 1분 2.0에서 이전과 달라진 점은 있다면?

하루 1분 1.0과 2.0의 가장 큰 차이점은 SSAFY 교육을 받았는가 vs 받지 않았느냐는 차이점이 가장 큰 것 같아요. SSAFY 교육 과정에 대한 후기는 별도의 게시글로 정리해서 추후 올리도록 하겠습니다. 1.0 개발 당시에는 프로그래밍 자체를 어떻게 공부해야 하는지, 내가 공부하는 방법이 맞는지 확신하기 어려웠는데, SSAFY에서 전공자 친구들과 같은 커리큘럼으로 공부하고 같이 이야기도 많이 나눠보면서 스스로 공부하는 힘을 기르는 데 큰 도움이 되었던 것 같아요. 저는 비전공자 출신의 개발자 지망생이 아니라 한 명의 개발자가 되고 싶었거든요. 그래서 6개월 동안 열심히 공부했던 이론적 지식을 바탕으로 앱 개발에 재도전! 이번에는 APK(현재는 aab!) 뿐만 아니라 출시까지 도전했고 이 목표는 성공적으로 달성했는데 정말 기분이 좋았습니다.

 

 

Fig 1.2. 하루 1분 ver 2.0의 UI

 

Q. 개발 과정에서 기억에 남는 점이 있다면?

사칙연산 게임을 할 때, 키패드로 정답을 입력하고 엔터를 누르면 InputMethodManager의 기본 설정으로 인해서 키패드가 내려가는 문제점이 있었습니다. 1.0 버전부터 있었던 이슈였는데, 원인은 안드로이드 OS 자체에서 키패드 관련 속성을 기본적으로 엔터를 누르면 키패드가 내려가도록 설정했던 것이 문제였어요! 사실 하루 1분이 아니었다면 이러한 속성은 오히려 문제가 되지 않았을 수도 있지만, 제가 만든 앱에서는 문제가 되었었던 상황이었습니다.

 

당장 InputMethodManager 설정을 커스텀하는 법을 찾고 적용해보았는데, 결과는 적용하지 않은 것과 똑같았습니다…. 그래서 구글에 더 검색하면서 여러 블로그를 참조하며 문제를 파악했는데, 단순히 속성을 변경하는 것뿐만 아니라 인터페이스에 포커스도 주어야 한다는 것을 알게 되었습니다.

 

그래서 사용자가 정답 입력을 위해 인터페이스를 터치하면 포커스를 유지하고 키보드가 내려가지 않도록 아래와 같이 코드를 작성해주었습니다.

 

// editText가 포커스를 계속 유지하도록 하는 코드
editText.setOnClickListener {
    editText.requestFocus() // 포커스가 있어야 키보드가 노출된다.
    inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}

 

이번에는 제가 원하는 데로 정상적으로 작동하는 것을 확인했고, 1.0 버전부터 꼭 해결하고 싶었던 이슈를 마침내 해결해서 너무 신났던 기억이 생생하네요.

 

Q. 앞으로 하루 1분은?

사실 하루 1분은 더 개발할 예정인 소프트웨어입니다 😀
버전 2.0에서는 1.0에서 해결하지 못했던 다양한 문제들을 해결하고 마침내 출시까지 성공한 성과를 달성했으니, 앞으로 3.0에는 보다 규모를 키우고 UX/UI 적으로도 더 신경 써서 보완하고 싶거든요. 그리고 이 계획은 조만간 진행될 예정인 매우 확실한 계획입니다!

향후 어떤 것들이 추가될 지 말씀드리자면, 온라인 대전 시스템과 랭킹, 그리고 모던 앱 디자인 유행을 따른 새로운 UI로 재구성할 계획입니다. 지금의 UI를 가진 앱에서 모던 앱 개발의 트렌드를 따르는 새로운 모습으로 태어날 하루 1분에 많은 관심 가져주시면 너무 기쁠 것 같습니다.


마무리

하루 1분은 저의 성장 일대기를 담은 일기장과 같은 프로그램입니다.
온전하지도, 완벽하지도, 대단하지도 않아 보일 수 있지만 그렇기에 앞으로 더 많은 성장 가능성을 가진 그런 프로그램이라고 생각해요. 앞으로도 꾸준히 개선하거나 보완할 사항이 생기면 주기적으로 업데이트하는 저만의 프로그램으로 거듭나길 바라고, 또 그러도록 노력할 것입니다.

 

이상으로 하루 1분의 아마추어 개발자 1-hee 였습니다.

 

긴 글 읽어주셔서 감사합니다 😉