Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 초기화 순서
- 운영체제의 구조
- 기본형 매개변수
- 운영체제의 목적
- 운영체제의 예
- object클래스
- 이것이코딩테스트다
- 명예의전당(1)
- this()와 참조변수 this 차이점
- 객체 배열
- webview_flutter
- 프로그래머스
- 운영체제란 무엇인가
- this()
- 오버라이딩과 오버로딩 차이점
- 운영체제의 분류
- static import문
- 인스턴스 메서드
- stateless widget
- FLUTTER
- stateful widget
- static 메서드
- 참조형 반환타입
- 호출스택
- 클래스 변수
- 오버로딩
- 조상의 생성자
- stateful widget 생명주기
- 참조형 매개변수
- PriorityQueue
Archives
- Today
- Total
Coram Deo
[Flutter] 플러터 특징 / 플러터 컴파일 방식 / 플러터 장단점 본문
Flutter 란?
구글에서 개발한 모바일/웹/데스크톱 크로스 플랫폼 개발 프레임워크
주로 모바일 애플리케이션을 위한 프레임워크로, 하나의 코드베이스로 Android와 iOS에서 동작하는 네이티브 애플리케이션을 개발할 수 있도록 설계되었다.
사용이유
- 크로스 플랫폼 개발
- 고성능
- 풍부한 위젯
- Hot Reload
- 빠르고 쉽게 실험하고, UI를 빌드하고, 기능을 추가하고, 버그를 수정하는 데 도움이 된다. 핫 리로드는 업데이트된 소스 코드 파일을 실행 중인 Dart 가상 머신(VM) 에 주입하여 작동한다 . VM이 새 버전의 필드와 함수로 클래스를 업데이트한 후, 플러터 프레임워크는 자동으로 위젯 트리를 다시 빌드하여 변경 사항의 효과를 빠르게 볼 수 있도록 한다.
- 디자인적으로 성능이 우수함
Flutter를 사용하면 좋은 경우
- 스타트업이나 중소기업
- 프로토타이핑 및 MVP 개발
- 일관된 UI가 중요한 프로젝트
작동 방식
Flutter는 Dart 언어로 작성된 코드를 ARM 코드로 컴파일하여 네이티브 성능을 제공한다.
주요 구성 요소
- Dart
- Flutter 엔진
- Flutter 프레임 워크
컴파일 방식
플러터의 컴파일 방식은 AOT(Ahead of Time)컴파일과 JIT(Just in Time) 컴파일을 둘다 사용함
1. AOT 컴파일
- 코드를 미리 컴파일하여 네이티브 머신 코드로 변환하는 방식
- 앱이 실제로 배포될 때 사용되는 방식
- 장점
- 빠른 실행속도 (네이티브 머신 코드로 컴파일되므로 실행 속도가 빠름)
- 최적화된 성능 (최적화된 네이티브 코드로 컴파일되기 때문에 성능이 높음)
- 보안성 (소스 코드가 사용자에게 노출되지 않음)
- 단점
- 긴 컴파일 시간 (미리 컴파일하기 때문에 컴파일 시간이 길어질 수 있음)
- 큰 바이너리 크기 (최적화된 네이티브 코드로 인해 앱의 크기가 커질 수 있음)
- 플러터는 AOT 컴파일을 사용하여 애플리케이션을 iOS와 Android에 배포한다.
- (최종 사용자에게 최적의 성능을 제공하기 위해)
2. JIT 컴파일
- 애플리케이션이 실행될 때 코드가 실시간으로 컴파일되는 방식
- 개발 중에 주로 사용됨
- 장점
- 빠른 피드백 루프 (코드변경 시 빠르게 테스트 할 수 있어 개발 속도가 빠름)
- Hot Reload (코드 변경 사항을 즉시 반영할 수 있어 개발자가 효율적으로 작업할 수 있음)
- 단점
- 실행 속도 (실행중에 컴파일되기 때문에 AOT 컴파일보다 느릴 수 있음)
- 메모리 사용량 (런타임에 컴파일하기 때문에 더 많은 메모리를 사용할 수 있음)
- 플러터는 개발 중에 JIT 컴파일을 사용하여 개발자가 빠르게 코드를 수정하고 테스트할 수 있도록 한다.
- Hot Reload 기능은 JIT 컴파일의 대표적인 장점으로, 변경 사항을 즉시 반영하여 개발 생산성을 높인다.
전체 컴파일 과정
1. 개발 단계
- 개발자는 Dart 코드를 작성한다.
- Dart VM(가상 머신)이 JIT 컴파일을 통해 코드를 실행한다.
- Hot Reload를 통해 실시간으로 변경 사항을 반영한다.
2. 배포 단계
- 애플리케이션이 배포될 준비가 되면 Dart 코드는 AOT 컴파일을 통해 네이티브 코드로 변환된다.
- 이 네이티브 코드는 각 플랫폼(iOS, Android)용으로 빌드되어 앱 스토어에 배포된다.
결론적으로 플러터는 개발 중에는 JIT 컴파일을 사용하여 빠른 피드백과 생산성을 제공하고, 배포 시에는 AOT컴파일을 사용하여 최적화된 성능을 제공한다. 이 두 가지 컴파일 방식을 적절히 활용함으로써 개발자와 최종 사용자 모두에게 최상의 경험을 제공하는 것이 플러터의 큰 장점이다.
특징
- 위젯 기반: 모든 것이 위젯으로 구성되어 있어 유연하고 일관된 UI를 설계할 수 있음
- 풍부한 라이브러리: 다양한 사전 제작된 위젯과 패키지를 통해 개발 생산성을 높일 수 있음
- 반응형 UI: Flutter는 선언적 방식으로 UI를 설계하여 상태 변화에 따라 UI가 자동으로 업데이트됨
- Customizable: 위젯을 커스터마이즈하거나 새로 만들 수 있는 유연성
'Flutter' 카테고리의 다른 글
[Flutter] Stateless Widget 과 Stateful Widget 차이는 뭘까? (0) | 2024.07.19 |
---|---|
[Flutter] Webview 관련 에러 - "The editor could not be opened because the file was not found" (0) | 2024.07.17 |
[Flutter] API 데이터 가져오기 (Data Fetching / fromJson) (1) | 2024.07.02 |
[Flutter] 새로 배운 개념들 - SafeArea / EdgeInsets / ListView.builder (shrinkWrap) (0) | 2024.06.19 |
[Flutter] - Theme을 이용한 화면 배경색 설정하기 (0) | 2024.06.13 |