Dart란?

juhno1023·2024년 7월 4일
0
post-thumbnail

Dart는 구글이 크로스 플랫폼 프로그래밍 언어를 목표로 디자인한 멀티 플랫폼 프로그래밍 언어이다. 아래 특징을 통해 빠른 피드백 & 컴파일을 진행 할 수 있다.

Dart에는 두개의 컴파일러가 있다.

1. Dart Web - Dart로 작성한 코드를 javascript로 변환하는 컴파일러
2. Dart Native - Dart 코드를 여러 CPU의 아키텍쳐에 맞게 변환하는 컴파일러


특징

1. AOT(ahead-of-time)

코드 작성 후 컴파일 과정에서 아키텍쳐를 지정 / 컴파일 후 그 결과인 바이너리를 배포. 수정 사항이 있는 경우 전체 프로젝트를 컴파일 해야한다.
-> 개발 과정에서는 비효율적 (JIT을 사용하는 이유).

하지만 빠르게 기계어, 컴파일된 바이너리를 다양한 아키텍처를 위해 만들 수 있다.
(원래 Dart에는 AOT 툴체인이 없었지만, 이후에 flutter를 위해 추가하였다고 한다.)

2. JIT(just-in-time)

Dart VM을 사용하여 코드의 결과를 바로 보여줌. 개발 과정에서 VM 위에서 작동하는 JIT 컴파일러를 사용하기에 약간 느리지만 코드 작성 결과를 바로 볼 수 있다. 프로젝트 완성 후 배포를 하는 과정에서는 Dart VM 대신 AOT 컴파일러를 사용한다.

3. Null Safety

개발자가 null 값을 참조할 수 없도록 한다. null 값을 참조하면 런타임 에러가 발생하는 문제점을 컴파일 이전에 없애 안전한 프로그램을 작성하기 위한 중요한 특징. Dart에서는 아래와 같이 null 값이 들어갈 수 있다는 것을 명시 해주어야한다.

String? name = 'John' // ? 가 없는 경우 null이 절대 들어갈 수 없다.

1, 2번 특징을 통해 코드 작성 과정에서는 JIT를 통해 작성 후 바로 결과를 확인 할 수 있으며, 이후 배포를 위해 AOT를 통해서 여러 아키텍처로 빠르게 빌드할 수 있다.

Dart 언어 공부는 아래 온라인 컴파일러를 통해 진행 할 수 있다.
https://dartpad.dev/

0개의 댓글