최근 수정 시각 : 2024-12-14 00:37:48

Dart(프로그래밍 언어)


프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: 2em;"
{{{#!folding [ IEEE Spectrum 2024 ]
{{{#!wiki style="margin: -5px 0"
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 JavaScript 3 Java
4 C++ 4 TypeScript
5 TypeScript 5 SAS
6 SQL 6 JavaScript
7 C# 7 C#
8 Go 8 HTML
9 C 9 Shell
10 HTML 10 C++
}}}
}}}
}}}
[ Stack Overflow 2024 ]
[ TIOBE 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 MATLAB
2 C++ 12 Delphi / Object Pascal
3 C 13 PHP
4 Java 14 Rust
5 C# 15 Ruby
6 JavaScript 16 Swift
7 SQL 17 Assembly language
8 Visual Basic 18 Kotlin
9 Go 19 R
10 Fortran 20 Scratch
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
21 COBOL 36 Scala
22 Classic Visual Basic 37 Transact-SQL
23 LISP 38 PL/SQL
24 Prolog 39 ABAP
25 Perl 40 Solidity
26 (Visual) FoxPro 41 GAMS
27 SAS 42 PowerShell
28 Haskell 43 TypeScript
29 Dart 44 Logo
30 Ada 45 Wolfram
31 D 46 Awk
32 Julia 47 RPG
33 Objective-C 48 ML
34 VBScript 49 Bash
35 Lua 50 Elixir
}}}}}}}}} ||
[ PYPL 2024 ]

}}} ||
프로그래밍 언어 목록 · 분류 · 문법

void main() {
  print("Hello, World");
}
<colbgcolor=#fff,#1f2023><colcolor=#04599C,#2CB7F6> 다트
Dart
파일:Dart_programming_language_logo.svg 파일:다트 로고 화이트.svg
분류 프로그래밍 언어
개발 파일:구글 로고.svg 및 커뮤니티
안정화 최신 버전 3.5.4 - 2024년 10월 17일
확장명 .dart
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg 파일:GitHub 아이콘 화이트.svg | 파일:디스코드 아이콘.svg |
1. 개요2. 특징
2.1. 디벨롭 워크플로( JIT + 다트 VM)2.2. 컴파일 to 네이티브(AOT + 런타임)2.3. 웹 디벨롭 워크플로(Dart dev 컴파일러)
2.3.1. Dart Web2.3.2. Dartpad
3. 학습 자료
3.1. 웹사이트3.2. 유튜브
4. 관련 문서5. 외부 링크

[clearfix]

1. 개요

다트(Dart)는 구글이 멀티 플랫폼상에서 동작되도록 하는 앱을 위해 디자인된 프로그래밍 언어이다. 다트는 2011년 10월에 공개되었다. 기본적으로 C 언어의 문법과 거의 같으며 Java, C#, JavaScript와 같은 기능적 스트럭처를 추가한 언어로, 언급된 언어보다 간결하고 강력한 기능을 지원한다. 모바일, 데스크톱, 서버, 웹 앱 용도에 사용된다. Dart는 DVM(Dart VM)상에서 동작하거나 네이티브 컴파일링을 통해 모바일, 데스크톱, 웹 브라우저, 서버 플랫폼상에서 어플리케이션 실행을 지원하고 있다. Dart 프로젝트의 목적은 구조적이지만 유연하고 프로그래머들에게 자연스럽고 다양한 종류의 기기에서 동작되도록 하는 것이다. 구글에서 2017년 발표한 크로스플랫폼 앱 프레임워크인 Flutter가 이 언어를 사용하고 있다. 2023년 1월 기준 최신 안정 버전은 3.0이다.

공식적으로 지원하고 있는 IDE로는 안드로이드 스튜디오, IntelliJ IDEA, VS Code 등이 있으며 각각의 IDE에서 Dart 및 Flutter 플러그인을 설치하여 다트/플러터 프로그래밍에 필요한 소프트웨어 디자인 환경을 제공하고 있다.

경쟁자인 페이스북, 애플, 모질라 등이 부정적인 입장을 내비쳤으나[1] Dart의 목표 중 하나인 웹 서버 및 웹 클라이언트 지원을 발표했다. 최근에는 WebAssembly까지 지원할 예정으로 Dart를 바이너리 수준으로 웹 브라우저에서 지원할 예정이다. 구글의 차세대 운영 체제 퓨시아가 Dart를 지원할 예정이다.[2]

2. 특징

프로그래머들에게 자연스럽게 다가가는 Dart의 목적에 맞게, 기존 프로그래밍 언어들의 특징들이 많이 보인다. 강력한 타입 시스템, 몇몇( C, Java 등) 프로그래밍 언어와 같이 main 함수에서 시작한다는 것이 가장 대표적인 부분이다.

Dart를 사용하여 간단한 스크립트 또는 완전한 기능의 애플리케이션을 만들 수 있다. 유연한 컴파일러 기술을 통해 대상 플랫폼 및 목표에 따라 Dart 코드를 다양한 방식으로 실행할 수 있다.
  • Dart Native: 디바이스(모바일, 데스크톱, 서버, 임베디드 등)를 대상으로 하는 프로그램의 경우 Dart Native를 이용한다. 여기에는 순수 Dart 인터프리터와 JIT(Just-In-Time) 컴파일러, AOT(Ahead-Of-Time) 컴파일러가 모두 포함되어 있다.
  • Dart Web: 웹을 대상으로 하는 프로그램의 경우 Dart Web을 이용한다. 개발 타임 컴파일러(dartdevc)와 프로덕션 타임 컴파일러(dart2js)가 모두 포함되어 있다.

2.1. 디벨롭 워크플로( JIT + 다트 VM)

반복적인 작업을 위해서는 빠른 개발 주기가 중요하다. 다트 VM에는 pure interpreter(예: iOS 장치에 필요)와 런타임 최적화를 모두 지원하는 JIT(just-in-time compiler)가 있다.

앱을 프로덕션 환경에 배포할 준비가 되면 (앱 스토어에 게시하거나 프로덕션 백엔드에 배포할 때) Dart AOT 컴파일러를 사용하여 네이티브 ARM 또는 AMD64 코드 머신 코드로 앱을 사전에 컴파일할 수 있다. AOT 컴파일 된 애플리케이션은 즉시 시작하고 원활하게 실행된다.

AOT로 컴파일된 코드는 Dart 타입 시스템을 실행하고 빠른 오브젝트 할당 및 생성된 가비지 콜렉터를 사용하여 메모리를 관리하는 효율적인 Dart 런타임에서 실행된다.

2.2. 컴파일 to 네이티브(AOT + 런타임)

Dart 네이티브는 모바일, 데스크톱 및 서버 애플리케이션용 네이티브 ARM 또는 X64 시스템 코드로 컴파일 된 Dart 코드를 실행할 수 있게 한다. 모바일 또는 데스크톱, 웹, 임베디드 장치를 대상으로 할 때 Flutter 프레임워크는 다트 네이티브가 제공하는 인기 있는 멀티 플랫폼 UI 툴킷이다.

2.3. 웹 디벨롭 워크플로(Dart dev 컴파일러)

다트 dev 컴파일러(dartdevc)는 신속한 처리를 위해 최적화된 Dart-to-JavaScript 컴파일러이다. dartdevc를 직접 사용하는 대신 webdev와 함께 실행, 디버깅 및 빌드와 같은 핵심 개발자 작업을 지원하는 도구와 함께 사용한다.

2.3.1. Dart Web

Dart Web은 JavaScript로 구동되는 웹 플랫폼에서 Dart 코드를 실행할 수 있게 한다. Dart Web을 사용하면 Dart 코드를 JavaScript 코드로 컴파일 할 수 있다. 이 코드는 웹 브라우저에서 실행된다.
웹 앱 튜토리얼

2.3.2. Dartpad

Dartpad는 웹에서 다트 코드를 웹에서 구동할 수 있는 일종의 Playground다.
https://dartpad.dev/

3. 학습 자료

3.1. 웹사이트

3.2. 유튜브

4. 관련 문서

5. 외부 링크


[1] 페이스북의 경우 자사의 개발 플랫폼인 React Native 때문에, 애플의 경우는 자신들의 네이티브 에코시스템에 반하는 크로스플랫폼 전체에 대한 반감 때문에, 모질라는 구글과 공익성 측면에서 충돌하기 때문으로 추정된다. [2] 퓨시아는 C/C++/Rust 등등 상당히 많은 수의 다른 언어도 같이 지원한다.