노마드 코더님의 무료강의를 듣고 개인 정리용으로 작성
Dart의 특징
- 객체지향 언어이다
- User interface에 친화적이라 빠르다
- UI에 최적화 되어있다
- 생산적인 개발환경, 모든 플랫폼에서 빠름
- Null safety
Dart의 Null safety 방식
- Dart, flutter 모두 구글에서 제작된 언어로 상호적임. dart를 수정해서 flutter를 빠르게 만들 수 있음
Dart compile
Dart엔 dart web, dart native라는 두개의 컴파일러가 존재.
- dart web: dart로 쓴 코드를 javascript로 변환해주는 컴파일러
- dart native: 내가 쓴 dart 코드를 여러 cpu 구조에 맞게 변환
컴파일 방식
- JIT(just in time)방식과 AOT(ahead of time) 방식이 존재
- AOT방식 : C, C++, Rust와 같은 언어로 코딩을 하고 난 후 컴파일 할 때 아키텍쳐를 지정해줘야 함. 시간이 오래 걸림. UI제작이나 개발모드엔 비추천(변경한 것에 대한 결과물 확인하려면 처음부터 전체를 컴파일 하기 때문) 우리가 쓴 코드를 컴파일 하고 binary로 변환. 앱에서 빠르게 사용 가능
- JIT방식 : dart VM사용. 작성한 코드의 결과를 바로 화면에 보여줌. (빠른 피드백) 개발 중일때는 dart VM이 JIT 컴파일러를 제공함. 모든 프로그래밍을 끝내고 배포시에는 dart VM이 아닌 AOT컴파일러 사용.
이 방식은 가상 머신에서 코드가 돌아가기 때문에 조금 느리다.
- 즉 JIT로 컴파일 하다 프로그래밍이 완료된 시점에는 AOT로 컴파일 (개발중 빠른 피드백 -> 최종 앱에서 빠르게)
좋은 글이네요. 공유해주셔서 감사합니다.