본문 바로가기
CS/BackEnd

코드팩토리의 플러터 프로그래밍

by Diligejy 2023. 1. 8.

 

 

p.40~41

다트의 장점

- 다트는 UI를 제작하는 데 최적화되어 있습니다. 완전한 비동기 언어이며 이벤트 기반입니다. 그리고 Isolate를 이용한 동시성 기능도 제공해줍니다.

- Null Safety, Spread Operator, COllection if 등 효율적으로 UI를 코딩할 수 있는 기능을 제공해줍니다.

- 효율적인 개발 환경을 제공해줍니다. 핫 리로딩을 통해 코드의 변경 사항을 즉시 화면에 반영해볼 수 있습니다.

- 멀티 플랫폼에서 로깅하고, 디버깅하고, 실행할 수 있습니다.

- AOT 컴파일이 가능하기 때문에 어떤 플랫폼에서든 빠른 속도를 자랑합니다.

- 자바스크립트로의 완전한 컴파일을 지원합니다.

- 백엔드 프로그래밍을 지원합니다.

 

p.45

var 타입은 변수의 값을 사용해서 변수의 타입을 유추하는 키워드입니다. 타입을 한 번 유추하면 추론된 타입은 고정됩니다. 따라서 고정된 변수 타입과 다른 변수 타입의 값을 같은 변수에 다시 저장하려 들면 에러가 납니다. 하지만 dynamic 키워드를 사용하면 변수의 타입이 고정되지 않아서 다른 타입의 값을 저장할 수 있습니다. 

 

p.46

final은 런타임, const는 빌드타임 상수입니다. 구체적인 차이점을 현재 시간을 가져오는 DateTime.now() 함수를 이용해 알아보겠습니다. DateTime.now()함수는 DateTime.now()함수가 실행되는 순간의 날짜 및 시간을 제공해줍니다. 다시 말해서 런타임, 즉 실행을 해봐야 값을 알 수 있다는 뜻입니다.

 

void main() {
	final DateTime now = DateTime.now();
    print(now);
}

 

final 키워드를 사용했으니 now값이 한 번 저장되면 추후 변경할 수 없습니다. 

 

반면에 const를 사용하면 에러가 납니다. const로 지정한 변수는 빌드타임에 값을 알 수 있어야 하는데, DateTime.now()함수는 런타임에 반환되는 값을 알 수 있기 때문입니다.

 

void main() {
	// 에러
    const DateTime now = DateTime.now();
    print(now);
}

코드를 실행하지 않은 상태에서 값이 확정되면 const를, 실행될 때 확정되면 final을 사용해주세요. 

댓글