플러터를 배우기 전에 Dart 기초를 배우고 시작해야된다고 하여 Dart기초 강의를 노마드 코더로 수강하였다. 이 글은 강의를 들으며 복기를 위한 목적으로 작성하였다.
Dart시작하기-노마드코더
(1) just-in-time 컴파일과 ahead-of-time 컴파일이 둘 다 있기 때문.
(2) dart와 flutter는 둘 다 구글이 만들었기 때문, 즉 구글은 flutter를 위해서 dart를 최적화할 수 있음. django를 빨리 작동하게하려고 python을 수정할 수 없고 react를 빨리 만들고 싶다고 해서 Javascript를 수정할 수 없다. 하지만 구글은 dart언어를 수정해서 flutter를 더 빠르게 만들 수 있다.
Dart로 쓴 언어를 Javascript로 변환해주는 컴파일러
Dart로 쓴 언어를 여러 CPU의 아키텍쳐에 맞게 변환해주는 컴파일러
IOS, Android, Windows, Linux, Mac으로 컴파일이 가능
just-in-time, dart VM을 사용하는 컴파일러고 내가 쓴 코드의 결과를 바로 화면에 보여줌. 개발중에는 dart 가상 머신이 JIT 컴파일러를 제공함
ahead-of-time, 예를 들어 C, C++, Rust, GO로 코딩을 하고 컴파일 할 때 아키텍쳐를 지정해줘야 함. 가령, C++ 프로그램을 완성했을 때 windows에 배포하고 싶으면 windows 바이너리로 컴파일 해줘야함. 바이너리는 기계어를 뜻함. 컴파일을 먼저하고 그 결과인 바이너리를 배포하는 것이 AOT.
즉 용도에 따라 컴파일러가 두 개로 나뉘어져 있기에 훨씬 효율적으로 개발을 할 수 있음.
JIT컴파일러는 개발 과정에서 사용하고 가상머신이 돌아가는 것이기 때문에 앱의 속도는 느리지만 코드결과를 바로 확인할 수 있고,
AOT컴파일러는 배포 과정에서 사용하고 기계어로 변환하기 때문에 컴파일 과정은 느리지만 가동되는 앱의 속도는 빠르다.