- 시작하며 -
Flutter는 구글에서 개발한 오픈 소스 프레임워크로, 모바일 애플리케이션 개발을 위한 툴킷입니다. 플러터는 크로스 플랫폼 개발을 지원합니다. 다른 크로스 플랫폼 개발을 지원하는 React Native가 있지만 성능면에서는 자바 스크립트를 사용하는 React Native에 비해 성능 면에서 뛰어납니다.
그렇다면 왜 Flutter가 성능면에서 native앱과 비교했을 때 차이가 거의 없는지에 대해 그리고 Flutter의 여러 특징들에 대해서 알아볼까 합니다.
- 본문 -
컴파일된 언어
플러터는 다트(Dart) 언어를 사용하여 개발됩니다. 다트는 JIT(Just-In-Time) 컴파일러와 AOT(Ahead-Of-Time) 컴파일러를 모두 지원합니다. JIT 컴파일러는 개발 시에 핫 리로딩과 같은 기능을 제공하고, AOT 컴파일러는 애플리케이션을 미리 컴파일하여 실행 속도를 향상 시킵니다.
핫 리로딩(Hot Reload)
플러터는 핫 리로딩 기능을 제공하여 애플리케이션 코드의 변경 사항을 실시간으로 적용할 수 있습니다. 개발자는 앱을 다시 컴파일하거나 재시작할 필요 없이 코드를 수정하고 결과를 즉시 확인할 수 있습니다. 이는 애플리케이션 개발 시간을 단축하고 실험 및 디버깅을 쉽게 할 수 있게 합니다.
네이티브 코드와의 상호 작용
플러터는 네이티브 코드와 통신하기 위해 Flutter 엔진을 사용합니다. Flutter 엔진은 C/C++로 작성되어 있으며, 네이티브 플랫폼과 직접적으로 상호 작용할 수 있는 인터페이스를 제공합니다. 이를 통해 플러터 앱은 네이티브 앱과 동일한 성능을 제공할 수 있습니다.
하드웨어 가속
플러터는 GPU 가속을 지원합니다. 이는 애니메이션과 그래픽 처리 등에 대한 성능을 향상 시키는 데 도움을 줍니다. GPU 가속을 사용하면 앱의 퍼포먼스가 향상되어 네이티브 앱과 유사한 경험을 제공할 수 있습니다.
최적화된 위젯 엔진
플러터는 위젯 기반 구조를 가지고 있습니다. 위젯은 애플리케이션의 UI 구성 요소를 표현하는 데 사용됩니다. 플러터는 위젯의 변경 사항을 효율적으로 업데이트하고, 필요한 경우에만 다시 렌더링 합니다. 이를 통해 플러터 앱은 필요한 최소한의 작업만 수행하여 성능을 최적화할 수 있습니다.
최적화된 렌더링 엔진
플러터는 Skia 그래픽 라이브러리를 사용하여 UI를 그리고 렌더링 합니다. Skia는 고성능 그래픽 엔진으로 알려져 있으며, 플러터는 Skia를 이용하여 UI를 빠르고 부드럽게 렌더링합니다.
- 마치며 -
이러한 이유로 플러터는 네이티브 앱과 거의 동일한 성능을 제공한다는 것을 알 수 있었습니다. 그렇다면 다음 포스팅에는 Flutter의 구조와 위젯들을 알아봅시다.
참고:
https://catsbi.oopy.io/dbe067c8-0ff1-484a-ad34-8b9051c0b6d5
https://dev-repository.tistory.com/108
https://www.kodeco.com/books/flutter-apprentice/v1.0/chapters/1-getting-started
'Flutter > 프레임워크' 카테고리의 다른 글
[Flutter] 위젯(Widget) 과 엘리먼트(element) 그리고 렌더 오브잭트(RenderObject) (0) | 2023.06.16 |
---|