(Flutter-기초 강의) 3. Dart 소개 – 개요, 특징, 키워드

우리가 학습하고 있는 플러터(flutter)프레임워크(Framework)에 해당하고

다트(Dart)는 이 플러터 프레임워크에서 사용하는 구글의 프로그래밍 언어​입니다..

따라서 플러터를 사용하려면 다트를 알아야 사용할 수 있습니다.

프로그램 언어의 특성상 모든걸 다 배우고 가려면 너무 많은 시간이 필요하여, 그때 그때 필요한 것을 학습하며 알아가면 되는데, 그렇더라도 기본적인 이해는 하고 있어야 하기에 기본기를 다지고 가고자 합니다.

개요

다트(Dart)는 구글(Google)이 개발한 프로그래밍 언어로, 멀티 플랫폼에서 앱을 개발하기 위해 디자인된 언어입니다.

2011년 10월에 처음 공개되었으며, C언어의 문법을 기반으로 하되 Java, C#, Javascript와 같은 기능적 Structure를 추가하여 간결하면서도 강력한 기능을 제공합니다.

Dart는 모바일, 데스크톱, 서버, 웹 앱 등 다양한 용도로 사용됩니다. Dart는 Dart VM 상에서 실행되거나 네이티브 컴파일링을 통해 모바일, 데스크톱, 웹 브라우저, 서버 플랫폼에서 애플리케이션 실행을 지원합니다.

플러터(Flutter)라는 구글이 2017년 발표한 Cross Platform Framework는 Dart를 사용하고 있습니다. 현재 최신 안정 버전은 3.0으로, 안드로이드 스튜디오, IntelliJ IDEA, VS Code 등과 같은 IDE에서 Dart 및 Flutter 플러그인을 통해 소프트웨어 디자인 환경을 제공하고 있습니다. (본 강의에서는 VS Code와 Android Studio를 사용합니다.)

경쟁사들인 페이스북, 애플, 모질라 등은 부정적인 입장을 내비쳤지만, Dart는 웹 서버 및 웹 클라이언트 지원을 발표하여 이에 대한 대응을 하고 있습니다. 또한 Dart는 WebAssembly를 지원하여 웹 브라우저에서 바이너리 수준의 지원을 계획하고 있으며, 구글의 차세대 운영체제인 퓨시아(Fuchsia)도 Dart를 지원할 예정입니다.

Dart의 주요 특징

  • main() 함수로 시작
  • 다양한 플랫폼에서 실행 가능
  • 어디서나 변수를 선언하고 사용 가능
  • 모든 변수가 객체 (따라서 모든 객체는 Object class를 상속받는다.)
  • 자료형이 엄격한 언어. (여러자료형을 쓰려면 dynamic을 이용)
  • Null safety 지원
    • 2.0에 추가된 기능으로 컴파일 전에 Null Exception을 알 수 있습니다.

       

Dart의 자료형

  • 숫자: int, double, num
  • 문자열: String
  • 불리언: bool
  • 그 외:
    • var(한번 입력될 때 결정, 변경 불가)
    • dynamic (여려 형으로 변경 가능)

간단한 코드로 소개해보고자 합니다.

아래 예제에서 var타입의 변수에 42를 넣고 출력하니, 42가 출력되는 것을 확인할 수 있다.

예제코드

printInteger(int aNumber) {
  print("The number is $aNumber.");
}

// starting point of the program
main() {
  var number = 42;
  printInteger(number);
}

결과

The number is 42.

Dart 키워드

Keyword설명
abstract추상 클래스나 메서드를 선언하는데 사용됩니다.
as타입 캐스팅에 사용되며, 변수의 타입을 변경하는데 활용됩니다.
assert디버깅 목적으로 조건이 참인지 검사하고, 거짓이면 오류를 발생시킵니다.
async비동기 함수에서 사용되며, 비동기 작업을 수행하는 데 사용됩니다.
awaitasync 함수 안에서만 사용되며, 비동기 작업의 완료를 기다리는데 활용됩니다.
bool불리언 값을 나타내는 자료형입니다. true 또는 false만을 가질 수 있습니다.
break반복문이나 switch 문에서 반복을 중단하고, 다음 코드 블록으로 이동합니다.
caseswitch 문에서 다양한 조건에 따라 실행할 코드를 정의할 때 사용됩니다.
class클래스를 선언하는데 사용되며, 객체 지향 프로그래밍의 기본 단위입니다.
const불변성을 가진 상수 값을 선언하는데 사용됩니다.
continue반복문에서 현재 반복을 중단하고 다음 반복으로 이동합니다.
defaultswitch 문에서 어떤 case에도 해당하지 않을 때 실행할 코드 블록을 정의합니다.
do조건식을 평가하기 전에 루프를 실행하는데 사용됩니다.
double소수점을 가지는 부동 소수점 숫자를 표현하는 자료형입니다.
elseif 문에서 조건이 거짓일 때 실행할 코드 블록을 정의합니다.
enum열거형을 정의하는데 사용되며, 연관된 상수들의 집합을 정의합니다.
extends클래스가 다른 클래스를 확장(상속)할 때 사용됩니다.
factory클래스의 인스턴스를 생성하는 팩토리 메서드를 정의하는데 사용됩니다.
false불리언 자료형의 거짓을 나타내는 값입니다.
final변수에 한 번 할당된 후에는 값을 변경할 수 없음을 나타내는 예약어입니다.
finally예외 처리 구문에서 예외 발생 여부와 상관없이 실행할 코드 블록을 정의합니다.
for반복문에서 사용되며, 조건식에 따라 코드를 반복 실행합니다.
Function함수를 정의하는데 사용되며, 함수형 프로그래밍에서 사용됩니다.
get클래스의 속성을 가져오는데 사용되는 접근자 메서드를 정의합니다.
if조건문에서 조건이 참일 때 실행할 코드 블록을 정의합니다.
implements클래스에서 인터페이스를 구현할 때 사용됩니다.
import외부 라이브러리나 모듈을 현재 파일에 가져오는데 사용됩니다.
in컬렉션에 특정 요소가 존재하는지 검사하는데 사용됩니다.
int정수를 나타내는 자료형입니다.
interface인터페이스를 정의하는데 사용됩니다.
is타입 검사 연산자로, 객체의 타입을 확인하는데 사용됩니다.
late나중에 값을 할당할 수 있는 지연 초기화 변수를 선언하는데 사용됩니다.
library라이브러리를 선언하는데 사용되며, 모듈을 관리하는데 활용됩니다.
mixin다중 상속을 모방하는데 사용되며, 클래스에 기능을 추가하는 데 활용됩니다.
new객체를 생성하는데 사용되며, 클래스의 새로운 인스턴스를 만듭니다.
null값이 존재하지 않음을 나타내는 특별한 값입니다.
on예외를 처리할 타입을 정의하는데 사용됩니다.
operator사용자 정의 연산자를 정의하는데 사용됩니다.
part여러 파일에 걸쳐 있는 라이브러리를 정의할 때 사용됩니다.
rethrow예외를 다시 발생시키는데 사용됩니다.
return함수에서 값을 반환하고, 함수의 실행을 중단하고 반환을 수행합니다.
set클래스의 속성에 값을 할당하는데 사용되는 설정자 메서드를 정의합니다.
showimport 문에서 특정 요소들만 가져오도록 지정하는데 사용됩니다.
static클래스의 정적 멤버(메서드, 변수)를 선언하는데 사용됩니다.
super부모 클래스의 메서드를 호출하는데 사용됩니다.
switch다중 분기 선택문을 정의하는데 사용됩니다.
sync동기 함수를 정의하는데 사용되며, 비동기 작업을 동기적으로 처리합니다.
this현재 객체를 가리키는데 사용됩니다.
throw예외를 발생시키는데 사용됩니다.
true불리언 자료형의 참을 나타내는 값입니다.
try예외 처리를 위한 구문을 정의합니다.
typedef사용자 정의 타입을 정의하는데 사용됩니다.
var한번 입력될 때 결정되는 변수를 선언하는데 사용됩니다.
void함수가 반환하는 값의 타입이 없음을 나타냅니다.
while조건식이 참인 동안에 코드 블록을 반복 실행하는데 사용됩니다.
with클래스에 mixin을 적용하는데 사용됩니다.
yield제너레이터 함수에서 값을 반환하거나 생산하는데 사용됩니다.

Leave a Comment