2020~2021년, 안드로이드 프로젝트

나의 진정한 첫 프로그래밍

[플레이 스토어 개발자 계정 바로가기]

[관련 블로그 글 보기]

출시 앱 목록 (기준일: 2024.07.16)

순번 분류 제목 출시일 다운로드 수 비고
1 게임 Candy Collector 2020.09.09 약 20회(최종) 생애 첫 안드로이드 앱
2 게임 One Second Game 2020.09.27 약 25회(최종) 앱 인벤터 이식작
3 초심플 만보기 2020.10.26 약 1100회 두 번째 다운로드 1000회 돌파
4 초심플 메모장 2020.10.31 약 120회  
5 게임 Lucky Fifty 2020.11.13 약 20회(최종)  
6 두구누구 누구두구 2020.11.21 약 4500회 사상 첫 다운로드 1000회 돌파
7 뭐가 더 저렴하니? 2021.01.01 약 15회  
8 게임 Unknown Game 2021.01.30 약 15회 Firebase 사용
9 광대버스 2021.06.27 약 1000회 대학교 프로젝트 연계 앱

[1학년, Java 독학]

앱 인벤터를 벗어나 안드로이드로 넘어가기 위해, 2018년 대학 입학 후 아직 전공 과목을 배우지 않는 1학년 때부터 Java 예습을 시작했습니다. 물론 이것도 누군가에게는 늦었다고 할 수 있겠지만… 그래도 어디서 듣고 배운 건 있어서, 그리고 문법이 정말 아주 어려운 그런 거는 아니어서, 그런 대로 배울 만 했습니다. 그때 언어를 배우기 위해 사용한 앱이 하나 있었는데, 바로 Sololearn입니다. 지금도 있습니다. Sololearn(플레이 스토어) 최근에는 결제 유도가 좀 세졌다는 것 같은데, 제가 막 쓰기 시작한 2018년만 해도 그때는 정말 ‘이 사람들 봉사하나?’ 할 정도로 말끔한 디자인에 꼭 필요한 핵심만 담아 쉽게 설명해주었던 상당히 좋은 앱이었습니다. 모바일 앱임에도 자체 컴파일러를 제공하여 코드를 즉시 실행시켜볼 수도 있었습니다. 간략한 개념 설명 후 바로 퀴즈를 풀어 이해할 수 있게 했습니다. 무엇보다도 각 개념 설명과 퀴즈란에 댓글을 달 수 있게 해서, 각 언어 코스를 먼저 거쳐간 무수한 선구자들이 (심지어 전공자들도!) 남긴 헷갈리는 개념을 이해하는 꿀팁 같은 거를 미리 남겨놓아서 더 쉽고 넓게 학습할 수 있었습니다.(유튜브보다 좋은 점이라고 생각) 언어는 비록 영어이지만 그렇게 어렵지 않은 단어를 써서 이해하는 데 큰 어려움은 없었습니다. 지금 생각해보면 잘 다운받은 앱이었습니다.

Java를 본 이후에는, 2학기 들어 학교 교과목에서도 파이썬을 배우기 시작했기 때문에 여기서도 파이썬을 학습했고, 이후로도 C, C++, C#, php, 웹 삼총사(HTML, CSS, JS) 등 여러 언어의 튜토리얼을 이용해보았을 정도로 만족도가 높았습니다. 학교 가는 버스 안에서 조금씩 학습했습니다. 이렇게 맛보기로 Java와 Python을 학습한 상태로 저는 2019년 군에 입대하게 됩니다.

진짜, 지금 생각해보면 언어는 의지만 있으면 누구나 배울 수 있는 것 같아요. 전공자라서 배우는 게 아니라, 정말 누구나. 하지만 전공자라면 그 아래에 있는 심오한 내용도 이해할 줄 알아야겠죠.



[이때까진 안드로이드가 핫했으니까]

제가 군에 있었을 때 좋은 제도가 하나 있었는데, 바로 자기개발 도서 지원 제도였습니다. (지금도 있겠죠?) 10만 원어치 책을 사면 그중 8만 원인가를 돌려주는 거라서, 2만 원만 내면 되는 거였습니다. 그래서 저는 전역 후에 읽을 책을 골라보기로 했는데, 그때 저는 제 전공을 고려하여 개발 서적을 사야겠다는 생각이 들었습니다. 그럼 뭘 고를 것인가였는데요, 어쨌든 그때까지는 제가 안드로이드에 꽂혀 있었고, 나름 모바일 시장이 계속 성장세이기도 했으니까요. (지금은 거의 끝물이지만…) 그래서 안드로이드 기초 서적을 샀고요, 남은 돈으로는 유니티 기초 서적을 샀습니다. (지금 생각해보면 참 똑똑했어…) 물론 그때도 유니티의 경우는 곧바로 볼 생각은 없었고, 적어도 2학년 1학기 끝나고 보려고 했습니다.

게임을 만들고 싶은데 게임 엔진은 몰라서

사실 게임을 만들 생각이라면 안드로이드 네이티브로 허접하게(!) 만들 것이 아니라 유니티나 언리얼 같은 게임 엔진을 제대로 배워야 하는데, 그 당시에 아는 게 있어야지요. 그래서 게임을 만들더라도 안드로이드 스튜디오 자체로도 게임을 만들 수 있다더라 하는 소문을 듣고, 그렇게 해보기로 했습니다. (지금 생각해보면 사실 그렇게 도움이 되는 행동은 아닌 것 같아요… 이득이 될 게 성능 딱 하나인데 그것도 최적화가 전혀 안 되었으니 의미도 없고.)

내가 쓰고 싶어서

하지만 저는 게임만 만드는 게 아니라, 일반 앱도 만들고 싶었습니다. 계산기가 되었든, 버스 앱이 되었든 뭐든 말이죠. 사실 그 용도가 더 크죠. 그래서 저는 게임만을 위한 유니티 대신 안드로이드를 우선 해보자고 생각했던 것 같습니다. 무엇보다도, 이렇게 만들어진 게임과 앱이, 누군가가 쓰지 않더라도, 제가 계속 쓸 수 있는 그런 프로그램이길 원했습니다. 지금 입장에서 그 목표를 가장 잘 달성해준 앱은 ‘광대버스’ 같긴 하네요.

어쨌든, 이런저런 아이디어를 모아서 블로그에 기록해두고, 언젠가 개발해보자 약속했던 것 같습니다. 2024년 현재 실현된 건 손에 꼽을 정도… 아쉽지만 이제는 접어둬야겠죠.

블로그: 2020년 9월 당시 개발을 희망하는 프로젝트들



[결과물]

모든 앱을 소개하기에는 지면이 모자라서(…) 주요 작품만 소개해드리겠습니다.

전역 후 저는 해당 책의 예제를 따라하며 열심히 연습했고, 그렇게 저의 첫 작품이 탄생합니다.

Candy Collector -> 첫 작품

블로그: Candy Collector 소개

사실 디자인만 놓고 보면 앱 인벤터 게임이나 별반 다를 게 없는 수준입니다. 그래도 나름 첫 작품이니…

화면 좌우를 누르면 바구니가 움직이며, 제한 시간 내에 위에서 떨어지는 구슬을 먹는 게임입니다. 작은 구슬일수록 점수가 크고 낙하 속도도 빠릅니다. 나름 열심히 업적 시스템도 구현했습니다만, ‘비효율적으로’ 구현했습니다.

초심플 만보기 -> 애증의 앱

블로그: 초심플 만보기 소개

안드로이드 개발 인생에서 제게 희로애락을 안겨주었던 애증의 앱입니다. 안드로이드 내장 만보기 기능을 활용하여 가장 가벼운 만보기를 만들어보자는 컨셉에서 출발했는데, 동작 원리가 제게는 좀 이상하게 느껴져서 깔끔하게 구현하지 못했습니다. 이 걸음 알고리즘만 몇 개월 동안 수정하는 등 헛발질을 많이 했던 앱입니다. 초창기에는 알림창을 띄워서 홈 화면에서도 걸음 수를 볼 수 있게 하였는데, 어느 순간부터 고장났습니다(…) 이런 파란만장한 역사 때문에 플레이 스토어에서 처음으로 별점이 표시된 앱이었으며 (5건 이상 평가가 달릴 때부터 별점이 표시됩니다) 가볍다는 호평과 이상하다는 혹평이 공존하는 앱이었습니다. 1000회 다운로드를 넘어선 이후부터 급격하게 인기가 식어 지금은 거의 멈춘 상태입니다. 알림창은 표시되지 않지만, 앱을 다운받아 사용해보면 걸음이 측정되긴 한다는 점에서 그래도 최소한의 동작은 하는 것 같습니다.

두구누구 누구두구 -> 역대급 성공

블로그: 두구누구 누구두구 소개

안드로이드 개발 인생에서 최대 성공을 안겨준, 그리고 지금도 다운로드 수치가 꾸준히 올라가고 있는 앱입니다. 벌칙이나 상품, 순서 뽑기를 도와주는 앱으로 절차식으로 구성되어 어렵지 않게 사용할 수 있다고 자신합니다. 몇 달 경력이 쌓여서 그런지는 몰라도 대체로 구성이 깔끔하다고 생각합니다. 여담으로 모든 앱 중 유일하게 Kotlin으로 개발된 앱입니다.

추후 로또 추첨 기능(!)도 추가한 바 있습니다.

다른 앱들은 어느 시점 이후부터 다운로드 수가 크게 줄었지만, 유독 이 앱만 승승장구하여 출시 3년이 넘은 지금 다운로드 수가 4500회에 이릅니다. 기능이 그리 많진 않은데 저도 이렇게나 인기 있는 이유를 잘 모르겠습니다.

광대버스 -> 다음 글에

블로그: 광대버스 소개

이 앱은 현 시점에서 상당히 큰 의미를 담고 있으므로, 별도로 설명하겠습니다.



[앱들의 미래?]

광대버스 앱을 출시한 2021년 6월 이후, 처음 1년간은 연구실 생활의 부담이 그리 크진 않아서 정기적으로 앱 업데이트도 진행하면서 관리도 하고, 앱 다운로드 수 추이도 보면서 성장하는 재미(?)를 느꼈습니다. 그러나 본격적으로 연구실에서 Unity를 다루기 시작한 2022년 가을 이후로는 학교 수업도 부담되고, 연구실 과제도 부담되고 하면서 점점 안드로이드 앱 관리가 힘들어졌고, 거의 유지보수 수준으로 1~2년을 버텨오게 됩니다.

거기에, 매년 안드로이드 운영체제가 업데이트되면서, 옛날 OS를 타겟팅하는 앱은 스토어에서 지워버린다고 자꾸 협박(…)을 하니까, 무의미한 패치를 진행하는 경우도 많아졌습니다. 블로그 공지사항

더는 안 되겠다고 판단한 저는, 다운로드 수가 미비한 초창기 게임 앱 3개(Candy Collector, One Second Game, Lucky Fifty)의 플레이 스토어 게시를 중단하는 데 이릅니다. 블로그 공지사항

앞으로도 이 앱들의 사정은 크게 나아지지 않을 것으로 보입니다. 어느 순간, 숨통이 트일(?) 때가 된다면 저는 이 앱들의 최종 버전을 만들어 보관해둘지도 모르겠네요. 결국 현 시점에서 저는 안드로이드 개발자가 아니라 유니티 개발자(라고 하기도 좀 뭐하지만?)의 길을 걷고 있으니까요.

일단 두구누구 누구두구가 5000회 다운로드를 돌파하면 좀 생각해보겠습니다.


P.S. 그래도 이때 배워둔 Java 관련 지식 덕분에 저는 학부 생활 내내 학교에서 요구하는 Java 과제를 별 문제 없이 해결할 수 있었습니다. 사실 최근에는 Java가 낡은 언어 취급 받기도 하지만 그래도 국내에서는 여전히 많이 쓰이는 언어이고,(Spring 프레임워크 등등) 문법 자체는 C 계열보다는 시각적으로 좀 더 낫다고 생각하고 있습니다. ㅋㅋ;; 최근에 쓰는 유니티의 C#과 비교하면 상당히 비슷한 내용이 많아서, C#을 익히는 데도 많은 도움이 되었고요. 이래저래 나쁘지 않은 경험이었던 것 같습니다.

comments powered by Disqus