ruinak_4127.log
로그인
ruinak_4127.log
로그인
Dart Compile, Interpreter, JIT
Ruinak
·
2021년 9월 18일
팔로우
0
dart
0
Dart
목록 보기
2/11
Dart
Dart 정보
dart라는 언어는 구글에서 개발한 언어입니다.
2017 ~ 2018년에는 배우지 말아야 할 베스트 1으로 뽑혔었습니다.(엄청나게 인기가 없었음)
Flutter라는 앱개발 UI 툴킷이 나오면서 dart가 엄청나게 인기가 있어졌습니다.
Flutter 앱 개발을 하면 기반 언어가 dart 언어이므로, dart라는 언어만 알면 Flutter로 UI도 만들 수 있고, 프로그램을 구현할 수 있고, IOS와 Android를 한 번에 만들 수 있습니다.
dart 언어는 자바스크립트를 대체하기 위해서 나온 언어입니다.
구글은 크롬 브라우저를 들고 있는데 크롬 브라우저는 V8 Engine으로 구동됩니다.
구글이 어떤 새로운 기능을 자바스크립트로 만들어 보고 싶은데, 새로운 기능이 웹 브라우저에서 구동이 되어야 하는데 크롬에서는 구동이 되더라도, 다른 웹 브라우저(사파리, IE, 파이어폭스 등)에서 구동을 하지 않습니다.
다른 웹 브라우저에서 돌게 하려면 협회의 승인도 받아야하고, 시간도 오래 걸리는 문제점이 있습니다.
위와 같은 이유로 문제가 발생하면 빠르게 갱신하지 못합니다.
퓨시아(Fuchsia) : 구글에서 개발하는 오픈 소스 운영 체제
Dart 테스트
VSCode를 실행시킵니다.
dartwork라는 작업공간을 생성한 후 test1.dart 파일을 만들어줍니다.
dartpad만을 사용하면 코드만 볼 수 있기 때문에 VSCode를 사용하는 것입니다.
Market에서 dart를 검색해서 설치를 해줍니다.
void main() { print("hello World"); }
위 코드를 test1.dart에 적어줍니다.
적은 후 터미널을 열어서 터미널에서 dart test1.dart를 입력해주면 실행이 됩니다.
터미널에서 dart compile을 입력하면 위와 같이 dart compile을 하는 옵션들이 보입니다.
dart compile 방법
JS
터미널에 dart compile js -o test1.js test1.dart 를 입력합니다.
위와 같은 메세지가 출력되고 폴더를 확인해보면 js 파일이 생성된 것을 볼 수 있습니다.
내가 만든 dart 코드를 JavaScript로 만들 수 있는 것입니다.
dart를 개발하면 웹에서도 사용할 수 있다는 것입니다.
aot-snapshot
터미널에 dart compile aot-snapshot test1.dart 를 입력해줍니다.
aot 파일이 생성된 것을 볼 수 있습니다.
내가 만든 dart 코드를 native machine 코드로 만드는 것입니다.
exe
터미널에 dart compile exe test1.dart를 입력해줍니다.
윈도우에서 작동하는 exe 파일을 만들어줍니다.
위 파일을 실행시켜보면 아무 반응이 없습니다.
터미널로 돌아와서 test1을 입력해보면 바로 실행되는 것을 확인할 수 있습니다.
jit-snapshot
터미널에서 dart compile jit-snapshot test1.dart 를 입력해줍니다.
jit 파일이 생성된 것을 볼 수 있습니다.
다시 살펴보면 compile을 진행하면서 바로 실행된 것을 알 수 있습니다.
jit는 Just In Time의 약자로 내 파일을 읽고 바로 실행해버립니다.
Dart 동작 원리
1. Dart는 운영체제에 맞게 컴파일을 할 수 있습니다.
윈도우나 리눅스에서 개발해서 컴파일을 하게 되면 거기서 돌게 컴파일을 할 수 있습니다.
2. AOT(Ahead-Of-Time)를 지원
일반적인 상황
휴대폰이 하나 있는데 IOS일 수도 있고 Android일 수 도 있습니다.
window든 mac에서든 개발을 하고 휴대폰에 넣으려하면 여전히 IOS일 수 도 있고 Android일 수 도 있습니다.
한 줄씩 읽어서 가상머신에서 바꿔야하므로 처리 속도가 매우 느립니다.
AoT 사용
AoT를 사용하면 개발을 한 후 휴대폰에 맞게 미리 compile을 한 후 집어넣을 수 있습니다.
가상머신(VM)을 사용하지 않으므로 속도가 매우 빠릅니다.
실제 개발할 때는 JIT로 개발하는 것이 제일 좋습니다.
React Native(RN)과 Flutter의 차이
flutter는 휴대폰이 있으면 dart 코드를 집어넣고 실행을 시킵니다.
실행을 시키면 skia라는 2D엔진을 통해서 바로 버튼을 그려버립니다.
즉 안드로이드의 도움을 받지 않고 바로 그리므로 엄청나게 빠르게 그립니다.
안드로이드에 맞는 버튼을 찾아서 그리는게 아니므로 빠를 수 밖에 없습니다
Ruinak
Nil Desperandum <절대 절망하지 마라>
팔로우
이전 포스트
Dart 기본 규칙
다음 포스트
Dart 기본 자료형 • 메서드 • 조건문
0개의 댓글
댓글 작성