Flutter는 Dart언어를 기반으로 동작한다. Dart의 컴파일 방식에는 크게
AOT(Ahead-Of-Time)와 JIT(Just-In-Time) 두 가지가 있다.

AOT(Ahead-Of-Time)
특징
코드를 앱 실행 전에 미리 기계어(네이티브 코드)로 컴파일 한다.
프로덕션(릴리즈) 빌드 시 Dart 코드를 AOT로 변환하여 배포한다.
✅장점
- 미리 최적화된 네이티브 코드를 사용함으로, 런타임 성능이 우수하다.
- 해석 과정없이 곧바로 실행되므로 속도가 빠르고 안정적이다.
- 최종 앱 패키지 크기가 더 작아질 수 있다.
❌단점
- 앱을 빌드하는 과정에서 컴파일 시간이 증가할 수 있다.
- 코드 수정 시마다 새로 빌드를 해야하기에 개발 과정에서 반복 테스트시 불편하다.
JIT(Just-In-Time)
특징
코드 프로그램 실행중(런타임)에 코드를 동적으로 해석(컴파일)한다.
덕분에 Flutter 개발 시 “핫 리로드(Hot Reload)” 기능이 가능한 핵심 이유이다.
✅장점
- 앱 수정 후 즉시 반영할 수 있어, 개발 및 디버깅 속도가 매우 빠르다
- UI-로직 변화를 바로 확인할 수 있어서 개발 생산성이 높아진다.
❌단점
- 런타임에 코드를 해석·컴파일하기 때문에, 실제 배포용(프로덕션) 빌드에서는 퍼포먼스가 다소 떨어질 수 있다.
- 빌드 파일 크기 등 최적화가 미흡할 수 있다.
결론
개발 단계에서는 JIT를 사용하여 빠른 피드백을 통해 생산성을 늘리고
릴리즈 단계에서는 AOT 컴파일을 사용해 최적화된 네이티브 코드를 배포하여 앱성능을 최대화한다.
'Flutter' 카테고리의 다른 글
| [FLUTTER] 위젯(Widget) (0) | 2025.01.20 |
|---|---|
| [FLUTTER] 플러터의 UI (0) | 2025.01.20 |
| [FLUTTER] 상태(STATE) (0) | 2025.01.20 |
| [Flutter] MaterialApp과 CupertinoApp (0) | 2025.01.13 |
| [FLUTTER] - FLUTTER 설명 (0) | 2025.01.09 |