[프로젝트 회고] - KeePing
👶🏻 프로젝트 시작
삼성청년SW아카데미에서 특화 프로젝트를 진행했다. 프로젝트 시작 전 여러 도메인 중 1지망, 2지망을 적어서 제출해야 했다. 프로젝트 시작 전 팀원들과 모여서 선호하는 도메인을 이야기하고, 최종적으로 투표를 받아 우리 팀은 핀테크를 1지망으로, 빅데이터(추천)을 2지망으로 작성해 제출했다.
핀테크를 지망하는 팀이 생각보다 정말 많았다! 그래서 그런지 핀테크를 1지망으로 써서 냈지만, 핀테크를 하지 못했던 팀도 있던 거로 안다. 우리 팀은 운이 좋게도 핀테크 도메인으로 프로젝트를 진행하게 되었다.
핀테크의 범위가 워낙 방대하다보니, 어디부터 어디까지가 핀테크적 성격을 강하게 띄고 있을지에 대해 고민을 많이 했고, 기획에도 많은 시간을 투자했다.
결국 우리 팀은 용돈 미션을 통해 아이들이 즐겁게 돈을 모으고, 소비 내역을 되돌아 볼 수 있는 질문으로 소비 습관을 고민해볼 수 있는 어린이를 타겟으로 한 용돈 기입장 KeePing을 기획했다.

🤔 프로젝트를 하면서 신경 쓴 점
앱 Front 개발을 처음으로 진행했기 때문에 새로운 언어,새로운 프레임워크를 익혀야 했다. 프로젝트를 시작하기 전, React Native와 Flutter 중 어떤 프레임워크를 선택할 지에 대해 정말 시간을 많이 쏟았다. 컨설턴트님과 코치님에게도 자문을 정말 많이 구했다.
결국 우리 팀은 Flutter를 통해 앱을 개발하기로 했다!
이유는 크게 3가지.
- Dart는 skia2 그래픽 라이브러리와 C/C++ 엔진을 사용하여 우수한 성능을 보장한다는 것. Low-level 언어로 컴파일 시 기계 코드에 가까워 보다 빠르게 동작하고, 부하가 적게 걸린다는 점이 가장 크게 적용했다. 반면 RN은 JS Bridge 런타임 환경을 기반으로 한다. 이 JS Bridge는 런타임 도중 네이티브 코드로 컴파일하기 때문에 CPU와 메모리 사용량이 더 높다.
- Dart가 Javascript에 비해 유연하다는 것. Javascript는 동적 타입의 언어로 AOT( Ahead of time, 컴파일과 최적화가 실행 전에 이루어짐) 컴파일링에 부적합하다. 반면 Dart는 정적/동적 타입 지정이 가능해 AOT 컴파일링이 가능하다. 코드 컴파일과 최적화가 실행 전에 이뤄지기 때문에 보안에 유리하다고 판단했다.
- 위젯을 이용해서 화면을 손쉽게 구성할 수 있어 짧은 기간에 프로젝트를 끝마치기 유리할 것이라고 판단했다.
이러한 이유 때문에 러닝 커브가 꽤 높아도 Flutter로 앱을 구현하기를 택했다.
+ 날이 갈수록 높아지는 점유율과 인기는 보너스였다!
💡 프로젝트를 하면서 기술적으로 배운 점
Flutter가 나온지 얼마 안 지난 프레임워크였기 때문에 불안정하다는 점이 프로젝트에서 가장 힘들었다. HTTP로 비동기 통신이 되던 걸 충분히 확인하고 기능을 완성까지 시킨 상태인데, 어느 순간 시도해보면 오류를 반환하거나, 아무 값도 반환하지 않는 게 제일 힘들었다.
공식 문서를 확인하고, Flutter를 사용하는 다른 팀 팀원들에게도 조언을 구해봐도 도무지 해결되지 않던 오류였다. 정말 끝에 끝에 끝까지 고민을 하다 실습코치님에게 조언을 구했는데, 실습코치님도 Flutter로 앱 개발을 하던 도중 위와 같은 오류를 경험한 적이 있다고 하셨다. 비동기 통신을 HTTP가 아닌 Dio로 해보라는 조언을 들었고, Dio를 사용하니 정말 오류가 안 생기고 안정적 소통이 가능했다.
웹 개발 도중 사용한 Axios는 단 한 번도 이랬던 적이 없었는데... 해당 프로젝트를 진행하며 라이브러리를 선택하는 과정 하나하나에도 신중해야 한다는 것을 체감하게 되었다.
😿 아쉬웠던 점
위에서 언급한 HTTP 통신을 Dio로 완전 갈아 끼우지 못한 점이 아쉽다. Dio가 더 안정적일 것이라고 판단하여 다 변경하고 싶었는데, 시간이 정말 부족해서 앱 이용 중 오류가 나는 부분만 갈아끼우는 부분에서 만족할 수밖에 없었다. 다행스럽게도 나머지 HTTP를 이용한 비동기 요청에는 큰 문제가 생기지 않았다.
또한, 해당 프로젝트가 핀테크 프로젝트인데도 불구하고 암호화 요소를 넣어보지 못한 점이 매우 아쉬웠다. 매번 회원 권한 도메인을 개발했고, 이번 프로젝트는 용돈 송금 기능도 구현했기 때문에 최소 한 기능에는 암호화를 해보고 싶었는데... 시간 부족 때문에 구현하지 못한 부분이 매우 아쉬웠다.
👨👩👧 느낀점
첫 모바일 앱 구현이다보니 신경쓸 점도 정말 많았고, 익숙하지 않아 힘든 점도 많았다. 하지만 뿌듯한 점도 정말 많았는데, 그 중 하나를 뽑자면 객체 지향적 코드를 짜려고 노력하기 시작했다는 것. 유지보수에 능한 코드를 작성하기 위해 코드 작성 전 생각하는 시간이 늘어났고, 그 노력은 게임 프로젝트 '아기 돼지 삼형제'에서 보다 객체 지향적 코드를 쉽게 작성할 수 있게 만들었다.
기획 과정에서 많은 시간을 투자한 만큼 다양한 아이디어를 뽑아냈는데, 내가 기획한(프로젝트에 쓰이지 않았던 기능마저도!) 기능들이 카드사 / 은행에서 사용하고 있다는 것을 확인했을 때 정말 즐거웠다.(친환경 소비와 구매내역의 연결 등) 또한, 앱의 핵심 기능(아이가 질문을 받고 답변하며, 부모가 이를 통해 소통할 수 있는 질문 기능) 기획에 크게 기여했다는 점, 서비스의 이름부터 슬로건까지 전부 내 손에서 탄생했다는 점 또한 서비스에 애정을 가지게 되는 요소가 되었다!

+ 좋은 서비스는 많은 경험에서 나온다는 것을 많이 깨달았다. 더 많이 체험할수록 더 퀄리티 높은 서비스를 만든다는 것을 체감했다! 더 많이 경험해야지.
'Project > 회고' 카테고리의 다른 글
| [프로젝트 회고] - 악의 돼지 삼형제 (0) | 2023.11.25 |
|---|---|
| [프로젝트 회고] - Cook Create (0) | 2023.11.23 |
