본문 바로가기

Hello App/Dart

Dart_특징, 기초 예제

20230510

 

 


 

Dart

 

Dart는 2011년 구글에서 발표한

모든 플랫폼에서 빠른 앱을 개발하기 위해

클라이언트에 최적화된 언어이다.

 

Dart의 언어 설계는 클라이언트 개발에 적합하게 개발되었으며,

 

다중 플랫폼(웹, 모바일 및 데스크톱)에서의 개발과

퀄리티의 프로덕션 경험을 우선시 한다.

 

Dart는 Flutter의 기반을 형성하였고

Flutter 앱을 구동하는 언어와 런타임을 제공할 뿐만 아니라,

 

코드 포맷, 분석, 테스트와 같은 개발자들의 핵심 작업들을 지원한다.

 

그럼 지금 부터 Dart의 특징에 대해 알아보자.


Dart는 기본적으로 두 가지의 컴파일러를 가지고있다.

 

💡 Dart Native

 

Dart Native는 내가 쓴 dart 언어를

여러 CPU 아키텍쳐에 맞게 변환해주는 컴파일러다.

 

때문에 Dart를 쓰는 것만으로

IOS, Android, Windows, Linux, Mac으로 컴파일 할 수 있다.

 

💡 Dart Web

 

Dart Web은 내가 쓴 dart 언어를 javascript로 변환해주는 컴파일러다.


또한 Dart는 두 가지 컴파일 방식이 있다.

이는 곧 앱을 배포하기 좋은 Dart의 장점 중 하나로 뽑힌다.

 

 

💡 JIT( Just In Time )

 

  • Dart VM을 활용해 내가 쓴 코드의 결과를 바로 보여주는 방식
  • 개발 중일때 주로 쓰는 컴파일 방식 ⭐⭐⭐
  • 빠른 피드백 가능

 

💡 AOT( Ahead Of Time )

 

  • 컴파일을 먼저하고 바이너리로 배포하는 방식
  • 개발이 완료된 코드를 배포하기 위해 컴파일 하는 방식 ⭐⭐⭐
  • 빠른 기계어, 컴파일된 바이너리를 만들 수 있다.

C++이나 java등의 언어는 null을 참조하여 에러가 생기는 경우가 많은데

 

Dart의 특별한 장점 중 하나는 이러한 문제를 해결해 주는 Null Safety가 있다는 점이다.

 

💡 Dart Null Safety

 

안전한 프로그래밍을 돕기위한 기능

개발자가 null 값을 참조하지 않게 도와준다.

 


마지막으로

 

FlutterDartGoogle에서 만들었기 때문에

최적화 및 빠른 수정이 가능하다.

 

Django를 빨리 수정하기 위해

Python을 수정할 수는 없다는 점을 이해하면 쉬울 것이다.

 


1. main() method

 

Dart는 Java와 같이 main() 함수가 무조건 존재해야한다.

 

main 함수로 Hello world를 출력했다.

 

main을 test로 바꾸자 출력이 되지 않는다.

 


2. Dart의 변수 생성

 

변수 생성에는

비명시적 방법var을 쓰는 방법과

명시적으로 String과 같이 type을 선언해 주는 방식이 있다.

 

이때 비명시적 방법의 경우 처음 선언된 변수와

변경할 변수의 값의 Datatype이 같지 않으면 에러가 난다.

 

💡 Var or Datatype?

  • var = 함수나 메소드 내부에 지역 변수를 선언할 경우
  • Datatype = class 변수나 property를 선언할 경우 타입을 지정 

3. Dynamic DataType

dart에는 dynamic이란 Datatype으로

변수를 선언할 수 있는데

이는 모든 종류의 Datatype이 올 수 있다.

 

위와 같이 name이란 변수는

String, Int, Bull 값을 모두 가질 수 있다.

 

포인트는 1번 구역까지는 컴파일러가 name2의 타입이 뭔지 모르기 때문에메소드를 추천해 주지 않지만

 

2번 구역부터는 if문의 영향으로String이라고 판단하여 여러 메소드를 추천해준다.

 


4. Null safety ⭐⭐⭐⭐

만약 null safety가 없다면

위의 코드는 반드시 에러가 난다.

 

isEmpty(String string)이란 함수는 String type만 받는데

사용은 null값을 받아 사용했기 때문이다.

 

이는 사용자가 앱을 사용할 때에 굉장히 안좋은 에러인데

Dart에서는 ? 하나로 해결이 가능하다.

위 사진과 같이 Datatype 뒤에 ?를 붙여주면

어떤 변수, 혹은 데이터가 null값이 될 수 있음을 명시한다.

 

 

 

'Hello App > Dart' 카테고리의 다른 글

Dart _ 기초 예제 5  (0) 2023.05.15
Dart_기초예제 4  (0) 2023.05.14
Dart_기초 예제3  (0) 2023.05.12
Dart_기초예제2  (0) 2023.05.11
VScode에서 Dart를 사용하기 위한 준비 - 윈도우  (0) 2023.05.09