본문 바로가기

Framework/Flutter

[Dart] 왜 Dart를 사용하나요?

왜 Dart를 사용하나요?

 

 

Dart
Dart

 

왜 Dart를 사용하나요?

Dart Compiler

Dart 컴파일러는 거의 모든 플랫폼에 맞게 컴파일이 가능합니다.

한 언어로 작성한 코드를 여러 플랫폼에서 실행할 수 있도록 컴파일합니다.

  • Dart Web : Dart -> Javascript 변환
  • Dart Native : Dart -> CPU 아키텍처(ARM32, ARM64, X86_64, ...)에 맞게 변환

 

JIT(Just In Time)

개발 진행중에 내가 작성한 코드의 결과가 얼마나 빨리 반영되는지는 엄청 중요한데요. 

Dart VM(가상머신)은 아래의 기능을 포함한 JIT 컴파일러를 지원합니다.

  • hot reload : 재컴파일 향상
  • DevTools : 실시간 구조 확인 
  • 다양한 디버깅 도구 지원

개발이 완료되어 Google Playstore / App Store에 배포할때는 AOT(Ahead Of Time) 컴파일러가 native 로 컴파일합니다.

AOT(Ahead Of Time) JIT(Just In Time)
개발 완료 후 원하는 타입으로 컴파일 > 생성된 바이너리 파일 배포 Dart VM이 코드 결과를 화면에 바로 표시

개발시에 AOT 컴파일한다면 컴파일하고 바이너리파일 실행하고 수정하면 다시 컴파일하고 생성된 바이너리파일을 실행하고... 엄청 느리겠죠😢

 

Null Safety

절대 null이 되지 않는 것을 보장합니다.

로직상 null이 아니여야만 하는 변수가 있는데 null 체크를 안할 경우 개발 단계에서 필터링하지 못하고 런타임시에 Null Exception 에러가 발생하게 되는데요.

Dart에서는 debugger가 코드분석시 해당 부분을 알려주어 non-null이 보장됩니다.

Dart의 변수들은 기본적으로 Null Safety이며, null이 가능한 변수에 식별자를 추가하여 사용합니다.

error
평범하게 멤버변수를 선언했더니 non-nullable 한 멤버변수는 초기화가 필요하다는 에러를 보여줍니다.

 

💻참고
https://dart.dev/overview
https://nomadcoders.co/dart-for-beginners

 

👇👇 Dart 몰아보기 👇👇

 

Dart 시작하기

Dart와 친해지기 [Dart] 왜 Dart를 사용하나요? 왜 Dart를 사용하나요? Dart Compiler Dart 컴파일러는 거의 모든 플랫폼에 맞게 컴파일이 가능합니다. 한 언어로 작성한 코드를 여러 플랫폼에서 실행할 수

devzooo.tistory.com

 

 

728x90