본문 바로가기
프로젝트/개발일지

Flutter로 앱개발 시작하기

by 반포한강공원 2024. 11. 1.

 

힘들어서 개발일지라도 써야겠다.

 

앱개발을 시작한 계기

나이가 들수록 내 것이 있어야 한다는 생각이 가시질 않는다.

음악인들의 "저작권료" 같은 거 말이다.

내가 창작 해서 직접 처분할 수 있는 "지적자산"이 있어야 한다.

 

글 같은 거 말고 소프트웨어 제품을 만들고 싶었다.

직장생활은 기술노동력을 파는 거라 나이가 들면 계속하기 힘들어진다.

움직일 수 없으면 결국 돈이 돈을 벌어야 한다.

 

이런 일을 시작할 땐 레드오션부터 시작하는 게 좋다.

가장 손에 잡기 좋은 게 앱이다.

 

그런데 앱은 해본적이 없다.

서버 일은 오래 했지만, 웹을 안한지는 오래되었다.

십여 페이지 정도는 만들어 쓰기도 했지만, 본격적으로 만드는 건 좀 다른 일이다.

아키텍쳐와 구조, 유지보수까지 생각해야 하니 말이다.

 

Flutter

그래서 새로운 언어를 배워보기로 했다.

Flutter 다.

누구는 좋다고 하고, 누구는 좋지 않다고 하던데 지금 와서 생각해보니 알겠다.

일단 1인 앱개발자에게는 이게 정답이다.

다른 거 쓰면 더 있어 보이겠지만, 빨리 만들어서 출시해야 할 땐 이게 진짜 갑이다.

 

웹 개발하듯이 게시판 짜는 정도의 요구사항들에게는 더할 나위 없이 좋다.

다만, IoT 같이 다른 하드웨어를 제어해야 하는 경우는 복잡해진다.

네이티브 앱이 훨씬 더 제어하기 편한다.

그냥 그 정도로 이해하자.

Flutter는 범용적으로 만든 빠른 개발도구 정도로 이해하면 된다.

 

계산기

Dart 언어도 처음이고, 앱개발 프레임워크도 처음이다.

그러니 앱이 너무 복잡하면 안된다.

여러개의 화면이나 기능이 합쳐져야만 하나로 동작하는 경우다.

만들어 놓고도 동작할지 안할지 몰라서 엎을 시기를 가늠할 수 없다.

 

가장 평범하고 일반적인 거부터 해보기로 했다.

"계산기"를 선택했다.

 

앱이 작고 가볍고, 기능도 몇 개 없다.

앱이 너무 많아서 내가 만든 게 티가 안난다. (내 의도)

잘되면 환율계산, 단위환산 등 확장할만한 것이 많다. (희망회로)

 

100일이 지난 후

8월초부터 시작했으니, 3개월이 되었다.

거의 100 일을 투자했다.

이 일도 하고 저 일도 하느라 오래 걸렸다.

이것만 만들었다면 한 달이면 끝냈을 것 같다.

 

 

이거 개발 연대기를 좀 정리할까 한다.

초보자용은 아니다.

나 같은 시니어 개발자가 앱개발을 하게 될 때 겪는 이야기들이다.

 

시니어 개발자에게만 도움이 될 거라 생각하진 않는다.

이제 막 개발을 시작한 초보개발자들도 도움이 될 거라 본다.

 

코딩과 개발의 차이

코딩은 코드를 만드는 일을 말한다.

기능을 잘 완성하는 것으로 일이 끝난다.

엑셀에 어떤 기능을 넣든, 특정한 목표가 달성이 되면 끝난다.

 

개발은 제품을 만드는 걸 말한다.

혼용해서 쓰기도 하지만, 여기서는 구분짓고 싶다.

개발의 목표는 완성된 제품이다.

여기서 제품이란 고객이 사갈 수 있는 상품을 말한다.

무료 상품도 포함된다.

 

제품, 상품을 만들려면 코딩 말고도 많은 일들을 해야 한다.

다운로드 받고 싶게끔 디자인도 해야 하고,

에러 메시지 뜨는 모습 조차도 연구를 해야 한다.

기능 뿐 아니라, 감성적인 부분까지 다 포함하는 거다.

 

물론 계산기 앱이라 특별할 게 없지만, 연습타를 칠 때 다 익혀두기로 한다.

 

AI 이용하기

ChatGPT, Cloude, Perplexity, 뤼튼... 

다 안 쓸 이유가 없다.

코딩을 얼마나 도와주는지도 알아봐야 하고,

어디까지 대답을 해주는지도 알아보기로 한다.

 

유료버전 기능이 좀 더 낫다고 하는데, 그냥 교차해서 쓰기로 한다.

나는 AI 엔진을 만들 게 아니기 때문에 그냥 이렇게 쓰는 걸로 시작해 본다.

 

...

100 일을 지내면서 AI 를 깊게 사용해본 후기를 간단히 정리해보면...

 

좋은 점.

- Flutter 문법이나 라이브러리, 리팩토링, 디버깅 등 도움을 안 받은 곳이 없다.

- 이제 AI 없이 코딩을 못할 것 같다.

- 내가 초보자 때 개발 잘하는 대리님을 옆에 끼고 코딩하는 느낌이다.

- 무엇보다 "헤매는 시간"을 엄청 줄여준다. 이거 없었다면 시간이 10배는 더 걸렸을 것 같다.

 

아쉬운 점

- 아직 노터치는 아니다.

- 노터치로 코딩이 되려면 적어도 5년은 더 걸려야 할 것 같다.

- 이유는 AI 모델의 한계 때문이다. 대량의 학습은 GPU로 되겠지만, AI 모델은 박사님들이 연구를 해야 나온다.

- 지금 나와 있는 AI 모델들로는 노터치 수준의 자동화를 만들기는 어렵다.

- 애매한 갈림길에서 의사결정이 필요한 경우 말이다. 물론 그런 지점이 필요없는 특정 구간은 괜찮을 것 같다.

 

그리고, 역시 복잡성이 올라가면 내가 생각을 다 해야 한다.

AI는 굉장히 제한된 코드만을 뱉어낸다.

잘라서 붙이는 건 내가 해야 한다.

 

그럼에도 불구하고, AI는 이제 없으면 안되는 존재가 되었다.

그리고 Cursor IDE 는 정말 편리하다. vscode 를 지웠다.

Cursor가 vscode 를 fork 해서 만든거니까 더 좋았다.

 

AI 가 다 해주나?

개발의 세계는 여전히 잡무의 세계다.

이유는 많은 인프라들이 파편화되어 있고 끊어져 있기 때문.

원래 이걸 잇는 기술이 없었다.

 

그래서 신경 쓸 것이 너무 많다.

자질구레한 것까지 신경을 안 쓸 수 없다.

어렵게 말하면 디테일까지 못 맞춰준다.

 

AI 기술의 진화 속도는 천상계를 달릴테지만,

그게 인간계로 내려오려면 아직 멀었다는 생각이 든다.

천재들이 일반인에 대해 관심이 없다.

 

삽질하는 걸 AI로 바꾸려면 삽질해봐야 하는데,

삽질을 안해봐서 바꾸는 대상을 알 수가 없다.

 

물론 시간이 지나면 바뀌겠지만, 시간이 오래 걸릴 것 같다.

세상 참 어렵다. 역시 사람의 문제다. 쩝.

 

...다음 편에...

반응형

댓글