250x250
반응형
05-11 16:40
Today
Total
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Notice
Recent Posts
Recent Comments
Link
Archives
관리 메뉴

Bill Kim's Life...

[Dart] 개요 및 컨셉 본문

CS(컴퓨터 과학)/Dart

[Dart] 개요 및 컨셉

billnjoyce 2020. 8. 19. 11:28
728x90
반응형
Dart 언어에 대한 개요 및 중요 컨셉에 대하여 살펴봅니다.

 

 

#. 구독 대상

  • Dart 언어를 처음 접하시면서 공부해보고 싶으신 분
  • 플러터(Flutter) 개발에 관심이 있어나 해보고 싶으신 분
  • 멀티 플랫폼 모바일 앱 개발을 시작하고 싶으신 분
  • 기타 소프트웨어 개발과 지식에 관심이 있으신 모든 분들

 

 


 

Dart(다트) 언어란?

 

 

Dart 언어는 구글이 개발한 웹 프론트엔트 언어이다. 구체적인 언어의 목적과 개요을 나무위키에서 살펴보면 아래와 같습니다.

 

[나무위키] -Dart(프로그래밍 언어)

 

Dart(프로그래밍 언어) - 나무위키

Dart 네이티브는 모바일, 데스크탑 및 서버 애플리케이션용 네이티브 ARM 또는 X64 시스템 코드로 컴파일 된 Dart 코드를 실행할 수 있게 한다. 모바일 또는 데스크탑, 웹, 임베디드 장치를 대상으로

namu.wiki

 

구글이 웹 프론트엔드 구현을 목적으로 개발한 프로그래밍 언어. 2011년 10월에 공개되었다. 현재 Dart는 다양한 VM과 컴파일러 지원을 통해 웹 프론트엔드부터 데스크탑서버모바일 애플리케이션까지 개발할 수 있다. Dart로 구축한 애플리케이션은 Dart VM 위에서 동작한다. Dart 프로젝트의 목적은 구조적이지만 유연하고, 프로그래머들에게 자연스럽고, 다양한 종류의 기기에서 돌아가게 하는 것이다. 현재 구글의 크로스플랫폼 앱 프레임워크인 Flutter가 이 언어를 사용하고 있다.

사용자 수가 제법 많아졌는지 2020년 5월자로 TIOBE에서 22위에 올랐다. # 2020년 5월 기준 최신 안정 버전은 2.7.2이다.

IntelliJ IDEA와 안드로이드 스튜디오VS Code에서 Dart 개발 환경을 공식 지원한다.

 

 

 

 

 


 

 

 

즁요 핵심 특성

 

그렇다면 Dart를 개발한 구글 공식 문서에서 제시한 Dart 언어의 중요 컨셉을 한번 살펴보겠습니다.

 

dart.dev/guides/language/language-tour

 

A tour of the Dart language

A tour of all of the major Dart language features.

dart.dev

 

  • 변수에 할당하는 모든 것은 객체(object)이며, 모든 객체는 클래스의 인스턴스이다. 또한 숫자와 함수, null 역시 객체이다. 모든 객체는 Object 클래스를 상속한다.
  • Dart는 타입 추론을 할 수 있기 때문에 타입을 강제하는 언어이면서도 타입 표기가 생략 가능하다. 만약 타입이 지정되지 않음을 명시적으로 표기하고 싶다면 'dynamic' 타입을 표기하면 된다.
  • Dart는 generic을 지원한다. 'List<int>'나 'List<dynamic>'와 같이 표현된다.
  • Dart는 클래스나 객체에 선언되는 것 말고도(각각 static, instance 함수를 말한다) 최상위 레벨(top-level) 함수를 지원한다. 뿐만 아니라 함수 내부에 (중첩 함수 혹은 지역 함수로) 함수를 생성할 수 있다.
  • 위와 비슷하게 클래스나 객체 내에서 선언되는 static, instance 변수처럼 최상위 레벨 변수 역시 지원한다. instance 변수는 field나 property로도 불린다.
  • Java와 달리 Dart는 public, protected, private과 같은 예약어가 없다. 식별자(identifier)가 밑줄(_)로 시작하면 해당 라이브러리에서 private으로 선언된다.
  • 식별자는 밑줄이나 글자로 시작할수 있고, 그 이후로는 숫자를 함께 사용할 수 있다.
  • Dart는 expressions(런타임 값을 지님)와 statements(런타임 값이 없음)을 지닙니다. 예를 들어, conditional expression 'condition ? expr1 : expr2'는 expr1과 expr2의 값을 지닙니다. 반면 if-else statement는 값을 가지지 않습니다. statements는 하나 혹은 그 이상의 expressions를 포함하지만, expressions는 statement를 직접(곧바로?) 포함할 수 없습니다.
  • Dart tools는 두 종류의 오류 보고를 합니다: warning과 error입니다. warning은 코드가 작동하지 않을 수 있음을 알려주지만 프로그램이 실행되는 것 자체를 막진는 않습니다. error는 compile-time과 run-time으로 나뉘는데, compile-time은 프로그램의 실행 자체를 막습니다. run-time은 코드 실행중에 exception으로 결과값을 도출합니다.

 

 

 


 

 

 

오늘은 간략하게 Dart 언어의 개요 및 핵심 컨셉에 대해서 간략하게 살펴보았습니다.

Dart는 마지 Java와 Javascript 언어의 장점을 잘 조합하여 만든 웹 개발 언어로 보입니다. 

 

또한 Dart는 Flutter 앱 개발 시 사용하는 메인 언어임으로 만약 Flutter를 통한 앱 개발을 목적으로 하신 분들이라면 반드시 알아야 하는 언어입니다.

 

 

 

감사합니다.

 

 

 

 

 

 

 

 


[참고 자료(References)]

 

[1] Dart(프로그래밍 언어) : namu.wiki/w/Dart(프로그래밍%20언어)

[2] A tour of the Dart language : dart.dev/guides/language/language-tour

728x90
반응형

'CS(컴퓨터 과학) > Dart' 카테고리의 다른 글

[Dart] Control flow statements(제어문)  (0) 2020.08.20
[Dart] Operators(연산자)  (0) 2020.08.19
[Dart] Collection : List & Set & Map  (0) 2020.08.19
[Dart] Variables(변수)  (0) 2020.08.19
[Dart] 기초 문법  (0) 2020.08.19
Comments