본문 바로가기

프로그래밍 언어/Flutter

[Dart] 0. Dart 기본 지식

반응형

 

Flutter 공부 전에 Flutter 사용 언어인 Dart를 먼저 공부하였다. 먼저 Dart의 기본 지식에 대해 설명하도록 하겠다.

 

추가적으로 Dart 실행기를 통해 쉽게 Dart를 실행 시킬 수 있다.

https://dartpad.dev/

 

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를 사용하는 이유

 

  1. JIT, AOF 컴파일러 둘다 있기 때문 (모바일 개발에 아주 좋은 언어)
  2. dart, flutter 둘 다 구글 꺼 → 내가 불편하면 바꾸면 됌
  3. 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