최근에 비디어스 앱을 Flutter로 변경하고 릴리즈했다. 이번에 Flutter로 꽤 완성도 있는 프로젝트 하나를 마무리하고, 내부에서 리액트를 경험하면서 나의 학습법이 완성된 것 같다.
특별한 것 없고, 지적할 부분투성이지만 나에게는 정말 딱 맞고 효율이 좋다.
Flutter를 학습해 온 과정을 통해 정리해본다.
1. 입문용 강의를 빠르게 완강한다.
입문용 강의는 무료도 많고, 유료더라도 클립 수의 부담이 적기 때문에 완강이 쉽다. 내가 들었던 강의는 Udemy에서 검색해서 첫 번째로 나온 강의였다. 보통 입문용 강의를 고르면, 그럴듯한 결과물(디자인)을 보게 되는데, 디자인은 보지 않고 커리큘럼을 보고 (느낌상) 다뤄야 할 부분을 놓치지 않고 다루고 있나 보고 바로 구매해서 봤다.
당연히 뭘 모르고 확인했기 때문에, 누락된 부분이 있었지만 입문하기에는 전혀 문제없었다.
대부분의 온라인 강의는 코드를 보면서 따라 하는 방식의 강의인데, 당연히 따라가기 벅찬 경우가 많다. 그래서 일시정지를 자주 하게 되는데, 생각보다 꽤 오래 걸리긴 하지만 그래도 입문 강의라 금방 본다. 완강까지 3주 정도 걸렸던 것 같다.
2. 일단 뭐가 됐건, 만든다.
여기서 “뭐가 됐건” 에 해당하는 부분이 생각보다 많다. 주제도 그렇고, 기술도 그렇다. Flutter로 처음 앱을 만들려면 상태 관리 패키지는 어떤 걸 쓸 것인지도 결정해야 하고, 어떤 UI 하나를 쓰려고 해도 대안이 많아서 고민되기 마련이다. 그리고 늘 처음 배우는 기술을 접하면 베스트를 찾고 싶어진다. 그래도 요즘 뜨는 기술은 뭔지, 그래도 내 상황에 제일 잘 맞는 패키지는 뭔지 고민하게 된다는 것이다.
내가 경험해 보니, 해보기 전에는 절대 모른다. 누군가는 경험이 많아서 알 수도 있겠지만, 내 경우에는 절대 모르겠더라. 그러니 조금 찾아보고 몇 개 후보가 결정되면 일단 그중 아무거나 마음에 드는대로 골라 시작하는 것이다. 그렇게 시작하고 나중이 되어서야 그 선택이 맞는지 틀리는지 알 수 있다.
틀려도 좋고, 맞아도 좋다. 틀리면 경험이 넓어져서 좋고, 맞으면 시간을 줄일 수 있어 좋다. 이렇게 쌓인 경험은 결국 다음에 다른 새로운 것을 학습할 때 좋은 기반이 된다.
3. 규모를 키운다.
일단 한번 만들고 나면 확실히 시야가 넓어진다. 그리고 다시 패키지를 고민하고 좀 더 규모 있는 것을 만든다. 기획도 조금 해보고, 기존 앱에 기능을 많이 붙여 본다든지 새로운 앱을 만들어 본다든지. 기존 프로젝트를 고도화하는 것이 아니라 다시 패키지를 고민하고 새로 개발하는 것이다.
여기서 핵심은 준비가 안 되어있다는 점이다. 노트, 일기 앱 같은 간단한 앱을 만들었다고 해서 큰 플랫폼이나 커뮤니티 수준의 앱을 만들 수 있는 준비가 된 것은 아니다. 하지만 시작하는 것이다. 왜냐하면 준비는 선행되는 것이 아니다.
완성되고 나서야 준비가 되는 것이다. 그러니, 준비가 안 돼서 시작을 못 한다는 말은 그냥 하기 싫다는 말이다. 왜냐하면 “시작”이 곧 준비니까.
어쨌든 이런 과정을 거치는 데 1년이 조금 덜 걸린 것 같다. 이제 뭘 만들어도, 만들 수 있을 것 같다.
학습의 사이클이 완성되니, 조금 더 겁이 사라지는 것 같다. 어렸을 때는 그렇게도 관심 없던 학습법을 나이 먹고 배운다.