플러터가 다른 크로스 플랫폼보다 더 강력한 이유 | 요즘IT | 매거진에 참여하세요

인사이트/로그전체 대상
작성일 : 23.04.27

플러터가 다른 크로스 플랫폼보다 더 강력한 이유 | 요즘IT

#플러터 #Flutter #크로스플랫폼 #프레임워크 #안드로이드스튜디오

👉 본문을 50%이상을 읽으면 '여기까지다' 퀘스트가 완료됩니다(로그인 필수)

플러터(Flutter)는 2017년 구글이 출시한 모바일, 웹, 데스크톱 크로스 플랫폼 GUI 애플리케이션 프레임워크입니다.

하나의 코드 베이스로 안드로이드, iOS, 윈도우즈, 리눅스 및 웹용 애플리케이션과 구글 퓨시아용 앱의 주된 소스코드로 사용되고 있습니다.

이번 글은 출판사 골든래빗이 [MUST HAVE 코드팩토리의 플러터 프로그래밍]에서 발췌한 두 개의 글을 요즘IT에서 편집한 글입니다.

1) 플러터가 다른 크로스 플랫폼보다 더 강력한 성능을 낼 수 있는 원리와

2) 플러터로 모바일 앱을 만들 때 사용하는 안드로이드 스튜디오에 대해 소개합니다.

1. 플러터 구조와 동작 원리 알아보기

플러터 프레임워크는 세 계층으로 나눠져 있습니다. 가장 하드웨어와 가까운 로우 레벨에는 임베더 계층이 있습니다. 임베더는 플러터가 현재 지원하는 6개 플랫폼의 네이티브 플랫폼과 직접 통신을 하고 운영체제의 자체적 기능을 모듈화해둔 계층입니다. 이 모듈들은 각 플랫폼의 네이티브 언어로 작성되어 있습니다.

중간 계층에는 엔진 계층이 있습니다. 이 계층은 대부분 C++로 작성되어 있으며, 플러터 코어 API와 스키아 그래픽 엔진, 파일 시스템 그리고 네트워크 기능 등이 정의되어 있습니다. 마지막 계층에는 플러터 개발자들이 대부분의 시간을 보내는 프레임워크 계층입니다.

프레임워크 계층에는 플러터 프레임워크를 사용하는 데 필수적인 위젯, 애니메이션, 머티리얼 패키지, 쿠퍼티노 패키지 등이 있습니다. 이렇게 세 계층으로 나뉘고, 잘 모듈화된 아키텍처 덕분에 플러터는 쉽게 여러 플랫폼을 지원하고 일관된 API 및 개발 경험을 제공해 줍니다.

플러터가 스키아 엔진과 직접 통신한다는 건 다시 말해 어떤 플랫폼이든 스키아 엔진을 지원한다면, 플러터가 컴파일되고 실행되도록 구현할 수 있다는 의미입니다.

그래서 플러터 팀은 플러터로 단순히 iOS와 안드로이드 앱을 개발하는 데 만족하지 않고,

윈도우, 리눅스, 맥OS 애플리케이션 그리고 심지어 웹사이트까지 같은 플러터 코드로 배포하도록 구현했습니다.

다시 말해 플러터 프로그래밍을 할 줄 알면 한 번에 6가지 플랫폼을 대상으로 배포할 수 있습니다.

그렇다면 플러터가 스키아 엔진을 사용했을 때 어떤 장점이 있을까요?

대부분의 크로스 플랫폼 앱 개발 프레임워크들은 웹뷰를 사용하거나, 각 플랫폼의 UI 라이브러리들을 사용합니다.

플러터는 웹뷰를 사용하지 않고 직접 스키아 엔진을 사용해 화면에 UI를 그려냅니다.

이때 새로 렌더링이 필요한 위젯들만 렌더링 하기 때문에, 다른 크로스 플랫폼 앱 개발 프레임워크보다 상당히 높은 퍼포먼스를 선보입니다.

예를 들어, 플러터의 대표적인 경쟁 프레임워크인 리액트 네이티브는 자바스크립트 브릿지를 통해 플랫폼과 통신합니다.

또한 플랫폼의 UI(OEM 위젯)를 그대로 사용합니다. 그래서 플랫폼과 리액트 네이티브 간 통신을 할 때 필요한 리소스 비용이 상당히 높습니다.

하지만 플러터는 위젯을 스키아 엔진에 직접 그려내고, 필요한 제스처 및 이벤트를 브릿지를 통하지 않고 실행하기 때문에 리액트 네이티브에 비해 상당히 빠른 퍼포먼스를 자랑합니다.

출처 : https://yozm.wishket.com/magazine/detail/1994/