반응형

Dart 란

Dart 란 Google이 개발한 오픈소스 프로그래밍 언어로 2011년에 처음 공개되어 어떤 플랫폼이든 빠른 앱 개발을 위해 클라이언트에 최적화된 언어이다.
많은 프로그래밍 언어들이 존재하는 이유는 제각각 추구하는 방향성이나 목표가 있기 때문인데 다트는 앱 프레임워크를 개발하기 위한 가장 생산적인 프로그래밍 언어를 제공하는 것이 목표이다. 다트가 Flutter 프레임워크 공식 개발언어인 이유도 여기에 있다.
다양하게 활용이 가능하지만 대부분 Flutter 를 개발하기 위해 사용한다.

Dart 언어 특징

다트는 주로 Java 와 많이 비교되고 비슷한 점이 많다.

  • 정적 타입 언어지만 타입 추론도 지원
  • JIT(Just-In-Time)와 AOT(Ahead-Of-Time) 컴파일 모두 지원
  • 멀티 플랫폼 지원 (웹, 모바일, 데스크톱)

정적 타입 언어란
정적 타입 언어란 변수의 타입이 컴파일 시점에 결정되는 언어로 한번 선언된 변수의 타입은 변경이 불가능하다.

JIT(Just-In-Time) 컴파일이란
실행 시점에 컴파일하는 것으로 핫 리로드(Hot Reload)가 가능하여 개발 환경에서 주로 사용된다. 대신 메모리 사용량이 많다.

AOT(Ahead-Of-Time) 컴파일이란
실행 전에 미리 컴파일하는 것으로 주로 프로덕션 환경에서 사용된다.

기본 문법

기본 구조

다트도 자바와 마찬가지로 void main() { ... } 처럼 최상위 레벨에 main 함수가 필요하다.

void main() {
    print('Hello, World!');
}

변수 선언

다트도 기본적으로 다른 언어들과 비슷하게 타입 + 변수 명 = 변수 값 으로 구성된다.
var 를 통해 타입 추론이 가능하며 명시적으로 타입을 선언해 줄 수도 있다.
타입뒤에 ? 을 붙여 Null Safety 을 적용할 수 있다. 만약 non-nullable 이면서 변수 초기화를 미루고 싶다면 타입 앞에 late 키워드를 붙여주면 된다.
상수는 finalconst 사용이 가능한데 final 은 런타임 시점에 값이 결정되고 const 는 컴파일 시점에 값이 결정된다.

var name = 'Noah';

String? nullaleName = null;

late String lateName;
lateName = 'Noah';

타입

타입뿐만 아니라 전체적인 문법들이 거의 자바와 비슷하다.
타입은 int, double, num(int, 와 double 모두 포함), String, bool, List, Set, Map 등이 있다.

연산자

기본적인 연산자 모두 사용 가능하고 삼항 연산자도 사용이 가능하다.
타입의 경우 as 로 타입 캐스트를 하거나 is 로 타입 확인이 가능하다.
값비교는 == 로 모두 가능하지만 객체를 비교할 때는 identical(str1, str2) 형태로 사용해야 한다.


반응형

+ Recent posts