최근 수정 시각 : 2024-04-12 01:29:19

Dart(프로그래밍 언어)

프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display: inline-block; margin: 0 0 -5px; min-width: 25%"
{{{#!folding ⠀[ IEEE Spectrum 2023 ]⠀
{{{#!wiki style="margin:-6px -1px -10px"
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 C++ 3 Java
4 C 4 JavaScript
5 JavaScript 5 C++
6 C# 6 C#
7 SQL 7 C
8 Go 8 HTML
9 TypeScript 9 Shell
10 HTML 10 SAS
}}}}}}}}}
⠀[ Stack Overflow 2023 ]⠀
||<tablewidth=100%><width=2000><-4><bgcolor=#FFA500><tablebgcolor=#fff,#222> 2023년 Stackoverflow 설문조사 기준 인기 상위 25개 프로그래밍 언어 ||
1 JavaScript 14 Rust
2 HTML, CSS 15 Kotlin
3 Python 16 Ruby
4 SQL 17 Lua
5 TypeScript 18 Dart
6 Bash 19 어셈블리어
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Visual Basic
10 C 23 MATLAB
11 PHP 24 VBA
12 PowerShell 25 Groovy
13 Go
⠀[ TIOBE 2024 ]⠀
||<tablewidth=100%><width=2000><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 2월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Fortran
2 C 12 Delphi / Object Pascal
3 C++ 13 MATLAB
4 Java 14 Assembly language
5 C# 15 Scratch
6 JavaScript 16 Swift
7 SQL 17 Kotlin
8 Go 18 Rust
9 Visual Basic 19 COBOL
10 PHP 20 Ruby
{{{#!wiki style="margin:0 -10px -5px; min-height: 26px"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -10px"
21 R 36 Transact-SQL
22 SAS 37 VBScript
23 Classic Visual Basic 38 Haskell
24 Prolog 39 TypeScript
25 Ada 40 Logo
26 Perl 41 Bash
27 (Visual) FoxPro 42 Scheme
28 Dart 43 Solidity
29 D 44 ABAP
30 F# 45 ML
31 Scala 46 X++
32 Objective-C 47 PL/SQL
33 Lua 48 GAMS
34 Julia 49 PowerShell
35 LISP 50 RPG
}}}}}}}}} ||
⠀[ PYPL 2024 ]⠀
||<tablewidth=100%><width=2000><-4><bgcolor=green><tablebgcolor=#fff,#222> 2024년 2월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Rust
2 Java 12 Go
3 JavaScript 13 Kotlin
4 C/C++ 14 MATLAB
5 C# 15 Ada
6 R 16 Dart
7 PHP 17 Ruby
8 TypeScript 18 PowerShell
9 Swift 19 VBA
10 Objective-C 20 Lua
}}} ||
프로그래밍 언어 목록 · 분류 · 문법
<colbgcolor=#fff,#1f2023><colcolor=#04599C,#2CB7F6> 다트
Dart
파일:Dart_programming_language_logo.svg파일:다트 로고 화이트.svg
분류 프로그래밍 언어
개발 파일:구글 로고.svg 및 커뮤니티
안정화 최신 버전 3.3.0 - 2024년 2월 15일
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg | 파일:디스코드 아이콘.svg |

1. 개요2. 특징
2.1. 디벨로프 워크플로우 (JIT+다트VM)2.2. 컴파일 to 네이티브 (AOT+런타임)2.3. 웹 디벨로프 워크플로우 (Dart dev 컴파일러)
2.3.1. Dart Web
3. 학습 자료
3.1. 웹사이트3.2. 유튜브
4. 관련 문서5. 외부 링크

[clearfix]
void main() {
  print("Hello, World");
}

1. 개요

공식 사이트

구글이 멀티 플랫폼 상에서 동작되도록 하는 앱을 위해 디자인된 프로그래밍 언어. 다트는 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 코드로 컴파일 할 수 있다. 이 코드는 웹 브라우저에서 실행 된다.

웹 앱 튜토리얼

3. 학습 자료

3.1. 웹사이트

3.2. 유튜브

4. 관련 문서

5. 외부 링크



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