Introducing Flutter
Introducing Flutter
2017년, 구글은 Flutter라는 오픈소스 UI 프레임워크를 발표했습니다. Dart 언어를 기반으로 하는 Flutter는 하나의 코드베이스로 다양한 플랫폼에서 빠르고 일관된 사용자 인터페이스를 제공합니다.
오늘날 Flutter는 React Native와 함께 대표적인 크로스 컴파일 프레임워크로 자리 잡았으며, 모바일, 웹, 데스크탑까지 아우르는 멀티 플랫폼 개발의 강력한 대안으로 주목받고 있습니다.
하나의 코드베이스를 통해 각 플랫폼별 네이티브 바이너리로
멀티 플랫폼에 대응하는 점은 Flutter의 가장 큰 장점이라고 할 수 있습니다. 특정 플랫폼에 대한 숙련도가 없이도 빠르게 프로젝트를 진행 할 수 있다는 것이죠.
vs React Native?
크로스 플랫폼 프레임워크에는 React Native도 존재합니다. 기존의 React에 익숙하거나 java script에 익숙한 사용자들은 React Native로 시작하는 것이 더 효율적일 수 있습니다. 그렇다면 Flutter는 React Native와 어떤점이 다를까요?
자체 렌더링 엔진
Flutter는 자체 렌더링 엔진(Skia → 현재는 Impeller)을 사용하여, UI를 플랫폼 위젯에 의존하지 않고 직접 그립니다.
이 덕분에, iOS와 Android에서 동일한 UI/UX를 100% 일관되게 구현할 수 있습니다.
반면, React Native는 네이티브 플랫폼의 UI 컴포넌트를 사용하는 구조이므로, 플랫폼마다 다르게 보이거나 커스터마이징에 한계가 있을 수 있습니다.
AOT 컴파일 vs JS Bridge
Flutter는 Dart 코드를 AOT(Ahead-of-Time) 컴파일하여 네이티브 바이너리로 변환됩니다. → 실행 시 별도의 인터프리터나 브릿지가 필요하지 않습니다.
반면, React Native는 JavaScript 런타임 위에서 동작하며, JS와 네이티브 사이를 Bridge로 연결해 통신합니다.
이 구조는 복잡한 UI나 고빈도 애니메이션에서 Jank(프레임 끊김) 현상이 발생할 수 있고, 퍼포먼스 최적화를 위한 추가 작업이 요구됩니다.
React 몰라요 + Java Script 싫어요 -> Flutter로 시작해보는것은 어떨까?
Flutter 코인, 탑승해도 될까?
아직도 성장 중인 기술
Flutter는 2017년에 첫 등장한 이후, 꾸준히 버전 업데이트를 거쳐 2024년 현재도 활발히 유지보수되고 있는 구글의 전략적 프로젝입니다.
- Flutter 3.0부터는 Windows, macOS, Linux 데스크탑까지 지원
- Flutter Web도 꾸준히 안정화 중
- 새로운 렌더링 엔진 Impeller 도입으로 애니메이션 성능까지 강화
커뮤니티도 꾸준히 성장하고 있고 구글의 지원도 계속되고 있습니다.
생각보다 높은 점유율?
2024 Stack Overflow FrameWorks(others)점유율
2024 Stack Overflow에서 조사한 설문에 의하면 ‘Other Framework’ 탭의 Flutter의 점유율은 9.4% React Native보다 0.4% 앞서 있습니다. 21년도에 React Native의 응답이 높았던것을 생각하면 긍적적으로 보입니다.
2024 Stack Overflow(most popular technologies) 점유율
전체적으로 보았을때 Dart의 점유율은 6%정도 라고 하네요.
생성형 AI로 인해 낮아진 러닝커브
멀티 플랫폼 개발은 전통적으로 각 플랫폼의 네이티브 구조에대한 이해, 그리고 프로그래밍 언어/프레임워크에 대한 숙련도를 요구해왔습니다.
하지만 최근, 생성형 AI의 발전은 이 장벽을 크게 낮춰주고 있습니다.Dart의 문법과 Flutter프레임워크가 제공하는 기능을 완벽히 알지 않아도 시작할 수 있습니다. 또한 네이티브에 대해 숙련되지 않은 사용자들도 쉽게 시작할 수 있게 되었습니다.
개인의 생산성은 비약적으로 향상되었고 진입 장벽은 그만큼 낮아졌습니다.
초기만 잘 넘긴다면, 소규모 혹은 개인 프로젝트에서 Flutter만큼 빠르고 일관된 UI를 제공할 수 있는 선택지는 드뭅니다.
결론
Dart와 Flutter는 초기에 약간의 러닝커브가 있지만, 한 번 익히면 다양한 플랫폼에 적용 가능한 강력한 도구입니다. 특히 Java, JavaScript, Python 등 기존 언어 경험이 있는 개발자라면 더 빠르게 적응할 수 있습니다.
필자는 Flutter의 미래를 긍정적으로 보고 있습니다. 단순히 기술 스택을 확장하기 위한 목적보다는, 적은 인원으로 실제 무언가를 만들어보거나 새로운 아이디어를 빠르게 실현해보고자 할 때 시작하는 것이 더 적합하다고 생각합니다. Flutter는 실전에서 바로 활용할 수 있는 현실적이고 효과적인 도구입니다.


