그 동안 출시 했던 5개의 앱에 대한 리뷰 및 홍보

이지훈·2024년 5월 16일
0
post-thumbnail

TLDR;

유니페스 앱 많은 관심 부탁드립니다~

플레이스토어 링크
앱스토어 링크

서두

4학년 1학기를 마치고, 공익 근무를 시작했는데 해당 기간을 취준 기간에 포함 시킨다면, 대략 2년 9개월 이라는 시간동안 취준을 하고 있다. (군대 빼면 1년 정도, 벌써 졸업 한지 3개월...)

그동안의 기간동안 3번의 IT 연합 동아리 활동과 2번의 사이드 프로젝트를 통해 5개의 앱을 출시할 수 있었는데, 오름차순으로 하나씩 간략한 소개와 리뷰를 해보도록 하겠다. 꽤나 장문이 될 것 같다.

나름 애착이 가는 공부용 개인 프로젝트들과 스터디 참여를 통해 개발했던 팀 프로젝트, 졸업 프로젝트 등등의 레포도 있지만, 걔네들은 출시를 하진 않았으므로 제외 하였다. 이력서에도 아래의 5개의 프로젝트만을 언급하고 있다.

1. 나나공 (나보다 나무늘보다 공부 열심히 한다)

처음으로 IT 동아리에 합격하여 개발했던 프로젝트이며, 처음으로 플레이스토어에 출시했던 나의 자식 같은 앱.

동아리는 디프만이었으며 10기에 참여했다. 이후에도 3번 지원을 했으나, 3번 모두 서탈... 분명 실력은 점점 늘고 있는데, 이상하다... 이땐 대체 어떻게 붙은걸까?

각설하고, 나나공은 인강을 수강하는 사람들을 위한, 인강 수강 독촉(?) 및 독려 서비스이다.
개발 당시에 그니깐 21년 말이었는데, 코로나가 창궐했던 시절이었기에(이때 취업했어야 했는데...)
동아리 활동도 All 비대면, 게더 타운을 통해 진행되었다.

나도 공익 근무 이전에, 비대면 온라인 강의를 통해, 대학 수업을 수강하였고, 이때 쯤에 여러 인강 교육 플랫폼이 우후죽순 생겨났던 시기로 기억한다. 그 시기에 맞춰 앱의 주제를 선정하게 되었다.

인강을 사놓고 듣지 않는 사람들을 위해, 앱의 마스코트이자, 대결 상대인 나공이(앱 이름이 나나공이니까...)와 누가 먼저 인강을 완강하는지 결투를 하는 형식의 앱이다.

나공이는 나무늘보를 캐릭터화하였다. 지금봐도 귀여운 것 같다.

23년 4월 까지, 대략 배포 후 1년 4개월 동안 운영 및 유지 보수를 했던 앱이며, 현재는 서버가 닫혀서 앱을 운영하고 있지 않다.(플레이스토어에 들어가봤는데 앱이 삭제되어있었다..! ㅠ)

유지 보수 및 리팩토링을 진행하며, 전반적인 안드로이드의 개발의 변천을 체험하고, 그 기술들을 내 것으로 만들 수 있었던, 정말 소중한 앱이었다.

2. 반다라트 - 부담 없는 만다라트 계획표

23년 7월, 정말 오랜만에 IT 동아리에 합격하여 만들었던, Jetpack Compose 기반으로는 처음 출시한 앱 서비스.

참여한 동아리는 넥스터즈였으며, 23기, 24기에 참여하여 수료를 완료하였다. 25기도 참여하고 싶었으나, 시니어 선착순 및 티오에 밀려 떨어졌다 . 아쉽 ㅠ

대면으로 진행하는 IT 동아리는 처음이었기에, 그동안 혼자 생활하는 것이 익숙했던 나에겐 살짝 부담이 되기도 하였다. 훌륭한 사람들이 모였는데, 다들 너무 잘 놀더라... 역시 동아리는 인싸력이 필요하다...역시 진정한 고수들은 잘 놀기도 하는 것 같다.

다행히 우리 팀원들은 비교적 나와 같은 성향의 사람들이 모였어서, 팀원끼리 똘똘 뭉쳐서 세션이 끝나고 같이 밥도 먹고, 보드 게임도 하고, 생일 파티도 챙겨주면서, 팀원끼리 잘 지냈다.

반다라트는 아이디어 자체는 간단하였다. '만다라트'라는 CRUD 형태의 계획표를 만드는 앱이었다.

...노잼인데 왜 선택했냐?

나는 당시에 선언형 UI 인 Compose 를 공부하고 있었기에, 반드시 앱을 Compose 로 개발하고 싶었다. 동아리 기간이 디프만처럼(14주) 여유롭지가 않고, 8주 만에 만들어야 하기 때문에, 비교적 간단하고 구현하기 쉬워보이는 주제를 골라야했고, Compose 를 사용하여 Custom View 를 만들 수 있는 기회를 얻을 수 있을 것 같았기 때문이다.

그리고 사실 내가 해당 주제를 선택할 수 있는 것은 아니고, 그 주제를 발표한 팀장에게 선택을 받는 형식이었다. 팀에 뽑히기 위해선, 팀장들에게 나 자신을 어필해야 했고, 그게 사실 좀 힘들었다! 제일 먼저 용기를 내서 반다라트 팀에 어필을 했고, 다른 팀에게도 어필을 하려고 가니까 줄이 너무 길더라! 그래서 못했다(개꿀)

지극히 개인 학습 및 포트폴리오를 위한 이기적인 선택이었다.
하지만, 두마리의 토끼를 전부 잡을 수 있었다.
기술적으로는 Compose 를 사용하여 CustomView 를 만드는 방법을 학습할 수 있었고, 앱을 성공적으로 출시하여, Compose 기반의 프로젝트를 포트폴리오에 추가할 수 있었다. (앱 다운로드 수 500회 이상!)

반다라트표는 기존의 9x9 형식의 만다라트 표를 모바일에 최적화하여 만든 새로운 형식의 표 이며, 이러한 UI는 Compose 에서 제공하는 기본 API 로는 개발하는데 어려움이 있어, 직접 커스텀을 해줘야 했다!

프로젝트의 모듈 구조에서 있어서도 기존과는 다른 형태로 구성할 수 있었는데, data -> domain <- presentation 의 3개의 멀티 모듈 구조가 아닌, data 와 presentation은 더 세밀하게 분리하여 data(data, datastore, network) 와 같이 remote api 통신, local db 를 모듈로써 분리하고, presentation 모듈은 각각의 Feature(Screen) 단위로 구분하여, 모듈이 비대해지는 것을 막을 수 있었다. 또한 공통 디자인 리소스, 폰트 등은 designsystem, 공통 ui 컴포넌트는 ui 모듈로 이동 시켰고, 확장 함수 및 유틸 함수의 경우 common 모듈에 모두 모아서 관리하였다. 요약하자면, 아키텍처 자체는 클린 아키텍처 기반이지만, 모듈의 구조는 Now In Android 를 참고하였다고 할 수 있겠다.

또한, 좋은 사람들을 만날 수 있어서 좋았다. IT 동아리는 프로젝트 뿐만 아니라, 여러 사람들을 만나는 장소이기에, 팀원들을 비대면이 아닌 오프라인으로, 직접 만나서 매 세션을 함께하며, 개발도 같이 하고, 밥도 먹고, 보드게임도 같이 하면서, 좋은 추억을 쌓을 수 있었다. 이전 부터 알고 있었던 Android 개발자분들도 공교롭게 같은 기수를 함께하게 되어 만나뵐 수 있어서 좋았다. 역시 사람은 사람을 만나야 하는 것 같다. 인싸력 약간 증가...

현재는 서버가 약간의 문제가 생겨, 잠시 서버가 내려갔는데, 문제가 해결되면 다시 운영할 계획이다.

관련 해서 같은 팀원들이 작성한 포스트도 있어서 첨부ㅎ
넥스터즈 23기 Bandalart를 진행하며..(출시도 완료!!)
[반다라트] 기술 및 출시 포스팅

3. 아이랩(I'lab) - 나만의 AI 프로필 연구소

24년 1월, 넥스터즈 24기에 참여하여 개발한 나의 첫 생성형 AI 기술을 도입한 앱 서비스.

4학년 2학기, 졸업 프로젝트에서 해방되어, 즐거운 마음으로 참여한 두번째 넥스터즈 활동이었다. 이미 한번 활동을 해본 경험이 있기 때문에, 첫날 부터 이전 기수에서 뵈었던 여러 사람들과 같은 Android 개발자들끼리 친목을 하였다. 뭔가 인싸력이 성장한 것 같았다.

하지만, 내가 원했던 주제를 발표하신 팀장님께서 나를 선택해주지 않아, 이번 기수의 주제들 중에 가장 어려워보이는 팀에 들어가게 되었다! 발표를 유심히 들으며, '아... 넥스터즈엔 AI 개발자를 따로 뽑지 않는데, 이거 같이 AI 공부하면서, 개발하기엔 8주는 너무 촉박하겠는걸...' 이라는 생각이 들어, 팀장님께 나를 어필하지 않았는데, 역시 인생은 내 마음대로 되지 않았다.

하지만 다행인 점은, 이전에 반다라트를 같이 개발했던 iOS 팀원분들과 같은 팀이 되어, 팀에 아는 사람이 있어, 적응하는데는 그리 오랜 시간이 걸리지 않았다. 정말 다행이다. 약간의 의욕을 상실한 상태에서 시작을 했었기에 전부 초면이었다면, 더욱 쉽지 않았을 것 같다.

서탈을 와장창 하던 시기라, '동아리에서도 1지망에 떨어지는구나 하면서' 멘탈이 별로 좋지 않았다.

또 너무 추억팔이를 한 것 같은데, 각설하고

아이랩은 생성형 AI 를 기반으로 내 취향대로 프로필 사진을 만들 수 있는 서비스 이다.
카메라 또는 갤러리에서 프로필로 선택할 사진을 고르고, 스타일을 고르면 해당 스타일에 맞춰 프로필 사진이 만들어지게 된다.(Image to Image) 그렇게 신박한 아이디어는 아니었으나, AI 기술을 앱에 접목해 본 적이 없었기에 흥미로웠다. 연금술을 하는 기분

처음엔 프롬프트를 직접 입력할 수 있게 하기로 기획하였으나, 어느정도 퀄리티가 보장된 결과를 끌어내기 위해선 검증된 프롬프트를 채택해야 했기에, 스타일을 선택하는 것으로 변경되었다.
직접 AI 모델을 학습하진 않았고, 레오나르도 AI 를 사용하였다.
모델을 학습하는데에는 적지 않은 비용이 들어가고, MVP 에는 BM 이 포함되어 있지 않았기 때문에, 사용자가 이미지를 무작위로 생성할 수 없도록 이미지 생성 횟수를 제한을 하는 등의 조치를 취해야 했다.

24년 4월까지 운영하였고, 현재는 서버를 내렸다. 역시 AI 서비스는 서버비가 많이 든다...
이번에도 좋은 사람들을 만날 수 있어서 좋았다. 내가 IT 동아리를 계속 참여하려는 이유이기도 하다. 좋은 사람들을 만나서, 같이 개발하고 커뮤니케이션 하면, 동기부여가 되고, 또한 책임감이 생기게 된다.

취준생으로서 좀 찡찡 거렸던 것도 있는데, 팀원분들께 많은 조언을 받을 수 있었다. 너무 너무 감사하게 생각하고 있고, 취업하면 가장 먼저 알려야겠다. 보답도 하고 싶다.

4. 이끔 - 나에게 맞는 카페 찾기

23년 7월, IT 동아리가 아닌 사이드 프로젝트 팀에 참여하여, 개발한 서비스

Android 개발자이신 지인 분의 권유로, 사이드 프로젝트 팀에 들어가게 되어서 개발을 진행하게 되었다.
첫번째 IT 동아리 종료 후, 수많은 동아리 서탈, 최탈을 거듭하여, '다시는 IT 동아리를 할 수 없는 건가...' 라면서 좌절하고 있을 때, 동아줄을 내려주셔서 감사한 마음에 참여하게 되었다.

그런데 이제, 이미 체념한 채로 지내던 중 넥스터즈에 붙게 되어서 두개의 프로젝트를 병행하게 되었다!

사실 사이드 프로젝트 팀에 들어가는 것에 대해선 별로 내키지 않았는데, 그 이유는, IT 동아리 처럼 정해진 마감 기한(동아리 활동기간)이나, 운영진 및 정규 세션(중간 발표, 최종 발표)이 존재하지 않기 때문에, 중간에 팀원들이 탈주할수도, 흐지부지 될 가능성이 매우 크기 때문이다.

하지만 들어갔던 팀에는 PO(Project Owner)가 존재하여, PO 이자 PM 의 역할을 하시는 분이 존재 하였기에, 팀을 끌고 갈 수 있는 리더가 있다는 점이 매력적으로 다가왔다. 그리고 이제 평소에 많은 도움을 받았던 Android 개발자님과의 협업도 기대가 되었다. 백엔드 개발자분들 중 한 분은 무려 경력이 10년이 넘으신 분도 계셨다. 취준생의 입장에서 많은 부분들을 배울 수 있을 것이라 생각했다.

.. 그렇게 시간이 흘러 어찌저찌 중간에 많은 어려움이 존재했지만(학교 막학기, 졸업프로젝트, 넥스터즈 활동 병행, 면접, 번아웃, 플레이스토어에 앱을 출시하기 위해 테스터 20명 섭외하기 등등...) 이를 극복하고 결국 10개월(개발 8개월, 테스터 모집 및 출시 2개월) 만에 앱을 출시 할 수 있었다.

이끔 앱은, 카공족을 위한, 공부하기 좋은 카페를 찾는데에 도움을 주는 앱 서비스로, 현재 내 근처에 있는 카페들의 대한 정보를 제공하는 서비스 이다.

카페의 정보는 어떻게 구했냐? 라고 묻는다면

이제 넣어야 한다... 뭐 PO 님이랑 기획자님께서 알아서 하시겠지...
P.S 왜 카페를 찾는 앱인데 앱 이름이 '이끔'이냐면... 나도 잘 모르겠다!

그리고... 5. 유니페스 - 대학 축제 지도를 펼처라!

24년 3월 말 부터 개발을 시작하여, 저번주에 출시한 따끈따끈한 새로운 앱 서비스

넥스터즈 활동이 3월에 종료되고, 적적하던 무렵, Android 컨퍼런스에서 같은 학교의 지인을 뵙게 되었다.

넥스터즈 활동이 끝날 무렵 최종 면접에 결과를 기다리고 있었기에, 처음 회사 다니는데, 동아리랑 병행은 힘들겠지~ 하고 다른 IT 동아리에 지원을 하지 않았었는데, 결국 최탈하게 되어, 붕 뜨게 되었다.

오랜만에 뵈어서 반가웠고, 얘기를 나누던 중, 에브리타임에서 대학 축제 관련한 서비스를 개발하는 사이드 프로젝트 팀에 들어가게 되었다고 말씀을 하시길래, 많이 적적했어서(프로젝트 금단 현상) 관심을 표현했다.

그쪽에서도 Android 개발자가 한명 더 있으면, 5월 중순~말에 있을 축제 전에 앱을 출시하는데에 큰 도움이 되기 때문에, 좋게 받아들이셨구, 결국 교내 사이드 프로젝트 팀에 합류하게 되었다.

졸업하고 이런걸 하게 될 줄은 몰랐지만, 사용 예정 기술들이 내가 사용해보지 않았던 Calendar, Map(compose 기반) 와 같은 것들이었기 때문에, 재밌어보였다.

처음엔 팀의 PM 님께서도 Android 개발 경험이 있으셔서 자문하는 정도로만 참여를 하려고 했는데, 결국엔 올인 하게되었다. PM 님은 PM 으로서의 역할이 많기 때문에, (마케팅, 학교 홍보, 총 학생회 측과의 협의) 개발엔 참여하지 않으셨고, Android 개발자 두명이서 개발을 진행하게 되었다.

다른 팀원 분들(iOS, 서버)은 아직 학생분들이기 때문에, 학교 시험과 과제들 때문에 일정에 있어서 살짝 딜레이가 되었으나, 결국 축제를 일주일 앞두고 네이티브 양 쪽 플랫폼 모두 출시할 수 있었다. 운영자(관리자) 모드의 경우에도 긴급히 섭외되신 프론트 개발자 분께서 담당해주셨다. (내가 학교 다닐땐 진짜 말도 못하는 감자였는데 다들 대단하신 것 같다.)

유니페스는 대학 축제의 일정과 정보들을 제공하는 서비스로, 진행 중인 축제 부스들을 지도를 통해 확인할 수 있는 서비스 이다. 부스를 지도를 통해 확인할 수 있다는 측면에서 다른 축제 관련 앱들과 차별성이 있다고 생각한다.

MVP 개발 범위에선 학교를 건국대로 한정하였으나, 다른 학교의 축제 정보들(연예인 정보등)을 달력을 통해 확인할 수 있다. 이번주에 사전 마케팅 및 홍보 부스를 통해 많은 분들이 앱을 설치해주셨는데, 다음주 전까지 3차 QA 를 마무리하여, 보다 많은 건대 학생분들이 앱을 이용하여 축제를 즐기는데 도움을 받았으면 좋겠다.

그리고 다음 축제 기간인, 가을 전 까지 더 많은 기능을 더욱 추가해서, 다른 학교에서도 유니페스 앱을 이용했으면 좋겠다.

플레이스토어 링크
앱스토어 링크

마무리

여기까지가 여태까지 내가 출시했던 앱들의 대한 이야기이다.

취업 문제 때매 힘든 요즘이지만, 앱 개발에 대한 열정은 아직 식지 않은 것 같아서 다행이라는 생각이 든다.

위에 소개했던 앱들의 대한 자세한 내용은 제 깃허브에서 확인할 수 있습니다.
https://github.com/easyhooon

profile
실력은 고통의 총합이다. Android Developer

2개의 댓글

comment-user-thumbnail
2024년 5월 21일

멋있어요

1개의 답글