Dart

(Dart) Dart의 특징에 대해 알아보자

돗개진 2024. 10. 7. 08:13

 

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

 

(Dart) null safety 와 nullable 변수

이번엔 Dart 언어의 특징인 null safety 에 대해서 알아보도록 하자. kotlin 에서도 마찬가지로 개발자가 null 을 참조하는 것을 막아주는 기능을 제공하는데 해당 기능은 매우 중요하다. 왜냐하면 null

dotgaejin.tistory.com

 


flutter & Dart 모두 구글에서 개발

flutter 와 dart 모두 구글에서 개발했다는 점이 dart 의 특징이다. 이에 대해 주목하는 이유는 다음과 같다. flutter 가 언어에 대해 필요한 것들이 생기면 dart 는 flutter 를 위해 언어를 수정할 수 있다는 점에서 다른 프레임워크들과 큰 차이점을 가진다. 구글은 flutter 에서 최적화하고 싶은 부분이 생기면 flutter 가 사용하는 언어인 dart 를 최적화 해 줄 수 있기 때문에 매우 큰 이점을 가진다.

 


이처럼 Dart 의 특징을 알아보았고 Dart 의 특징이 장점과 연결되기도 하기 때문에 왜 flutter 를 선택해야 하는지에 대해서도 알 수 있는 기회였다. 계속 파이팅!