21년도 또하나의 도전 마무리!! 패캠 30일 챌린지 도전 성공 !! 이제 자신있게 flutter 모바일 앱을 만들자 ^^
# 학습후기 (4,000자)
21년도 패캠 갓생살기 30일 100% 환급 챌린지에 도전!! 본 강의는 패캠 온라인 강의를 수강한 후기 이며, 앞 광고가
포함 되어 있을수 있으므로, 광고에 대해 불편함을 느끼시는 분이라면, 끝까지 안읽으셔도 섭섭하지 않을것 같습니다.
처음에는 구글에서 만든 flutter 언어를 배우고자, 온라인 강의를 찾던 중에 패캠에서 교육하는 "누적 다운로드 120만+ 1인 개발자와 함께하는 앱 개발 입문" 강의의 광고를 보게 되었다. 워낙에 패스트캠퍼스는 SNS 광고하기로 유명해서, 광고에 속지말자 하면서 교육과정 소개서를 확인하고, 하나하나 커리큘럼을 확인하여 신중한 고민끝에 선택 하게 되었다. 내가 이 강의를 선택한 가장 큰 이유는, flutter 를 배우면서 기초적인 dart 문법을 체계적으로 학습할수 있었고, 그 과정중에 실제 flutter 실전 앱을 제작하면서 개발을 완성하여 배포할수 있는 과정까지 탄탄히 짜여져 있어서 선택하게 되었다. 아래 이미지는 실제 패스트캠퍼스 앱 개발 입문 과정의 교육 과정 학습 소개서의 커리큘럼 내용이다.
온라인 강의 들을 때, 특히 선택할 때 많은 선택 장애가 생기기 마련인데, 이렇게 학습 소개서가 자세히 작성되어있어 어떤 과정을 어느 정도의 수강시간을 공부하면서 학습할수 있는지 잘 설명된 자료를 보면서 자신과 맞는 과목을 선택하는면 후회 없는 선택이 될것 같다. 스마트폰이 대중화 되면서, 적어도 나만의 앱 하나정도는 만들어서 가지고 놀정도의 개발실력을 향상시켜야겠다는 마음가짐은 항상 있었지만, 계획은 늘 방대하나 실천이 안되는 단점이 있었는데, 21년 마지막 도전이다 생각하고 맘 먹은김에 결제 완료 하고 수업을 들으니, 정말 귀신같이 한달이 지나가버렸다. 직장을 다니고 있는 상황에서 퇴근 후 또는 주말에 앱 제작 공부에 열중하느라 정말 많은 시간을 할애 했는데, 어느새 앱 4개를 제작하고 배포하는 경험을 했다니, 뒤돌아서 보니 정말 선택을 잘 했다는 생각이 들었다.
내가 수업을 결재하고 100% 환급 챌린지에 도전할수 있는 기회도 생겨서, 매일 매일 어쩔수 없이 학습 해야하는 약간의 강제성과 의무성이 생기면서 학습 의욕을 더욱 불태울수 있었다. 보통 온라인 교육의 가장 큰 단점은.. 바쁘다는 핑계로 혹은 강좌가 너무 어렵거나 집중력이 떨어져서, 그리고 나중에 또 들을수 있다는 안일함 때문에 결재 후 잘 교육을 듣지 않는 경우가 발생하는데, 환급 챌린지에 도전하니, 매일매일 학습하고, 복습하고, 기술 포스팅을 하게 되면서 자동적으로 지식이 학습되는 놀라운 효과를 경험했다. 온라인 교육과정을 들을때, 이런 이벤트가 있다면 반드시 도전해보길 권장, 또 강력히 추천추천!! 하는 바이다. 다만, 쉬고 싶고 놀고 싶을 때 미션 완수의 위기가 올수 있으니, 의지력이 약하거나 진짜로 바쁜 분들은 비추하겠다. 그래도 교육 내용은 너무 좋으니, 미션이 아니더라도 수강하면서 꼭 클론 코딩하면 좋을 것 같다.
패스트캠퍼스의 미션 환급이라 후기도 꼭 좋은 것만 써야 된다는 미션도 없어서 이번에 수업 들은 누적 다운로드 120만+ 1인 개발자와 함께하는 앱 개발 입문 수업의 장/단점을 가볍게 언급해보고자 한다. 장점으로는 짧은 시간에 Flutter 라는 하이브리드앱을 개발할 수 있는 Dart 문법을 익히고, 바로 단계별 앱 개발을 실제적으로 하다보니, 정말 빠르게 익힐 수가 있다. 모바일 앱 개발의 가장 기본인 카운터 앱부터, Todo 앱, 일기작성앱, 미세먼지앱, 옷추천앱, 눈바디 운동기록앱 등 단계별로 쉬운 초급 앱 부터 외부 공공데이터를 활용한 API 연동하는 고급 앱까지 다양한 앱들을 완성 시킬 수 있다. 공부할 때, 무조건 따라가기 보단, 잘 이해가 가지 않는 부분은 반드시 영상을 멈추고 이해가 될때까지 확인해보고, 직접 소스코딩을 일일이 다해보고, 반복 해서 학습하는게 가장 좋은 것 같다.
누군가 온라인 강의의 단점이, 그냥 바라보고만 있으면 전문가가 되는줄 안다. 하지만 단순히 눈으로 보고 듣는 것만으로는 절대로 실력이 늘지 않는다. 기억에도 오래 남지 않고, 무조건 시행착오들을 겪으면서 본인이 직접 일일이 타이핑 해보고 필기도 해봐야 머리속에 오랫동안 기억이 남는것 같다. 반드시 단계별로 난이도가 상승되기 때문에 기본 단계일 때 충분히 이러한 학습법을 습관화 시키고, 차근차근 단계별로 나가면 좋을것 같다.
단점으로는 초반 Dart 문법 언어가 익숙하지 않은 분들에게 초급 강의가 조금 약한 부분이 있으며, 이부분은 별도로 구글링을 통해 dart 문법 기초부터 응용까지 개발언어를 추가적으로 더 공부하면 도움이 된다. 대부분의 설명이 디테일한 구현 위주의 설명이다 보니 원리와 방법에 있어서, 이해하기 어려운 부분들도 존재한다. 아마도 온라인 강의다 보니 평준화된 난이도로 빠른 교육과정을 만들다 보니 그런듯 하다. 뭐 사실 이 부분도 내가 실력이 부족하기 때문에 발생하는 부분이라, 온라인 강의 들으면서 추가적인 공부는 Flutter 앱 개발 기본 서적이나 구글링을 통한 여러 블로그와 검색 자료를 이용하면 얼마든지 따라갈 수 있었다.
강의는 계속적으로 업그레이드 되니, 계속 기대해도 좋을 것 같다. 단점을 참 말하기가 어려운게 다 각자의 공부 스타일이 있고, 학습 수준이라는 부분이 있기 때문이다. 나한테는 절대적으로 많은 시간이 있는것이 아니였기 때문에, 빠르게 새로운 개발 언어를 습득하고 실제 앱을 만드는 것 까지 짧은 시간 안에 경험해볼수 있었기 때문에 본 교육 과정 모두가 맘에 들었다. 지금 까지 약간은 기술 포스팅과 병행하면서 거침없이 달려왔기 때문에, 지속적으로 기술 블로그를 다시 확인하면서 부족한 부분에 대해서는 보강해서 블로그 페이지를 수정하고 보강하려고 한다. 그 후 온라인 교육을 통해 학습한 기본기로 나만의 앱, 실제 내가 만들어보고 싶어했던 앱을 하나씩 만들어보려고 한다.
# 첫 도전 ~ !! 1일차 강의들으면서 flutter 및 Dart 언어를 이해하고 개발 환경 셋팅 구축
Flutter 를 통해 어떻게 안드로이드와 iOS 를 동시에 개발할수 있을지 의문에서 교육을 수강하게 되었다. Dart 라는 프로그래밍언어가 이 두 기기에서 호환 가능하게 프로그래밍 해줄수 있다고 하니, 교육을 잘 수강해서 나만의 앱 안드로이드와 iOS 두가지 모두 동작 가능한 앱을 만들고 싶다. 모든 언어가 비슷하듯 IDE 개발도구 설치 부터 시작되고, 다양한 환경 설정 등을 거쳐야 비로서 Dart 라는 언어로 프로그래밍하고, 결과론적으로 애뮬레이터도 띄워 직접 가상 스마트폰에서 앱을 설치하고 테스트해볼수 있는 것 같다. 혼자서 공부한다면 환경 셋팅하는데만 많은 시행착오를 겪었을 듯한데, 온라인 교육 들으면서 함께 따라하니 훨씬 쉽게 개발 환경을 셋팅할 수 있었다. 다만 온라인 강의의 가장 큰 단점은 개발환경도 버전이 계속 변경되고 IDE 툴도 버전이 변경되는지라, 간혹 동영상과 아주 똑같지 않은 문제점은 있다. 이런 문제점들은 IT 교육을 담당하는 측에서, 미리미리 최신 버전으로 재녹화를 하거나 다른 영상으로 대체 해주는 센스가 필요한 것 같다. 하지만, 이런 단점도 있지만,,, 필요 할때 마다, 막히는 부분마다, 원하는 장소에서 시간을 구애받지 않은 환경에서 공부할수 있는 부분은 온라인 교육의 가장 큰 장점도 있다. 30일 동안 열심히 포스팅하고 따라하면서 나만의 앱을 최종적으로 이쁘게 만들어보고, 배포도 해보고 운영도 해볼 계획이다. 바쁜 직장인이지만, 퇴근후에 좀더 나은 내일을 위해 열심히 코딩하고 배우고, 응용해서 부수입도 창출하는 아주아주 멋진 앱을 한번 만들어보자. 힘들지만, 오늘도 수고해 ~!
# 6일차 ~!! Firebase 구글 모바일 개발 플랫폼 공부 한날...
오늘은 Firebase와 Admob, 앱 기획 궁금증 해소, 최종적으로 그동안 문법을 정리하며 숫자 카운트어플 만드는 법에 대해서 공부하였다. 2016년에 출시된 구글의 firebase는 앱개발을 할때 필요한 도구와 인프라를 제공하기 위해서 구글이 만든 것이라고 했는데, 데모를 확인하고, 사용자 지역별 접속 현황 등 앱 개발에 있어서 중요한 Analytics을 위한 기능들을 제공할 뿐만 아니라, 앱 개발을 하는데 있어 개발에 집중할수 있도록 다양한 Develop 툴들을 제공한다는 데에 놀라웠다. 물론 무료가 아니라서 유로라는 점에서 앱 개발하고 운영하는데 있어, 비용 부담이 발생하긴 해도 꼭 필요한 기능들만 선택해서 활요하면 굉장히 유용한 툴이라고 생각됐다. Admob 역시 앱 개발자에게 부가가치를 창출할수 있도록 광고를 삽입하여, 앱을 방문한 사용자에게 광고를 노출 시키며, 수익을 벌어들일 수 있는 유용한 도구라는 생각이 든다. 나중에 앱을 만들고, Admob 에 등록하여 광고를 꼭 달아보도록 해야겠다. 최종적으로 교육받은 내용으로 Count 어플을 제작했는데, 간단히 Dart 언어를 사용하여 쉽게 Flutter 앱을 개발해 볼수 있었다. 지금까지 Dart 문법에 대해서 이해하는 과정을 거쳐 간단한 미니앱인 Counter 어플을 만들면서 향후 다양한 응용앱을 만들면서 점점 Dart 응용 문법을 익히고 유용한 앱 기능들을 만들어보고자 한다.
# 15일차 ~!! flutter 실전앱을 제작하면서 디자인하면서 화면 작성하고 일기 작성하고, 이모티콘 기능을 구현한날
오늘은 실제 일기 작성 앱에서 가장 중요한 일기를 작성하는 페이지를 구현 하였다. 지난번 시간에 이미지를 추가하는데 많은 오류를 뿜어내서 오늘 강의는 수월하게 진행했으면 하는 마음이 있었다. getTodayPage를 만들면서 경우의 수를 생각해야하는데, 아직 일기를 작성하지 않았을 때와 일기를 이미 작성했을 때를 나누어서, 일기를 작성하지 않았을 때를 null 이면(비어있다면), 일기를 작성해달라고 요청하고, 이미 일기를 작성했을 때는 어떻게 본문에 출력하는지 화면을 구성하였다. 화면을 구성하기 위해서는 Stack widget 을 사용하여, 플로터 구조상 바탕화면 위에 이미지를 띄우는 구조로 구현을 해야 한다. 그릴 스택에 전체를 채우기 위해 Posioned.fill 를 통해 fit: BoxFit.cover 를 채워야하고, Positioned.fill 은 ListView 를 통해 Row에 오늘의 날짜를 입력하게 구현하였다. 또한 일기 내용을 적절하게 배치하고 배경을 이쁘게 하기 위해 BoxDecoration 을 추가하여 Colors.white54 의 색감을 추가 하였다.
# 30일차 ~!! 해외 출장 갈 일이 있어 외국 호텔에서 홀로 온라인 강의 들으면서 앱 개발 공부한 날...
오늘은 지금까지 만든 앱들을 어떻게 플레이스토어에 등록하고 배포하는지에 대해서 배웠다. 이를 위해 앱 아이콘 및 이름도 준비해야하며, Firebase에 등록하고 App Bundle 만들고, 실제 플레이스토어 등록을 위한 구글 개발자 등록을 하고 앱정보 등록 하였다. 앱을 만드는것도 중요하지만 실제 만든 앱을 어떻게 출시 할지에 대해 단계별로 배우게 되었는데, 절차대로 수행하다 보니 어느새 나만의 앱을 배포하고 있었다. 개발도 중요하지만, 실제 사용자가 어떻게 내 앱을 사용하게 할지 홍보하는 마케팅에 대해서도 공부하게 하였다. 앱을 개발하는것도 중요하지만, 사용자에게 잘 알리고, 잘 쓸수 있게 홍보하는 것도 대단히 중요하다고 생각된다.
패캠 갓생살기 30일 100% 환급 챌린지를 마무리 하면서, 한달동안 정말 이 목표를 달성할수 있을까 처음 시작할때 두려움도 많았지만, 하루하루 멈춤 없이 달려가 보니, 과정을 마무리 할수 있었다. 한달 동안 정말로 숙련된 고급 개발자가 됐다고 생각되지는 않지만, 기본적으로 flutter 가 뭔지, flutter 를 어떻게 개발하고 배포하는지 전 과정을 경험해봤다는게 좋은 도전이였다고 생각이 든다. 부족한 부분은 앞으로 한달동안 갓생살기 미션을 수행한 습관을 꾸준이 유지하면서 고급 개발자가 되기 위한 노력을 해야겠다. 내 앱을 출시하는 날 다시한번 미션을 수행한 이 블로그의 글을 되새김할수 있는 날을 기리며,,, 이 글을 마친다.
위대한 일을 위해서 대단한 도전이 필요하지 않다.
단지 순간순간의 작은 도전이 모여 위대한 일을 이루어간다. - 모션코치 -
# 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'코딩 알로하 :: two > 하이브리드앱' 카테고리의 다른 글
패스트캠퍼스 챌린지 31일차 (0) | 2021.12.01 |
---|---|
패스트캠퍼스 챌린지 30일차 (0) | 2021.11.30 |
패스트캠퍼스 챌린지 29일차 (0) | 2021.11.29 |
패스트캠퍼스 챌린지 28일차 (0) | 2021.11.28 |
패스트캠퍼스 챌린지 27일차 (0) | 2021.11.27 |
댓글