플러터가 애플/안드로이드 지원하는 일반적인 서비스 앱 만들기에 생산성이 아주 좋았다.
서버가 어느정도 정리되어 앱만 만들면 되겠다 생각해서 이미지와 동영상 포스팅 하는 기능을 만들었다. 동영상 트림 기능도 넣고 이미지 크롭이랑 편집 기능도 다른 패키지를 사용해 이쁘게 만들었다.
그리고 사용자 컨텐츠가 보이는 페이지도 만들고 모든 파일은 클라우드플레어R2에서 무료로 호스팅!
음..기능 자체는 잘 만들어졌는데 웹 버전으로 익스포트하니까 문제가 생겼다.
일단 초기 로딩이 너무 느려..플러터에 추가 패키지들까지..사용자가 받아야 할 초기 파일 용량이 약 10메가에 육박했다.
더 큰 문제는 동영상 편집 기능이 웹을 지원하지 않는것이었다. FFmpeg 패키지가 무겁고 플러터 정식 지원을 하지 않아 ios/Android 네이티브를 활용하는 것으로 했더니 웹에서는 동작을 하지 않는 것이었다.
그리고 미묘하게 반응성이 좋지 않은것도 맘에 걸렸다.
웹만 따로 만들어야 하나…고민, 웹은 뷰어만 만들고 어드민은 앱을 다운로드하게 유도할까 고민…여러 고민을 하다 웹을 먼저 앱을 나중에 만드는 것으로 결정했다. 만드는 서비스 특성상 접근성이 중요해서 비로그인 유저의 웹 접근을 포기할 수 없었기 때문이다.
1월중순부터 2달 반 정도를 만들어온 플러터 앱을 포기하기로 했다. 새로운 테크스택은 Nuxt.. Vue 는 좀 써봤는데 리엑트는 싫고 넉스트 한번 써보자는 생각으로 결정했다. 따라서 전에 node 로 만들었던 API서버도 옮겨야 했다.
그리고 지난 2주간(2주밖에 안되었다는게 믿기지 않지만), 백엔드 재구성에 기존 플러터 앱에서 지원하는 대부분의 기능들을 웹으로 다시 구현했다. 웹 기반의 동영상 편집기까지 구현해야 했고 간단한 이미지 크롭에 퍼포먼스가 안나오는 페이지들 개선, 동영상과 이미지 호스팅을 R2에서 유료 서비스로 이동, 내가 만든 Analytics 서버를 단순화 시키고 독립시키고 Umami를 이용한 사용자 통계 분석, 소셜로그인까지 모두 구현했다.
거기에 플러터로 만들 예정이었던 대시보드, 프로필 수정, 아카이브, 삭제등의 기능도 추가했고 디자인도 심플하게.. 모바일에서 비디오 플레이어 로딩이 너무 불안해서 이것저것 삽질을 하다 지금은 정말 초기로딩 시간 0.1초로 최적화된 결과물이 나왔다.
휴..간만에 즐거웠던 시간들이었다. 정말 오늘 커밋 히스토리를 보고 2주밖에 걸리지 않았다는것에 너무 놀랐는데 풀타임으로 한것도 아니고 주말에 놀고 약속도 있었는데 내가 생산성이 아직 좋구나 생각했다.
넉스트 사용하는 관계로 클라우드플레어로 배포해보려 했는데 알수없는 오류로 일단 멈췄지만 다시 도전해 보려고 한다. 나중에 어떻게 될 지 모르겠지만 정말 클라우드플레어가 갑이다. 어떤 서비스와 비교해도 성능과 가격에서 압도적이니 쓰지 않을수가 없다.
이제 남은 큰 업무들은
– 소셜
– 실시간
– 결제
– 보안
– 폴리싱
정도이다. 정말 기본 베이스가 다 완성된 기분이라 마일스톤 확보 차원에서 로그한번 남김.