Dart
Dart는 구글이 개발한 프로그래밍 언어로 Flutter 프레임워크와 함께 모바일, 웹, 데스크탑 애플리케이션 개발에 널리 사용된다. (이러한 특징 때문에 Android/ios 를 동시에 개발하기 위해 Dart 공부를 시작했다!) 이것 외에도 다른 특징들이 있으니 알아보자.
- JIT (Just-in-Time) & AOT (Ahead-of-Time) 컴파일
- Null Safety
- flutter & Dart 모두 구글에서 개발
JIT (Just-in-Time) & AOT (Ahead-of-Time) 컴파일
먼저 Dart 는 두 가지 컴파일 방식을 가지고 있다
AOT 방식은 우리에게 익숙한 방식으로 컴파일을 먼저 하고 그 결과인 바이너리를 배포하는 방식이다. 언어로 예를 들면 C/C++ 가 있다. UI 작업을 진행할 때 버튼이나 메뉴 등을 바꾸기 위해 코드를 수정하고 매번 전체 프로젝트의 컴파일을 진행하는 방식은 비효율적이다.
따라서 이 지점에서 필요한 컴파일 방식은 JIT(Just-in-Time) 컴파일이다. JIT 컴파일러는 Dart VM 을 사용하는데 개발자가 코드를 작성하는 동시에 결과를 바로 화면에 보여 준다. 해당 방법은 개발자의 코드가 가상 머신 (Virtual Machine) 에서 작동하고 있기 때문에 속도 측면에서 조금 느릴 수 있다.
하지만 이 방식은 개발 모드일 때만 사용된다. flutter 로 앱 개발을 완성하고 배포하게 된다면 더이상 Dart VM 을 사용하지 않고 AOT 컴파일러를 통해 native ARM 이나 x64 기계어로 컴파일한다. 그럼 가상 머신을 사용하는 JIT 방식보다 속도 측면에선 훨씬 빠르게 된다.
결과적으로 Dart 는 개발을 할 때에도 배포를 할 때에도 모두 좋다는 특징을 가지고 있다.
Null Safety
null safety는 개발자가 안전한 프로그램을 빌드하기 위해 매우 중요한 역할을 한다. Java, C++ 등 많은 프로그래밍 언어는 개발자가 null 값을 참조하게 되면 모든 게 고장나기 때문에 이를 방지하기 위해 필요하다.
- null safety 와 nullable 변수에 관한 글
https://dotgaejin.tistory.com/42
flutter & Dart 모두 구글에서 개발
flutter 와 dart 모두 구글에서 개발했다는 점이 dart 의 특징이다. 이에 대해 주목하는 이유는 다음과 같다. flutter 가 언어에 대해 필요한 것들이 생기면 dart 는 flutter 를 위해 언어를 수정할 수 있다는 점에서 다른 프레임워크들과 큰 차이점을 가진다. 구글은 flutter 에서 최적화하고 싶은 부분이 생기면 flutter 가 사용하는 언어인 dart 를 최적화 해 줄 수 있기 때문에 매우 큰 이점을 가진다.
이처럼 Dart 의 특징을 알아보았고 Dart 의 특징이 장점과 연결되기도 하기 때문에 왜 flutter 를 선택해야 하는지에 대해서도 알 수 있는 기회였다. 계속 파이팅!
'Dart' 카테고리의 다른 글
(Dart) QQ Operator 와 Typedef (0) | 2024.10.16 |
---|---|
(Dart) Named Parameters (0) | 2024.10.16 |
(Dart) final, late, const 키워드를 사용하여 변수 생성하기 (0) | 2024.10.06 |
(Dart) null safety 와 nullable 변수 (0) | 2024.10.06 |
(Dart) var, dynamic 키워드 (0) | 2024.10.06 |