hot reload
를 사용해서 개발 생산성을 높일 수 있음Tip! JIT 와 AOT 컴파일러
- JIT ( Just-In-Time )
- 방식
- 브라우저에서 파일들을 다운로드 한 뒤에 한번 컴파일해서 브라우저 엔진이 실행할 수 있는 저수준 언어로 바꿔준 후 화면을 렌더링 하는 방식
- 실행 시점에 바이트코드를 기계어로 번역
- 특징
- 실행속도가 상대적으로 느림
- 앱 설치 속도 ∙ 설치 용량 등이 AOT에 비해 빠르고 적게 차지
- 브라우저에서 여러 에러들을 발생시키고 확인할 수 있으며 디버깅이 가능
- CPU 사용이 AOT 에 비해 높음
- AOT (Ahead-Of-Time )
- 방식
- 소스 코드를 미리 컴파일하는 방식을 의미
- 설치 시점에 기계어로 번역
- 특징
- 미리 컴파일을 해놓기 때문에 속도가 상대적으로 빠름
- 미리 컴파일을 해놓기 때문에 설치 속도나 설치 용량이 큰 편
- CPU 사용이 JIT 에 비해 낮음
# main.dart
import 'package:dartEx01/dartExo1.dart' as dartEx01;
// Def a function
add(int a, int b) {
return a + b;
}
// This is where the app starts executing
main() {
var numberA = 10; // Declare and initialize a variable
var numberB = 25; // Declare and initialize a variable
var result = add(numberA, numberB); // Call a function
dartEx01.printResult(result);
}
import
: 패키지 내의 라이브러리를 사용하고자 할 때 라이브러리를 가져오기 위해 사용//
를 사용main()
함수: 앱 실행을 시작하는 최상위 함수main()
를 포함하는 ) 파일을 실행하기 위한 다트의 엔트리 포인트를 포함var
이라는 키워드를 사용var
는 특정 타입을 지정하지 않은 형태로 해당 변수가 참조하는 타입에 따라 결정add()
함수를 호출하고 리턴 값을 result 변수가 참조# dartEx01.dart
printResult(int aNumber) {
print('The number is $aNumber.'); // Print to console
}
'내용'
이나 "내용"
처럼 작은 따옴표나 큰 따옴표 모두 사용 가능$변수
로 사용"내용 $변수명"
으로 사용하면 됨"내용 ${표현식}"
을 사용하면 됨print('The number is ${aNumber + 10};
int number = 10;
으로 명시적으로 타입을 지정하지 않고 var number = 10;
으로 사용 가능하다는 의미dynamic
키워드를 사용var
키워드와 비교해보면 좀 더 이해하기 쉬움var
은 아래와 같이 String 타입으로 지정된 후에는 int 타입을 참조할 수 없음# 예시 1
var name = "Kim";
name = 100;
------------------------------------------------------------------------------------------
# 결과
Error: A value of type 'int' can't be assigned to a variable of type 'String'.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
# 예시 2
dynamic name = "Kim";
name = 100;
main()
과 같은 최상위 함수를 지원pubic
∙ protected
∙ privated
키워드가 없음private
하려면 식별자 앞에 밑줄 ( _
) 을 붙임