안녕하세요.

이번에 새싹에서 진행한 개인 프로젝트로 EggTime 앱을 출시하게 되었습니다.

앱으로는 첫출시이며 약 한달정도(9월12일~10월9일) 기간을 통해 출시준비를 하였습니다.

EggTime을 혼자서 기획,디자인,개발하면서 느꼇던점에대해 이야기하고자 합니다.

EggTime 간단한 소개

우선 EggTime앱은 우리가 생각하는 타임캡슐과 동일하다고 보면됩니다. 올해 폭우사태를 보면서 문득 그런생각이들었습니다. 우리가 어릴때 묻던 추억의 타임캡슐이 이번 폭우상태나 다른 자연재해나 여러이유로 파손,유실 된다면 얼마나 아쉬울까? 라고 생각하였습니다. 그래서 우리가 항상 갖고다니는 스마트폰에 해당장소에서 대한 추억을 남기면 좋을것같다 라는 생각에서 기획하게되었습니다.

TMI) eggTime의 egg는 타임캡슐의 모양에서 따온거입니다.

기획,디자인 개발을 하면서 느낀점

기획

이전에 웹개발을할떄는 백엔드 프론트영역을 나누어서 제작하였고 팀원들과 의논하면서 기획을하였기에 기획을할떄 좋은기획이 맞는지 의견을 바로바로 피드백을 받을수있어서 헤매는것이 덜했던것같다. 이번에 기획을하면서는 혼자진행하다보니 스프린트 일정도 잘안맞고 개발하면서 헤매는시간과 예상시간이 잘안맞았어서 notion 에 사유를 적었고 해본적없는 도전적인 기능에 대해서는 약 2.5배정도의 시간을 두는게 적당하다고 판단되어집니다. 또한 중간에 디자인이나 기획같은게 수정되면서 엄청난 고생을 많이했다. 이번기회에 기획의 중요성을 느끼며 다음에 기획할떄 꼼꼼하게 해야된다는것을 느꼇다.

 

기획할떄 DB구성



DB의경우 따로 테이블을 여러개만들어 사용할필요가 없을것같아 간단하게 구성하였습니다.

디자인

디자인은 조금 안일하게 생각했던 영역이였다. 저는 피그마를 활용하여 작업하였는데요.

초기 기획대로 앱의 UI를 만들었을떄 UX관점을 고려하지 못하여 사용에 불편함이 있다는것을 앱 UI를 만들고나서 뒤늦게깨달았습니다. 예를들면 main화면에서 지도가 작아서 사용상 불편하며 색상을 지속적으로 보다보니 눈이 아픈경험도 함께했엇고 전체적으로 UI/UX적인 부분에 많은고민을 하지못해 결국 home,list,detail,write 페이지 영역 모두 수정하면서 개발후반에 엄청난 수정을 하게되어 고생을 많이했었습니다. 디자인을 중간에 수정해서 반영하는것에 경험을 해볼수있어서 좋은경험이 되었다고 생각합니다.

왼쪽) 처음디자인, 오른쪽) 최종디자인

개발

개발부분에서는 디자인패턴으로는 MVC 기반의 프로젝트로 진행하였습니다.우선 MVC 패턴으로 진행하면서 View와 ViewController 분리했음에도 ViewController에 코드량이 많다는것을 많이느꼈고 왜 비지니스 로직을 따로 빼서 MVVM 패턴을 App개발쪽에서 많이사용하는지 알수있었습니다. 그리고 개발을하면서 처음사용해보는 Cocoapod으로 터미널적인 오류들 대응과 xcode와의 환경세팅 문제 , SPM과의 호환성 문제로 Cocoapod을 설치하게되면 SPM 으로 다운받은 라이브러리들을 사용할수없다는점과 빌드시간이 오래걸린다는 단점에대해 알수있었습니다. 추가적으로 Realm에 List타입대응이나 이미지처리부분에서 어떻게 이미지를 DataBase에 저장할지 방법에대해 생각했고 용량이 커지는 문제에대해 용량최적화를 어떻게할수있을지 고민을 많이하였습니다. 해겲방법으로는 이미지 리사이징으로 용량최적화문제를 해결했고 FileManager로 Document로 저장하여 Realm에 부담을 줄여주었습니다. 추가로 Naver Map API를 사용하면서 네이버맵의 공식문서를 많이 참고하여 설치방법뿐만아니라 그안의 메서드들 구조들을 살펴볼수있어서 다양한 구현이 가능하다고 체감할수있었습니다.  네이버맵을 사용할떄는 깃허브에 업로드시 과용량이 될수있기에 .gitignore를 잘해줘야하며 과용량처리시 git-lfs를 사용해 처리해보는 경험을 해볼수있었습니다. 이번 한달동안 개인 출시 프로젝트를 해보면서 다양한 에러들이나 문제들에대해 처리하는 방법에대한 고민들을 많이해볼수있어서 좋았습니다. 하지만 시간관계상 혹은 번거롭다는 이유로 중복코드처리나 추상화,모듈화부분이 덜되있는부분도있고 커스텀 UI 도 처리부분이 아쉬워서 다음프로젝트에서 녹여보려고 생각중입니다 .

 

version 1.0.0 앱스토어 등록기준(2022.10.04)

  • 캡슐 CRUD기능
  • 백업복구 기능
  • 네이버지도 marker 표시

피드백

내부 테스터 피드백 내용

  • 코드리팩토링
  • 초기화
  • timer로 캡슐오픈 잔여기간 표시