[Dart] AOT(Ahead-Of-Time) 과 JIT(Just-In-Time) 컴파일러

2024. 1. 10. 12:05·Flutter/Basic Knowledge

Dart 언어는 AOT, JIT 두 가지 컴파일 모드를 지원한다.

 

나는 개인적으로 해당 컴파일 방식이 매우 Cool 하다고 생각함 !

 

이렇게 컴파일러를 분리한 이유는 개발자 친화적인 방식으로 개발 환경의 편의성을 늘려주기 위함에 있는 것 같다 :)

 

내가 Dart 언어를 사용하면서 가장 크게 좋다고 느꼈던 부분 중 하나이기 때문에 내용을 작성해보기로 했다.

 


 

1. JIT (Just-In-Time) 컴파일러:

  • 실행 시간 컴파일:
    • JIT 컴파일러는 애플리케이션이 실행 중일 때 코드를 컴파일한다. 따라서 개발자가 코드를 수정하고 다시 실행할 때 마다 최신 코드로 빠르게 반영된다. (매우 매우 매우 Cool!)
  • 인터프리터와 컴파일러 혼합:
    • 코드를 인터프리터로 빠르게 실행하면서, 동시에 컴파일을 진행하여 최적화된 코드로 전환한다.
  • 빠른 반응성:
    • 개발 시에 코드 수정이 빈번하게 일어나는 상황에서 빠른 반응성이 필요한 경우에 적합하다.


2. AOT (Ahead-Of-Time) 컴파일러:

  • 빌드 시간 컴파일:
    • AOT 컴파일러는 애플리케이션을 실행하기 전에 미리 코드를 컴파일한다. 따라서 애플리케이션이 실행 중일 때는 더 이상 컴파일이 필요하지 않다. (기존 컴파일 방식)
  • 효율적인 실행:
    • AOT로 컴파일된 코드는 빠른 실행 속도를 제공하며, 최적화된 기계어 코드를 생성하여 메모리 사용량을 줄인다.
  • 저전력 장치 및 모바일 환경:
    • AOT 컴파일은 모바일 애플리케이션 및 저전력 장치에서의 성능을 향상시키는 데 도움이 된다.

 

 

Dart에서는 주로 Flutter 프레임워크를 통해 AOT 컴파일러를 사용하여 모바일 애플리케이션을 빌드하고, 개발 단계에서는 JIT 컴파일러를 사용하여 빠른 개발 피드백을 얻을 수 있도록 고안되었다.

 

iOS 개발을 하며 물론 SwiftUI의 Preview도 있지만 Dart만큼 부드럽고 매끄럽게 진행되지 않았기 때문에 Flutter + Dart로 개발을 할 때, 매우매우매우 좋은 개발환경을 경험하였다.

 

실기기 혹은 시뮬레이터(iOS, Android)를 돌릴 때, 바로바로 변경 내용이 보여지는게 신기하여 원리를 찾아보았는데 Flutter & Dart 팀의 개발자 친화적 성향을 엿볼 수 있는 좋은 기회였다고 생각한다.

'Flutter > Basic Knowledge' 카테고리의 다른 글

[Dart] Stream 이란?  (3) 2024.01.22
[Dart] Asynchronous & Future  (3) 2024.01.12
[Dart] 단일 상속과 Mixin  (2) 2024.01.10
[Dart] Garbage Collection 이란?  (6) 2024.01.10
[Dart] Dart 란?  (1) 2024.01.10
'Flutter/Basic Knowledge' 카테고리의 다른 글
  • [Dart] Asynchronous & Future
  • [Dart] 단일 상속과 Mixin
  • [Dart] Garbage Collection 이란?
  • [Dart] Dart 란?
halfcodx
halfcodx
iOS, Flutter Developer
  • halfcodx
    Mins_Programming
    halfcodx
  • 전체
    오늘
    어제
    • 분류 전체보기 (28)
      • My App (1)
        • NostelgiAlbum (0)
        • Ro_ad (1)
        • Growith (0)
      • Retrospect (2)
      • iOS (9)
        • iOS (6)
        • Swift (2)
      • Python (5)
        • Module (3)
        • Knowledge (2)
      • Flutter (10)
        • Basic Knowledge (10)
        • Implementation (0)
  • 블로그 메뉴

    • Home
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    combine
    오블완
    Python
    DART
    ios combine
    requests
    티스토리챌린지
    combine 이란
    Flutter
    파이썬
  • hELLO· Designed By정상우.v4.10.1
halfcodx
[Dart] AOT(Ahead-Of-Time) 과 JIT(Just-In-Time) 컴파일러
상단으로

티스토리툴바