brunch

You can make anything
by writing

C.S.Lewis

by 갬성개발자 Nov 22. 2020

장고+플러터로 만든 앱 배포 회고

Django Rest Framework 강추,,, 

회사에서 8월말부터 플러터 스터디를 시작했다. 

스터디 방식은 각자 만들고 싶은 개인프로젝트를 작업하고 

매주 금요일마다 어디까지 했는지 공유하는 방식이였다. 


나는 예전에 장고를 공부하면서 Django Rest Framework를 공부해보고싶다고 생각했는데,

마침 내가 만들고 싶은 앱이 서버가 필요해서 DRF + 플러터를 같이 공부하면서 작업을 했다. 


화요일 저녁에 심사요청을 했고 앱스토어는 하루만에 심사완료되었고

구글플레이스토어는 일요일 오후에 심사완료되었다. 

(저번에도 3일 걸렸는데ㅠㅠㅠ!! 신규앱은 넉넉히 생각해야하나보다,,) 


# iOS

https://apps.apple.com/us/app/양파가족-onion-family/id1540106955


# Android

https://play.google.com/store/apps/details?id=com.jinny.onion_family




[1] 개발 시간


일주일에 하루 또는 이틀씩, 하루에 보통 4시간 정도 공부+작업을 하였다. 

플러터 스터디를 업무시간에 넣을 수 있어서 평일에는 플러터하고

주말에 장고를 주로 했다. 



[2] 개발하면서 느낀 점


2.1 DRF


우선 DRF는 공부했다 라는 느낌이 안들 정도로 DRF가 거의 다 해준다 (?).

API를 정말 쉽고 빠르게 개발할 수 있고 

User Authorization부분도 정말 잘 지원해준다. 

TokenAuthentication (유저마다 토큰을 발급해서 유저를 식별해보자) 를 공부하면서 감동했던 기억이..!


비밀번호 암호화해서 저장하는 것도 알아서 다 해주고 (장고의 User모델) 

Admin 사이트도 알아서 다 만들어주고 


개발자는 적은 양의 코드만 작성하면 된다. 


하지만 장고보다는 DRF의 문서가 덜 친절해서 장고 공부할때보다 더 많이 헤맸던 것 같다. 



2.2 플러터


플러터는 문서가 정말 친절하게 잘되어있다.

[Flutter] Provider로 앱 상태 관리하기 를 공부하면서 

provider가 써드파티 라이브리리인데 공식문서에서 예제와 함께 친절하게 설명해주는 것에 완전 감동했다. 


List of state management approaches 문서에도 앱상태관리를 위해 쓸 수 있는 여러 라이브러리들을 소개해주는데 신선한 충격이였다. 나는 애플에서 이런 문서를 본적이 없다... 


그래서 문서 위주로 공부하는 나는 감사한 마음으로 편하게 개발했다. 


그리고 카카오톡으로 공유하기(kakao link), firebase dynamic link 기능이 들어갔는데,

카카오랑 구글에서 공식으로 패키지를 제공하고 사용하기도 어렵지 않았다. 

플러터에서 기본 앱만드는 것말고 다양한 기능들도 붙일 수 있음을 알게 되었다. (다음 궁금증은 인앱결제!)



2.3 Heroku


호스팅 서비스로 Heroku를 선택했는데 

너무 만족스러웠다. 


AWS보다 훨씬 간단하고 PythonAnywhere보다는 더 깔끔했다. (UI/UX + 배포 방법 + add on 등..) 


그리고 가격면에서도 무료플랜의 스펙이 꽤 괜찮고

무료 다음 플랜도 Production이 아니라 Hobby여서 가격이 부담스럽지 않다. 

(참고: https://www.heroku.com/pricing#app-types-header



그리고 이 영상이 엄청 도움이 되었다!!! 강추,, 


"AWS를 쓸까? Heroku를 쓸까? 그 선택의 기준은?" 

https://www.youtube.com/watch?v=NTDhBh1SdZ4&t=246s




[3] 출시하면서 느낀점


출시할까 말까 엄청 망설였다.  

우선 앱의 퀄리티가 마음에 차지 않았고 

데이터를 쌓고 다루는 작업을 처음 해봐서 서비스로 내도 되나? 걱정되는 마음도 있었다. 


테스트도 충분히 해야되는데 좀 귀찮고,, 

디자인이랑 이미지 리소스 출처는 어떻게 표기해야하며 개인정보처리방침은 어떻게 해야하고,,


생각보다 머리가 아팠다. 


하지만 니콜라스님(유투버 노마드 코더)이 

"Finish is better than Perfect."

"Done is better than Perfect." 

라고 한 영상을 보고 어찌됐든 끝을 봐야한다!! 하고 출시했다. 


https://www.youtube.com/watch?v=8cindSht7xQ




[4] 아쉬웠던 점


4.1 언어와 툴 


파이썬은 switch 문이 없고

다트는 enum을 swift만큼 확장성있게 쓰지 못한다. (associated value, raw value 안됨)


swift가 더 편하다,, 


그리고 안드로이드 스튜디오에서 디버깅하려면 벌레버튼 누르고 돌려야하는데 

엑스코드는 그런거 없다. 


xcode가 더 편하다,, 


4.2 테스트 코드... 


장고할때, 처음에는 테스트코드를 작성하면서 개발하다가 

중간에 낯설고 귀찮아서 테스트를 작성안해버렸다. 더이상 테스트는 신경쓰지도 않았다. 


그래서 현재 있는 테스트 코드는 다 완전 옛것이 되어버렸다.

(코드를 바꿔도 관련 테스트 코드를 같이 업데이트 시켜주지 않고 그냥 내비둬버렸다.. 흑..) 



4.3 스크린샷..


생각해보니

사용법 + 매일 오전 9시에 새로운 질문이 온다는 정보를 사용자에게 알려주지 않았다....

(푸쉬알림은 가지만 미리 알려줘야지 왜 질문이 더 없지? 하지 않을 것이다,,)


예전에 출시한 앱처럼 이렇게라도 스샷을 만들었어야했는데,,,


여기까지 생각을 못했다,, 

스샷 업데이트 해야겠다,,, 뜨헉,, (플레이스토어는 그냥 스샷 업데이트 할 수 있고 iOS는 새버전을 내야한다,,)


근데 다시 들어가보니 앱 부제에 '하루 한 질문' 이라고 적어놓긴했다!!!

그나마 다행,,, 스샷 업데이트 할 지는 고민해봐야겠음!!!!!! 



[5] 더 해보고 싶은 점 


- 서버 이것저것 찾아보다가 Docker에 대해서 알게 되었는데, 좀 더 찾아보기.


- 장고하는 사람들이 주로 MySQL 붙이는 것 봤는데 그것도 따라해보고

  if kakao보니까 몽고 DB가 그렇게 좋다고 하던데, 몽고 DB도 붙여보기 


- 파이썬 문법 자꾸 까먹어서 구글링하면서 했는데 정리합시다,,,, 정리안하고 또 구글링하느라 시간이 많이 들었다,,, 문서나 책도 한번 쭉 봐야겠다,, 


- 플러터로 과연 어디까지 할 수 있을까?! 인앱결제, 카메라 등등.. 



[6] 그외


오늘 앱 출시되고 엄마가 써봤는데, 

이 카톡을 보고 신선한 충격을 받았다. 



레퍼런스한 썸원앱을 처음쓸 때, 당연히 이미지나 글자를 누르면 답을 쓸 수 있다고 생각해서 그 동작을 했고

주위에 쓰는 사람들도 다 그렇게 생각했으니까 저런 질문이 없었을 것이다. 


나의 앱도 썸원과 동일한 UX를 가져갔는데,

부모님 세대에는 예상하기 어려운 UX일 수 도 있겠다라는 생각이 들어서 아차 싶으면서도 되게 신기했다. 


그리고 시시하고 재미없다는 엄마,,,

넘 웃겨서 첨부,,













(사실 나도 오늘 가족문답해보니까 

남자친구랑 하는 커플문답이 훨씬 재밌고 기대된다,,,,,,,,,)



그래도 나는 백엔드를 해본 소중한 경험을 얻었고

특히 공부하고 싶었던 DRF를 공부했으니 

굉장히 만족스럽고 뿌듯하다!! 


마지막으로... 나는 ERD를 이렇게 그렸는데

실제 서버 개발하시는 분들은 이 스펙에 ERD를 과연 어떻게 그리실까 너무 궁금하다,,,,,!! >__<




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari