Act99 기술블로그

3개월 동안 독학으로 앱 5개 만들기 본문

개발팁저장소/flutter

3개월 동안 독학으로 앱 5개 만들기

Act99 2021. 1. 5. 21:20

안녕하세요. 우당탕탕 비전공자 코더입니다.

 

9월 초 부터 약 3개월 넘는 시간동안 코딩을 독학해 총 5개의 앱을 만들었습니다.

 

모든 앱은 Flutter로 만들었으며, 필요에 따라 Python을 사용했습니다.

보통 서버가 필요할 때는 Heroku 서버를 만들어 사용하거나

간편하게 Firebase 를 이용했습니다.

 

이 글은 코딩에 막 입문하시려는 비전공자분들께 같은 입문자로서 현실적인 조언을 드리고자 작성되었습니다.

 

보통 코딩을 공부하려면 대부분 이런 글을 쓰죠.

"어떤 언어를 배워야 할까요? 어떤 언어가 가장 핫한가요?"

 

하지만 나오는 대답은 대부분 이렇죠.

"어떤 언어를 선택하기보단 어떤걸 만들지, 코딩을 통해 어떤 결과믈을 만들지 먼저 생각하세요."

 

... 솔직히 입문자들은 잘 안 와닿습니다.

앱을 만드려고 시작해서 java를 배우려면 kotlin이 대체언어로 훨씬 쉽다고 하고..

시작하려하니 ios 는 swift로 만들어야한다고 하고...

크로스 플랫폼 언어가 있다해서 javaScript를 배워 React Native를 사용할까 생각하면

Flutter가 있다고 하고, Flutter를 배우려 하니 구글 무덤으로 갈 위험이 있는 신생 프레임워크라 하고...

 

전설의 구글무덤

주변 사람은 python 을 하는데 이걸 왜 하는지 모르고...

따라하다보니 항상 터미널 창에 hello world 나 구구단이 적혀있고...

프레임워크, 네이티브, 크로스플랫폼, 동적언어, 정적언어, 서버, 데이터베이스@!$#@$

 

 

아무리 잘 설명해줘도 입문자들에겐 잘 안 와닿습니다....

 

저도 똑같았습니다. 그리고 제가 내린 결론은

"결과물이 빠르게 나오면 흥미를 잃지 않겠다." 였습니다.

그래서 선택한 프레임워크가 Flutter 였습니다.  

 

 

일단 이 얘기는 밑에서 다시 말씀을 드리고, 먼저 3개월 간 만든 앱 소개를 드린 후,

코딩 공부를 하게 된 계기, Flutter(dart)를 선택한 이유, 저의 코딩 독학 방법을 말씀드리겠습니다. 

 

 

1. 3개월 간 만든 앱

 

 

 

-------------------------- 구글 플레이스토어 배포 --------------------------

 

 

play.google.com/store/apps/details?id=com.act99.facefilter

 

프리미 - 프사 골라주는 A.I 인공지능 앱 - Google Play 앱

잘 나온 프로필 사진 골라주는 A.I 앱, 프리미입니다. 두 장 사진을 분석 하시면 정밀하게 나오며, 여러 장 사진을 분석 하시면 빠르고 잘 나온 순서대로 결과가 나옵니다. 성별을 선택해주시고

play.google.com

 

play.google.com/store/apps/details?id=com.act99.justclock

 

Just Clock 심플하고 깔끔한 구간반복 멀티타이머 - Google Play 앱

Just Clock -version 1.0.0 공부할 때, 운동할 때 좋은 구간반복 타이머, 깔끔한 시계, 정확한 스톱워치 & 타이머가 있는 멀티타이머 앱입니다. 토익 문제풀이용으로 사용하려고 만들어진 앱입니다. 밝

play.google.com

play.google.com/store/apps/details?id=com.act99.oneday

 

Just Write 심플 다이어리, 노트 & 캘린더 - Google Play 앱

Just Notes&Calendar version 1.0.4 다이어리, 캘린더, 노트로 사용할 수 있는 심플한 어플입니다. 업데이트를 꾸준히 할 예정이니, 불편한 점 있으시면 언제든 댓글 혹은 이메일 부탁드립니다. 감사합니

play.google.com

 

play.google.com/store/apps/details?id=com.act99.flarebomb

 

섬광탄 - 반짝이는 플래시, 파티용 미러볼, 집에서 즐기는 파티 분위기, 싸이키 - Google Play 앱

집 안에서 파티 분위기를 낼 수 있는 손전등 미러볼 앱, 올해 크리스마스는 섬광탄과 함께 보내세요. 일상에서는 자전거 후레쉬 등으로 사용하세요. 결혼식에서, 단체모임에서도 유용한 반짝반

play.google.com

play.google.com/store/apps/details?id=com.act99.allquizapp

 

제시어 퀴즈 : 모임, 술자리 인싸들을 위한 큐카드 - Google Play 앱

MT,뒷풀이,회식자리,모임,여행에서 사회를 보는 MC들을 위해 재밌고 다양한 퀴즈 제시어를 생성해주는 어플입니다. 인터넷에서 항상 제시어를 찾아야 하는 수고를 덜 수 있는 어플입니다. 꾸준히

play.google.com

 

 

---------------------------------------------------------------------------------------------------------------------------------

 

이렇게 총 5개의 어플을 만들었습니다.

 

그리고 개발에 사용한 프레임워크 및 언어, 플랫폼 내용은 이렇습니다.

 

 

2. 코딩 공부를 하게 된 계기

 

원래 대학 시절에는 경영학을 전공했었습니다.ㅎㅎ

그러던 중 한 유튜브 영상을 봤는데, 그 내용은 자동화 커피 머신을 만든 개발자 분의 인터뷰 내용이였습니다.

 

거기서 충격적이였던 말은 정확히 기억은 안나지만 개발자분이 제대로 된 커피 머신을 만들기 위해

오랜시간동안 커피 공부를 하셨다는 말이였습니다. 

 

바리스타분들은 자동화 커피 머신을 만들 수 없지만,

(물론 경험과 노하우에 따라 커피를 더 맛있게 만드실 수 있으나.) 

 

이 개발자 분은 제대로 된 자동화 커피 머신을 만들 수 있다는 사실...

 

 

여기서 저는 제가 개발에 대한 기초 지식이 없으면 이런 분들을 따라갈 수 없겠구나 판단했고,

너무 안일하게 살았구나 생각하면서 코딩 공부를 시작했습니다. 

 

또 다른 이유로는 제가 원래 창업을 준비하다 웹사이트가 필요해 프리랜서 개발자분께 일을 부탁한 경험이 있는데,

말이 잘 안통했습니다.... ㅎㅎㅎ 지금 개발공부를 하다보니 말이 안통한 이유를 조금이나마 알겠더라구요.. ㅎㅎ

이 때 외주를 맡기더라도 나 역시 개발에 대한 최소한의 지식이 있어야겠구나 생각해서 코딩 공부를 시작했습니다.

 

 

3. Flutter(Dart)를 선택한 이유

 

보통 앱 제작에 관심을 갖고 코딩에 처음 입문하시는 분들은 (물론 저도 입문자입니다만. :))

Java, Kotlin, Swift, 등

가장 유명하거나 역사가 오래된 언어를 배우시더라구요.

 

물론 이 언어들은 강의도 다양하고 github 나 StackOverflow, Medium 등의 커뮤니티에 많은 자료와 소스가 있습니다.

또, 아무래도 네이티브 언어기 때문에 언어가 깊다고 말할 수 있죠.

 

하지만 제 개발 목표는 "어플리케이션 초기 서비스 구축", 즉 빠르게 생산해 초기 서비스를 구축하는 것이었기 때문에,

IOS 와 Android 앱을 동시에 배포할 수 있는 크로스 플랫폼인 Flutter를 선택하게 되었습니다.

 

(참고로 저는 창업을 준비하는 사람이기 때문에 완성도보다는 빠른 생산성이 더 중요했습니다.)

(물론 Flutter가 완성도가 낮다는 말은 아닙니다. 완성도는 만드는 사람에 따라 달라지기 때문에..ㅎㅎ)

 

React Native를 왜 사용하지 않았냐 라고 물어보실 수 있는데,

Flutter를 선택한 가장 결정적인 이유는 바로!

 

가시적이기 때문입니다.

?????????????????

 

Flutter를 사용하다보면 코드가 꽤나 직설적이고 동시에

코드를 작성하면 직접 화면에 컴포넌트를 그려버리기 때문에

내 앱이 어떻게 만들어지고 있는가. 기능은 잘 작동하고 있는가를 빠르게 캐치할 수 있습니다.

 

이런 면에서 저는 훨씬 더 가시적인 프레임워크라고 판단했고, 때문에 Flutter 를 선택했습니다.

 

실제로 Flutter를 배우시면 정말 재밌습니다. 코드를 칠때마다 결과물이 나오니 ㅎㅎ

코드를 작성하면서 UI를 바로바로 확인할 수 있는 행복...

 

 

4. 나의 코딩 독학 방법

 

정확하게 말씀드리면 저는 Flutter를 시작하기 전 Python을 먼저 2주간 공부했습니다.

그러다보니 반복문 (for, while 등등) 타입(String, Text, Char, Num, int, 기타 등등) 등

기본 문법을 약간 숙지한 상태로 Flutter에 입문했습니다.

그리고 Flutter 를 사용하는데 필요한 아주 기초 지식을 공부하고

바로 github에 접속해 Flutter로 만든 앱을 클론하고 분석하면서 공부했습니다.

 

천국

 

깃허브 검색창에 Flutter clone 이라고 치면 수많은 레포가 나옵니다.

그중에 가장 짧고 간단한 기능을 구현한 것부터 순서대로 하시면 편합니다.

 

그리고 모르는 게 있으면 바로 구글에 검색했습니다.

 

 

OKKY 와 더불어 도움 많이 되는 커뮤니티 플랫폼 한글이라 행복

 

정말 도움이 많이 되는 커뮤니티 사이트
'신'적 영역

 

 

구글링을 하다보면 대부분 글은 TISTORY 나 StackOverflow, Medium 에 올라와 있는데,

Tistory는 보통 강의 형식으로 블로깅하신 분들이 많습니다.

때문에 학습하는데 더 빨리 와닿고, 또 한글 블로그라 행복합니다. ㅎㅎ

 

StackOverflow의 경우 가장 많은 글이 올라와 있으며,

IT 분야 세계 최대 커뮤니티 사이트라 해도 무방할 정도로 정보가 많습니다.

제가 더 이상 언급할 필요 없을 정도의 최강 커뮤니티입니다.

 

Medium 같은 경우, 해외판 Tistory 라 보시면 편한데, github.com 에 본인의 Package를 업로드 하신 후,

소개하는 글이 주로 보이더라구요.

Flutter 를 사용하시게되면 pub.dev 에서 필요한 pub들을 가져와 작업을 하시게 되는데,

그 때 코드 레포의 경우는 github.com 에, 소개글은 Medium 에 올라와 있는 경우가 많습니다.

 

다른 사이트들도 많지만 이 3가지 사이트가

처음 독학을 할 때 가장 유용한 정보 사이트라고 생각합니다.

 

 

 

 

Run & Pray

 

오류가 나면 바로 구글링 하시는 것을 추천드립니다.

 

오류를 발견하고 직접 찾아 해결하려던 경험이 많은데, 아무리 생각해봐도

빠르게 학습하려면 구글링이 최선이라고생각합니다.

 

그리고 어느정도 공부가 되었다 판단했을 때, 무작정 앱 배포를 목적으로 앱을 제작했습니다.

그리고 가장 쉬운 어플부터 만들자 생각해서 큐카드 앱을 만들고, 그 다음 다이어리 노트 앱, 다음으로는 플래시 앱, 그리고 테마 변경이나 반복 설정이 가능한 멀티타이머 앱, 마지막으로 구글 Teachable Machine 을 이용한 A.I 앱을 만들었습니다.

 

마지막으로 해외 유튜브 강의나 한국 Flutter 개발자 분들의 강의 영상을 보시면 더 빠르게 학습하실 수 있습니다.

 

저는 보통 유튜브 강의 없이 혼자 맨땅에 해딩하다가 시간 될 때 유튜브 강의를 보곤 했습니다.

 

-------------------------------------

 

제가 만든 앱들은 추후 git repo 에 배포할 예정이며, 혹시 궁금한 점이 있으신 분들은

dorxm999@gmail.com 으로 이메일 해주시면 감사하겠습니다.

 

오랜만에 긴 글을 쓰게되어 두서없이 쓰게 되었는데 맞춤법이나 쓸데없는 내용이 있다면 죄송합니다...ㅎㅎ

다음 게시물에는 정확하게 어떤 식으로 공부했는지 등의 내용으로 찾아뵙겠습니다.

 

감사합니다.