반응형
Flutter 공부 전에 Flutter 사용 언어인 Dart를 먼저 공부하였다. 먼저 Dart의 기본 지식에 대해 설명하도록 하겠다.
추가적으로 Dart 실행기를 통해 쉽게 Dart를 실행 시킬 수 있다.
DartPad
dartpad.dev
참고 강좌
Dart 시작하기 – 노마드 코더 Nomad Coders
Flutter 앱 개발을 위한 Dart 배우기
nomadcoders.co
dart
- UI 최적화
- 생산적인 개발활
- 모든 플랫폼에서 빠름
dart는 두개의 컴파일러 존재
dart web : 개발자가 dart로 쓴 코드를 javascirpt 로 변환해주는 컴파일러
dart native : dart 코드를 여러 CPU의 아키텍쳐에 맞게 변환해주는 컴파일러
⇒ IOS, Window, Linux, Mac 어디에서든 사요할 수 있는 이유
몇가지 Dart 기본 지식 소개
JIT(just-in-time) : dart VM을 사용
Dart의 컴파일 방식 → JIT
- 풍부한 디버깅 지원
- 개발자가 쓴 코드를 바로 확인(UI로 볼 수) 있음
- 대신 코드가 가상머신에서 작동하고 있어 좀 느림(오직 개발 중에서만 쓰임)
- 앱 배포를 할 때는 dartVM을 사용 X ⇒ 이 때는 AOT 사용
자바에서 JIT 컴파일링 기법
실행하는 도중 자바 프로그램을 해당 CPU의 기계어 코드로 컴파일하고 CPU가 바로 기계어를 실행 하도록 하는 컴파일링 기법
AOT(ahead-of-time) : 코딩을 다하 난 후 컴파일 할 때 아키텍처를 선택해줘야 함
C++ 작성함 ⇒ 윈도우로 배포하고 싶으면 ⇒ 코드를 Window 바이너리로 컴파일 해줘야 함
⇒ 해당 바이너리를 제공 (C컴파일러는 코드를 기계어로 컴파일 해주고 사람들이 이를 실행할 수 있도록 제공)
- 바이너리 == 기계어
- 컴파일을 먼저하고, 그 결과인 바이너리 배포하는 방식
⇒ 이렇게 하나씩 컴파일 하는 것은 시간이 오래 걸림
why? 컴파일러는 아주 많은 최적화를 해야하고, 너의 코드를 기계어로 바꿔야하는 등 할 일이 많음 - 즉, 너가 작은 수정을 한번 할 때마다 오랜 시간이 걸리는 컴파일을 해줘야지 실행을 할 수 있는 문제가 발생
ex) C, C++, Rust, Go
null safety
- 안전한 프로그램을 빌드 할 때 중요
- 개발자가 null 값을 참조하면 문제가 생기므로 이를 사용해 프로그램을 더 안전하게 해줌
flutter가 dart를 사용하는 이유
- JIT, AOF 컴파일러 둘다 있기 때문 (모바일 개발에 아주 좋은 언어)
- dart, flutter 둘 다 구글 꺼 → 내가 불편하면 바꾸면 됌
- ex) flutter : AOF 컴파일러가 있으면 더 좋을 것 같아 dart 언어로 할 수 있게 해줘 dart: OK
dart = 객체지향 언어
flutter = 객체지향프레임워크 (항상 class 사용)
반응형
'프로그래밍 언어 > Flutter' 카테고리의 다른 글
[Flutter] 1. flutter란? (1) | 2023.12.26 |
---|---|
[Dart] 4. Class (0) | 2023.12.26 |
[Dart] 3. Function (0) | 2023.12.26 |
[Dart] 2. 데이터 타입 (0) | 2023.12.26 |
[Dart] 1. Dart 해보기 (0) | 2023.12.26 |