🤭 Dart는 객체지향 언어이다
- 객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어이다.
- 특징 4가지
- 캡슐화 : 데이터와 알고리즘을 하나로 묶어 하나의 캡슐처럼 만드는 것. 데이터와 코드 형태를 외부에서 알 수 없다.
- 상속 : 상위 클래스의 모든 것을 하위 클래스가 이어 받는다.
- 다형성 : 하나의 객체가 다른 여러 객체로 재구성 되는 것이다. 자바의 오버로드, 오버라이드 다형성이 이 다형성이다.
- 추상화 : 실존하는 객체의 여러 특성 중, 프로그램을 만드는데 필요한 부분만 파악해 추출하고 필요 없는 것은 제거하는 것이다.
- 장단점
- 재사용성 : 상속이 가능하기 때문에 코드를 재사용 할 수 있다.
- 생산성 증가 : 독립된 객체로 이루어져 있기 때문에 유지 및 보수 용이하다.
- 자연스러운 모델링
- 느린 개발 속도 : 모든 객체의 역할과 기능을 이해해야 하기 때문에 프로그래밍에 많은 시간이 소요된다.
- 느린 실행 속도 : 처리 속도는 절차지향언어보다 느리다.
- 높은 난이도 : 대체로 난이도가 높다 특히 다중 상속 지원되는 ç++...
🤭 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 |