[flutter] flutter 아키텍쳐 개요

장주명·2024년 1월 22일

flutter 아키텍쳐

목록 보기
1/1

flutter 개발자로 전향하고 개발만 진행하다보니

flutter의 기본적인 CS지식을 알고 한게 아니다보니 공부가 필요해 보였고

면접시 해당 질문은 자주 나올것으로 보여 공식 문서를 정리해가며 정리하고자 합니다.

1. flutter layer model

플러터의 구조 레이어는 다음과 같이 이루어져 있습니다.

각각 기본 레이어에 의존되는 라이브러리들이 위치해있으며 어더한 레이어도 다른 레이어에 대한 엑세스 권한을 가지고 있지 않으며 모든 프레임워크의 모든 부분은 선택적이고 교체가능하게 디자인되어 있습니다.

각 레이어에 대해 살펴봅시다.

1. Embedder

Embedder란 각 플렛폼 별 운영체제의 진입점 즉 엔트리 포인트를 제공합니다. 이를 통항 각 플렛폼의 렌더링, 사용자 입력, 통신 등의 기능을 플랫폼별로 구동시킬수 있게 해주는 레이어 입니다.

2. Engine

flutter에서 가장 중요한 레이어로써 flutter만의 Skia엔진(Android 버전에 의존되지 않음)과 flutter의 핵심 API를 저수준 구현을 제공해줍니다.

엔진은 C++로 작성되어 있고 프레임워크에서 사용할 수 있게 다트 클래스로 감싸져 dart.ui를 통해 제공됩니다.

3. Framework

일반적으로 개발자들과 상호작용하는 레이어로써 flutter의 고수준의 기능등을 제공합니다. Framework 레이어는 아래와 같이 구성되어있습니다.

1. Foundation

Animation, Painting, Gesture 계층에게 기본 기초 클래스를 제공합니다.

2. Animation, Painting, Gesture

일반적으로 사용되는 추상 클래스 및 빌딩 블록을 제공합니다.

3. Rendering

레이아웃을 처리하기위한 추상 클레스를 제공 합니다. 이 레이어를 사용하여 레이어 객체 트리를 구축할수 있습니다.

4. Widget

화면을 구성하는 추상화 클레스를 제공하며 각 렌더링 레이어의 각 렌더링 객체에서 위젯레이어에 대응하는 클레스가 있습니다. 또한 위젯 레이어를 통해 재사용 가능한 클레스 조합을 생성할수 있습니다.

5. Material, Cupertino

Material 및 Cupertino 디자인별 구현된 Widge으로 구성된 세트입니다.

다음은 flutter 앱의 기본적인 구조를 표현한 그림 입니다.

참조
Flutter architectural overview
Flutter 아키텍처 개요 1편: 레이어 모델
[Flutter] 1. 플러터의 구성

profile
flutter & ios 개발자

0개의 댓글