왜 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이 가능한 변수에 식별자를 추가하여 사용합니다.
💻참고
https://dart.dev/overview
https://nomadcoders.co/dart-for-beginners
👇👇 Dart 몰아보기 👇👇
728x90
'Framework > Flutter' 카테고리의 다른 글
[Dart] 함수(Function)와 클래스(Class) (3) | 2024.03.16 |
---|---|
[Dart] 데이터 타입(Data Types)과 연산자(Operators) (22) | 2024.03.15 |
[Dart] 변수 선언 키워드 (0) | 2024.03.14 |