// post
Flutter의 구조와 네이티브 플랫폼과의 연관성
2023년 9월 16일
Flutter의 구조와 네이티브 플랫폼과의 연관성 안녕하세요, Flutter는 개발한지 2년차가 되었고, 지금까지의 시행착오와 삽질하면서 배운 것들을 올리고 싶었으나 바쁘기도하고, 위기의 순간이 지나가고 긴장이 풀리니 뭘 쓰면 좋았더
Flutter의 구조와 네이티브 플랫폼과의 연관성
안녕하세요, Flutter는 개발한지 2년차가 되었고, 지금까지의 시행착오와 삽질하면서 배운 것들을 올리고 싶었으나 바쁘기도하고, 위기의 순간이 지나가고 긴장이 풀리니 뭘 쓰면 좋았더라? 하고 까먹기도하고... 망설여졌습니다. 그러다 조금 여유를 부려서 첫글을 올리려고 하는데, 오늘은 Flutter의 내부 구조와 네이티브 플랫폼과 어떻게 연관되어 있는지에 대해 간단하게 알아보려고 합니다.
Flutter는 크게 Framework와 Engine 두 부분으로 나눌 수 있습니다.
Framework: Dart 언어로 작성된 부분으로, 개발자들이 직접적으로 사용하는 위젯, 애니메이션, 제스처 처리 등의 라이브러리를 포함하고 있습니다.
Engine: 주로 C++로 작성되어 있으며, Skia 그래픽 라이브러리와 Dart 런타임을 포함하고 있습니다. 이 엔진은 Flutter의 핵심 기능을 담당하며, 렌더링, 텍스트 레이아웃, 파일 및 네트워크 I/O 등의 작업을 처리합니다.
- Flutter와 네이티브 플랫폼의 연관성
Flutter는 자체 렌더링 엔진을 가지고 있기 때문에, 네이티브 컴포넌트를 사용하지 않고도 UI를 그릴 수 있습니다. 그러나 네이티브 코드와의 상호 작용이 필요한 경우, Platform Channels를 통해 가능합니다.
- Platform Channels: Flutter와 네이티브 사이의 통신 브릿지 역할을 합니다. Dart 코드와 네이티브 코드 간의 메시지 전달을 가능하게 해주며, 이를 통해 네이티브 기능에 접근하거나 네이티브 UI 컴포넌트를 사용할 수 있습니다.
예를 들어, 카메라, GPS, 센서와 같은 하드웨어 기능에 접근하거나, 플랫폼별 UI 컴포넌트를 사용하고 싶을 때 Platform Channels를 사용하여 Flutter와 네이티브 코드 간의 상호 작용을 구현할 수 있습니다.
결론적으로, Flutter는 자체 렌더링 엔진을 통해 높은 성능의 UI를 제공하면서도, Platform Channels를 통해 네이티브 플랫폼의 기능과 상호 작용할 수 있는 유연성을 가지고 있습니다. 이러한 구조 덕분에 Flutter는 다양한 플랫폼에서 일관된 사용자 경험을 제공하면서도 플랫폼별 특성을 최대한 활용할 수 있게 되었습니다.
이렇게 Flutter의 구조와 네이티브 플랫폼과의 연관성에 대해 설명해 보았습니다. Flutter에 대한 궁금증이나 추가적인 질문이 있으시면 언제든지 댓글로 남겨주세요!
'Flutter' 카테고리의 다른 글
| | Flutter에서 클린 코드의 중요성 및 코드 개선 방안(0)| 2023.09.16
| | Flutter에서 클린 코드를 위한 패턴, 상태 관리 및 패키지 활용하기(0)| 2023.09.16
이 글은 제 Tistory 블로그에 처음 게시(2023-09-16)된 글입니다.