일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- backend
- 자바스크립트
- Component
- Mongoose
- JavaScript
- HTML
- 리액트
- frontend
- pug
- graphQL
- GRID
- DART
- ECMAScript
- CSS
- heroku
- API
- ES6
- MongoDB
- TypeScript
- CLONE
- nodejs
- NextJs
- node.js
- form
- express
- Session
- clonecoding
- react
- Flutter
- javscript
- Today
- Total
Enjoy Programming
[Dart] what is dart? 다트가 뭐야? 본문
드디어 시간을 내어 flutter를 공부하기로 한다.
근데 flutter는 javascript가 아닌 dart라는 구글이 만든 언어로 개발을 해야한다.
특징을 살펴보면 다트는 두개의 컴파일러를 가지고 있다 (두개?!)
먼저 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 |