본문 바로가기
기초다지기/Flutter&Dart

Dart를 알아보자

by 김빵그 2023. 4. 3.

 

🤭 Dart는 객체지향 언어이다

 

- 객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어이다.

 

- 특징 4가지

  • 캡슐화 : 데이터와 알고리즘을 하나로 묶어 하나의 캡슐처럼 만드는 것. 데이터와 코드 형태를 외부에서 알 수 없다.
  • 상속 : 상위 클래스의 모든 것을 하위 클래스가 이어 받는다. 
  • 다형성 : 하나의 객체가 다른 여러 객체로 재구성 되는 것이다. 자바의 오버로드, 오버라이드  다형성이 이 다형성이다.
  • 추상화 : 실존하는 객체의 여러 특성 중, 프로그램을 만드는데 필요한 부분만 파악해 추출하고 필요 없는 것은 제거하는 것이다.

 

- 장단점

  1. 재사용성 : 상속이 가능하기 때문에 코드를 재사용 할 수 있다.
  2. 생산성 증가 : 독립된 객체로 이루어져 있기 때문에 유지 및 보수 용이하다.
  3. 자연스러운 모델링 

  1. 느린 개발 속도 : 모든 객체의 역할과 기능을 이해해야 하기 때문에 프로그래밍에 많은 시간이 소요된다.
  2. 느린 실행 속도 : 처리 속도는 절차지향언어보다 느리다.
  3. 높은 난이도 : 대체로 난이도가 높다 특히 다중 상속 지원되는 ç++...

 

 

🤭 Dart는 모든 플랫폼에서 빠른 앱을 개발하기 위한 클라이언트 최적화 언어이다

 

Dart는 두 개의 컴파일러를 가지고 있다.

1. Dart Web : dart로 쓴 코드를 js로 변환해주는 컴파일러

 

- JIT (just-in-time) : Dart VM을 사용하여 작성한 코드의 결과를 바로 화면에 보여줌 가상머신 사용으로 속도는 느리다

- AOT(ahead-of-time): 컴파일을 먼저하고 그 결과인 바이너리를 배포

 

2. Dart Native : dart 코드를 여러 CPU의 아키텍쳐에 맞게 변환

 

🤭 Null Safety 

 

- 안전한 프로그램을 빌드할 때 아주 중요하다

 


🤭 결과! 그래서 Flutter는 왜 Dart 언어를 사용하냐?

1. JIT, AOT 컴파일 둘 다 있기 때문 : 빠른 피드백을 원하면서도 최종 앱은 컴파일되어 빨라야한다

2. 둘 다 구글이 만들었기 떄문 : 구글은 flutter를 위해 dart를 최적화 할 수 있다 (예)AOT)

 

 

https://dart.dev/overview

 

 

'기초다지기 > Flutter&Dart' 카테고리의 다른 글

Dart Class  (0) 2023.04.06
Flutter / Dart 빌드  (0) 2023.04.05
Dart functions  (1) 2023.04.05
Dart Data types  (0) 2023.04.04
vscode에서 dart 자동 줄정렬이 안 될 때  (1) 2023.03.29