구글이 차세대 앱 개발 프레임워크로 Flutter를 미는 이유

#Flutter #Dart #앱 개발


| Flutter, 왜 배워야 할까?

Flutter를 배워야 하는 이유는 넘쳐난다. 그러나 가장 큰 이유는 “누구나 쉽게 시작” 할 수 있다는 것이다. 그리고 자신이 만든 간단한 소스를 아주 쉽게 Web, PC, iOS, Android에 올릴 수 있다. Flutter는 전문가들이 어렵게 만들어야 했던 앱과 웹을 입문자들도 바로 만들 수 있게 많은 기능을 제공하고 있다. 그렇기에 굉장히 짧은 시간 동안 전 세계에 퍼져 많은 개발자와 입문자들이 Flutter를 사용하고 있는 것이다.

현업에서 가장 문제가 되는 것이 “전문가”를 데려오기 힘들다는 것이다. 그렇기 때문에 스마트 폰이 보편화되었던 2012년부터 지금까지 “누구나 쉽게 iOS, Android”를 개발하는 솔루션들이 종종 나왔었다. 그러나 학습난이도가 낮은 javascript와 html을 사용하는 것까지는 좋았으나 “속도”와 “기능” 면에서 문제가 많았었다.

그러나 Google의 Flutter가 나오면서 이야기는 달라지기 시작한다.

Flutter의 성능이 좋아지면서 Google에서 수많은 패키지를 제공해서 누구나 손쉽게 빠르고 만족스러운 소프트웨어를 만들 수 있게 되었다.

결과적으로 Native 개발자들조차도 Android와 iOS를 한 번에 만들 수 있는 Flutter로 개발해 달라는 요구를 받고 있는 것이 현실이다.

정리하자면 flutter가 인기 있는 이유는 다음과 같다.

📌 개발자 한 명이 iOS와 Android, web, PC를 동시에 개발
📌 구글과 커뮤니티의 강력한 지원

이런 이유로 많은 개발자와 입문자들이 Flutter를 학습하고 빠르게 소프트웨어를 만들어 배포하고 있다.
이제는 프로그래밍을 입문하는 사람에게 Python 다음으로 추천하는 언어가 Dart(Flutter)가 될 정도로 인기는 급상승 중이다.


| Flutter의 장점

Flutter의 장점은 셀 수 없이 많지만, 개발자 입장과 회사입장에서 Flutter의 장점을 구분해 보자면 다음과 같다.

💁‍♀️ 개발자 입장

✔ 초보도 학습이 쉬운 언어 dart
✔ 편리한 오픈소스 (pub.dev)
✔ 고객 친화적 교육콘텐츠(유튜브)

Dart 언어는 자신만의 특징이 없는 언어이다. 그러다 보니 매력은 덜할지 몰라도 파이썬과 JAVA를 섞어놓은 듯한 문법 때문에 처음 배우는 개발자들이 부담 없이 빠르게 학습할 수 있는 장점이 있다. 그리고 대부분의 프로그래밍 학습의 고질병인 “개발 환경 설치 스트레스”를 줄이고자 Google에서는 Dartpad를 제공하며 웹에서도 쉽게 Dart와 Flutter를 공부할 수 있게 하고 있다.

DartPad - 온라인상에서 쉽게 코드를 작성하고 결과를 볼 수 있다.

DartPad - 온라인상에서 쉽게 코드를 작성하고 결과를 볼 수 있다.

그리고 이 Dartpad로 만든 예제를 개발환경에서 copy & paste로 붙여 사용할 수 있다.
그 소스를 메뉴에서 선택만 달리하여 App, Web, PC로도 손쉽게 만들 수 있다.

DartPad - 온라인상에서 쉽게 코드를 작성하고 결과를 볼 수 있다.

즉, 같은 소스를 가지고 원하는 대상만 선택하면 별다른 작업없이 선택한 환경의 소프트웨어를 쉽게 만들어 낼 수 있는 것이다.
(1개의 소스만으로 다양한 소프트웨어를 만들어내는 것은 개발자들에게는 오랜 로망과도 같다).

Chrome 웹에서 실행화면

Android에서 실행화면

Window PC 에서 실행화면

IOS에서 실행화면

MacOS에서 실행화면

다양한 사용 예제를 보면 알 수 있듯, 이전 같으면 2~3명의 개발자가 할 일을 Flutter 개발자 혼자 할 수 있게 되었다. 그런 점에서 Flutter 개발자는 기업과 개발자 모두에게 빠르게 사랑받게 된다.

그리고 pub.dev와 같은 오픈 패키지 사이트(Google이 운영)는 마치 쇼핑몰을 구경하듯, 패키지를 설치 및 예제코드를 복사하며 사용할 수 있다.

DartPad - 온라인상에서 쉽게 코드를 작성하고 결과를 볼 수 있다.

pub.dev

Flutter의 커뮤니티는 다른 개발 커뮤니티보다 재미있는 점이 많은데, 대표적으로 Google이 직접 운영하는 Flutter 채널이다. 개발자들에게 친숙한, 제대로 알려주는 목적의 코딩 강의들보다는 유튜브 Short에 가까운 직관적인 설명으로 인해 Flutte 입문자들이 좀 더 흥미롭게 다가갈 수 있다.
▶ Flutter 유튜브


마지막으로 회사 입장에서는 다음과 같은 장점으로 Flutter가 선호되고 있다.

✔️ 생산단가 하락
한 명의 개발자가 2개 이상의 앱을 개발할 수 있으므로 회사입장에서는 인건비가 절감된다.
그러므로 많은 개발회사에서 Flutter 개발자를 찾고 있는 것이 현실이다.

✔️ 빠른 개발 속도(1개의 앱이 2개의 결과를 내놓기 때문)
Flutter는 1개의 소스로 iOS, Android를 큰 수정 없이 배포할 수 있다.
그러므로 이전에는 Android와 iOS를 분리하여 개발하는 시간에 비해 평균 1.5배 이상의 빠른 속도로 개발을 완료하고 있다.

✔️ 개발자 구인에 유리함
Android와 iOS는 숙련된 개발자가 필효하지만 Flutter의 경우, 입문자 수준의 개발자로도 평범한 앱을 개발할 수 있다.
그러다 보니 Flutter를 모르더라도 사내에서 개발교육을 시켜 Flutter로 개발시키는 사례가 늘어가고 있다.


| Flutter 입문자가 흔히 놓치는 문제점

그러나 Flutter 입문자에게 좋은 프로그래밍 프레임워크이긴 하지만, 혼자서 학습했을 경우 다음과 같은 난제를 경험하게 된다.

✅ 반응형 프로그래밍의 주의점(Stateless, Stateful)
✅ Flutter의 에러 메시지(Expanded Widget의 치명적인 warnning)
✅ 애매한 디버깅 환경(반응형 프로그래밍의 구조적 문제)

위의 내용은 혼자 개발할 때는 크게 문제가 되지 않는다. 프로그램은 실행되고 경고만 보여주기 때문이다. 그러나 심각한 문제는 프로그램을 마켓에 올릴 때 발생한다. 일 예로 Expanded Widget의 warning의 경우 개발환경에서는 문제가 없다가 릴리즈 환경(출시 시점)에서 작동을 멈춘다. 상당히 심각한 문제이지만, 이를 혼자서는 사전에 알 수 없다.

결국, 이러한 이유 때문에 Flutter를 혼자 공부하는 것보다는 전문 개발자 출신의 강의를 들어야 한다.


| 그럼, 어떤 사람에게 배워야 할까? 개발자 철학이 중요한 이유

✏️ 프로그래밍에서 중요한 것은 문법이 아니다.
✏️ 프로그래밍은 문제해결 능력이 중요하다. 경험과 노하우가 중요하다.


많은 프로그래밍 입문자들이 오해하는 것이 “프로그래밍 언어”가 가장 중요하다고 생각한다. 그러나 잘못된 생각이다. 프로그래밍 언어는 누구나 쉽게 혼자서 공부할 수 있다. 전문개발자로부터 도움이 필요한 것은 “개발환경에 대한 이해”와 “경험에 따른 노하우”, 그리고 “개발자 사고방식”이다.

요즘 프로그래밍 입문에서는 ChatGPT, Bard를 통한 생성 AI가 알려주는 코드로 공부하는 것이 대세이다.

DartPad - 온라인상에서 쉽게 코드를 작성하고 결과를 볼 수 있다.

의사코드 형태의 프롬프트를 만들고 Bard나 ChatGPT 같은 생성 AI를 활용하면 기본적인 코드는 얻을 수 있다. 단, 오류가 30% 이상 확률로 발생할 수 있다.

그러나 알아두어야 할 것이 있다. 생성 AI로만 공부하다 보면 "잘못된 코드”로 고생할 수 있다. 이는 생성 AI의 문제가 아니라 생성 AI가 학습한 데이터들이 “올바르지 못하기 때문”이다. 개발자들이 구글링을 해도 “올바른 데이터” 찾는 것이 쉽지 않은 것과 같은 맥락이다.

기초가 튼튼한 학습을 하려면 “전문가”의 조언이 필요하다. 특히 검증된 개발자의 강의가 필요한데 그들의 포트폴리오와 회사경력이 이를 입증한다. [Fast campus에서 제공하는 Flutter강의]는 그런 점에서 탄탄한 기초와 믿음직스러운 Contents를 담고 있다.

Fastcampus의 Flutter 강의의 장점은 다음과 같다.

📌 현업 최상 전문가들이 문제점을 정리하여 커리큘럼 작성
📌 Flutter에서 매우 중요한 개념인 상태관리(Bloc, provider)를 깔끔하게 설명
📌 이론이 아닌 실용에 예제들로 강의(현업에서 사용하는 template)


강의의 질은 강사의 경력과 철학이다. '강사가 어떤 프로그램을 만들었는가?'에 따라 사고할 수 있는 능력이 달라지며, 강의 질도 달라지기 때문이다. 그런 점에서 Fastcampus의 Flutter강의는 입문자와 개발자 모두에게 만족스러운 내용을 제공할 것이라 생각한다.


💙 앱 개발의 판도를 바꾼 Flutter, 배워보고 싶다면?

[초격차 패키지 : 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발]

✔️ 입문부터 실무까지 15개 프로젝트로
Dart 부터 Flutter 실무까지 학습 로드맵의 모든 내용을 하나의 강의로
✔️ 개발-배포-운영까지 담은 실무 프로젝트
현업 앱 개발 과정을 시나리오로 담아 실무 필수 개념 & 상황별 문제 해결 전략 학습
✔️ 무제한 업데이트 & 질의응답
지속적인 강의 내용 업데이트와 탑 티어 현직 플러터 강사님들의 답변까지


지금 패캐머들이 읽고있는 BEST 아티클이 궁금하다면

이 글과 연관된 주제의 추천 강의