코딩항해기

[Flutter] Dart 기초 본문

Front/Flutter

[Flutter] Dart 기초

miniBcake 2025. 5. 21. 11:31

 

 

다트 Dart

구글이 멀티 플랫폼 상에서 동작되도록 하는 앱을 위해 디자인된 객체지향 프로그래밍 언어이다. 2011년 10월 공개되었으며, C언어와 유사한 문법을 가지고 있고, Java, C#, JS와 같은 기능적 스트럭쳐를 추가한 언어라서 간결하고 강력한 기능을 지원한다. 

Dart는 DVM(Dart VM)상에서 동작하거나 네이티브 컴파일링을 통해 모바일, 데스크톱, 웹 브라우저, 서버 플랫폼 상에서 어플리케이션 실행을 지원한다. 구글에서 2017년 발표한 크로스플랫폼 앱 프레임워크인 Flutter가 사용하는 언어이다.

 

Android Studio, Intellij, VS Code 등에서 사용할 수 있다. (IDE)

 

Dart 자료형

기본 자료형
int 정수형 42, -1, 0
double 부동 소수점 3.14, -0.5, 1.0
num int와 double의 상위 타입 int 또는 double 값 가능
bool 불리언 true, false
String 문자열 '안녕', "Dart"
컬렉션 자료형
List 순서가 있는 객체 집합 [1, 2, 3], <String>['a', 'b']
Set 중복이 없는 객체 집합 {1, 2, 3}, <String>{'a', 'b'}
Map 키-값 쌍의 컬렉션 {'key': 'value'}, <String, int>{'a': 1}
특수 자료형
dynamic 모든 타입 허용 어떤 타입도 할당 가능
var 타입 추론 초기값에 따라 타입 결정
final 한 번만 할당 가능 final name = 'Dart'
const 컴파일 타임 상수 const pi = 3.14
Object 모든 클래스의 기본 클래스 모든 객체의 상위 타입
Null null 값만 가질 수 있음 null
기타
Runes 유니코드 문자열 '😀'.runes
Symbol 심볼 식별자 #name
Enum 열거형 enum Color { red, green, blue }
Future 비동기 작업의 결과 Future<String>
Stream 비동기 데이터 시퀀스 Stream<int>
Function 함수 타입 void Function(String)

 

기본 함수 구조

반환타입 함수이름(매개변수) { //매개변수 타입 생략 가능(명시하는 것이 좋음)
  // 함수 내용
  return 반환값; // 반환값이 있는 경우
}

 

var와 dynamic 차이

// [불가] - 문자 타입의 var 에 1 을 집어넣지 못함
var userName = 'aeco';
userName = 1;

// [가능] - 문자 타입의 dynamic 에 1 을 넣어 숫자 타입으로 변경 됨
dynamic userName = 'aeco';
userName = 1

 

final, const 차이

final String userName1 = 'aeco'; //런타임 때 생성
const String userName2 - 'aeco'; //컴파일 때 생성

 

물음표 연산자

// 타입 뒤에 ?를 명시해서 null값을 가질 수 있음
double? number1 = null;

// 타입 뒤에 ?를 명시하지 않아 에러가 남
double number2 = null;

double? number;   // 자동으로 null값 지정
print(number);

number ??= 3;   // ??를 사용하면 기존 값이 null일 때만 저장
print(number);

number ??= 4; // null이 아니기 때문에 기존 3이 그대로 유지
print(number);

 

 

 

 

https://mjn5027.tistory.com/115