일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- pug
- HTML
- GRID
- 리액트
- CSS
- heroku
- CLONE
- node.js
- DART
- ECMAScript
- JavaScript
- ES6
- express
- NextJs
- Session
- clonecoding
- form
- graphQL
- Flutter
- javscript
- 자바스크립트
- TypeScript
- react
- nodejs
- frontend
- backend
- API
- MongoDB
- Component
- Mongoose
- Today
- Total
Enjoy Programming
[Dart] what is dart? 다트가 뭐야? 본문
드디어 시간을 내어 flutter를 공부하기로 한다.
근데 flutter는 javascript가 아닌 dart라는 구글이 만든 언어로 개발을 해야한다.
Dart programming language
Dart is a client-optimized language for fast apps on any platform
dart.dev
특징을 살펴보면 다트는 두개의 컴파일러를 가지고 있다 (두개?!)
먼저 dart web - dart로 쓴 언어를 자바스크립트로 변환해주는 컴파일러와 dart native - 각 cpu아키테처에 맞게 기기에 맞춰서 변환해주는 컴파일러 이렇게 두개이다.
dart native는 just-in-time and ahead-of-time 방식의 compile을 지원한다.
ahead-of-time 방식은 c , c++, go 등등 언어로 로 코드를 작성하고서 컴파일할 때 아키텍쳐를 지정해줘야 한다.
컴파일을 먼저하고 그 결과인 바이너리를 배포하는 것. 이 방식은 개발단계에서 매우 느리다.
이유는 수정 -> 확인이 이루어 지거나 추가가 이루어질때 처음부터 전부 다시 컴파일 되어야 하기 때문이다.
생각해보자 react를 개발하면서 hot-reloading이 지원되지 않는다면.. 얼마나 불편할 것인가...
이때 필요한 것이 just-in-time 컴파일이다. 그래서 개발 중에도 개발주기에 빠른 순회가 이루어지도록 hot reloading과 rich debugging을 지원한다고 한다.
그러니 이거다 개발단계에서는 just-in-time q배포단계에서는 ahead-of-time 인 것이다.
그리고 다른 특징중에는 null safety라는 것이 있다.
null safety는 안전한 프로그램을 빌드할 때 아주 중요하다.
상기의 이유로 flutter는 dart를 채택했다. 그리고 결정적으로 둘다 구글에서 맹글었다.
엄청난 장점이 될 수 있는게 react 팀이 javascript를 react에 맞춰서 수정을 할 수는 없다.
하지만 dart는 flutter에 맞춰 수정 및 업데이트가 가능하다는 것이다. 공식 문서에도 dart는 기존에 ahead-of-time방식의 컴파일을 제공하지 않았다. 하지만 flutter에 맞춰서 차 후 해당 compiler를 제공해 준 것이다.
이 얼마나 유연한 상관관계인가... 아무튼 이제 배워보도록 하자.
'Dart' 카테고리의 다른 글
[Dart] Mixins (0) | 2023.01.31 |
---|---|
[Dart] Class (0) | 2023.01.19 |
[Dart] Function (0) | 2023.01.01 |
[Dart] variables (0) | 2023.01.01 |
[Dart] data type (0) | 2023.01.01 |