Dart: Why Dart ?

Juppi·2024년 6월 3일
0

Flutter 개발 일지

목록 보기
4/7
post-thumbnail

구글의 플러터는 왜 다트를 선택했을까 ? 다트의 어떤 점이 다트를 특별하게 만들어주는건지, 다른 언어와 다른 점은 무엇인지 알아보자.

일단 dart도 구글에서 만들었다는 점 ..

Dart에 대해서

공식 홈페이지를 참고하면, Dart는

  1. UI에 최적화되어있고
  2. 개발 생산성이 좋고
  3. 모든 플랫폼에서 빠르다

라고 소개 되어있는데, 왜 그런지 알아보자 !

Fast on all platform

다트는 dart native와 dart web 이라는 두 개의 컴파일러를 가지고 있다.

dart web은 내가 dart로 쓴 코드를 js로 변환시켜주는 컴파일러이다.
dart native는 dart 코드를 여러 CPU 아키텍처에 맞게 변환해준다. 따라서, dart를 사용하면 IOS, Android, Linux, Mac으로 컴파일을 할 수 있다. 또, 더 적은 전력의 아키텍처로 컴파일도 가능하기 때문에, 사물인터넷에서도 사용이 가능하다.

그렇다면 어떻게 컴파일이 되는 걸까?

JIT(just-in-time) and AOT(ahead-of-time)

  • just-in-time
    • dart VM을 사용해서 코드의 결과를 바로 화면에 보여준다.
    • 코드가 VM에서 작동하고 있기 때문에 조금 느릴 수 있다 (during deveolopment)
  • ahead-of-time
    • 컴파일을 먼저하고, 그 결과인 바이너리를 배포한다.
    • 어떤 OS 아키텍처에 배포할 건지 정해야하며, 상대적으로 오래 걸린다.
    • UI를 그릴때는 변경사항이 화면에 바로 반영되어야하기 때문에, 변경사항이 생길때마다 매번 전체 프로젝트를 컴파일해야하는 해당 방식은 적합하지 않다.

코드 개발 중에는 JIT 방식으로 코드 변경사항을 바로 바로 화면에 반영해주고, 개발이 끝나고 배포될 때에는 AOT 방식으로 컴파일해서 빠른 속도의 어플리케이션을 만들 수 있도록 해준다.

모바일 개발 시에는 내 코드에 대한 빠른 반영과 피드백이 필요하기 때문에 위와 같은 컴파일 방식이 매우 중요하다 ! dart가 모바일 개발에 적합한 이유도 위와 같다.

null safety

null safety를 지원하지 않는 다른 언어에서는 개발자가 null을 참조할 때 치명적인 문제가 발생하는데, dart에서는 null safety를 지원해서 안전한 프로그램을 빌드할 수 있다.

해당 글은 노마드 코더의 [Dart 시작하기] 무료 강의를 듣고 정리한 글입니다.
profile
잠자면서 돈버는 그날까지

0개의 댓글