본문 바로가기
Flutter/Dart의 정석

[Dart의 정석] Ch1.1. Welcome to Dart

by Couldi 2022. 1. 25.
반응형

이 글은 다트를 공부하고자 하는 모든 사람들을 위한 글이 아니다. 다트라는 언어의 전문가가 되기를 위한 사람들을 위한 글이기 때문에, 프로그래밍을 처음 공부하는 사람들이 보기에는 부적절할 수 있다. 프로그래밍의 초심자라면 본 블로그에 'Dart 입문'을 살펴보거나, 다른 컨텐츠를 찾아 공부하는 편이 더 나을 것이다.
가능한 이해하기 쉽고 일목요연하게 정리하고자 하지만, 다소 설명이 난해하거나 이해하기 어려울 수 있다. 그런 경우 댓글을 통해 궁금한 사항을 남겨두면 필자가 언젠가 보고 좀 더 상세한 설명을 덧붙일 수 있으니 많은 댓글을 바란다.
추가적으로 이 글은 Flutter(플러터)에 대해 다루지 않는다. Dart에 대한 내용만을 다룰 예정이다.

1. 다트(Dart)란?

Dart는 구글이 개발한 웹 프로그래밍 언어이다. 정확히 말하면 웹 프로그래밍 언어 였다. 2011년 10월 10일~12일까지 열렸던 'GOTO 컨퍼런스'에서 공개 되었고, 자바스크립트를 대체할 웹 개발언어를 목표로 개발되었다.

http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html

 

Dart: a language for structured web programming

By Lars Bak, Software Engineer, Dart Team Cross-posted on the Chromium Blog Today we are introducing an early preview of Dart , a class...

googlecode.blogspot.com

농담같지만 슬프게도 사실이다.

 

과거는 과거로 묻어두자. 중요한 건 지금이다.

 

지금의 Dart는 '모든 플랫폼에서 빠른 앱 개발을 위한 클라이언트에 최적화된 언어'가 되기를 추구한다. 그리고 실제로도 그 목표를 착실히 이루어 나가고 있는 중이다. Java의 JVM과 같이, DVM(Dart Virtual Machine)을 가지고 있으며, DVM 상에서 동작하거나 컴파일링을 통해서 모바일, 데스크탑, 서버, 웹브라우저 등에서 코드 실행을 가능하게 한다.

다시 말하지만, Dart의 꿈은 멀티플랫폼 개발을 지원하는 생산적인 프로그래밍 언어가 되는 것이며, 구글에서 2017년에 발표한 Flutter 덕분에 그 목적에 맞게 성장하고 있다. 추가로, 구글의 차세대 운영체제인 퓨시아(Fuchsia)가 Dart를 지원하지만 아직 어떻게 성장할지 모르는 일이라 이와 관련한 자세한 설명은 생략한다.

 

어떤 언어와 닮았나?

Dart는 2018년 배울 필요가 없는 언어 1위에 랭크되기도 했다. 

농담같지만 슬프게도 사실이다.

2019년에는 그 랭킹이 많이 변화하긴 했지만, swift, Kotlin, C, Go, Typescript도 저 위의 명단에 있는 걸 보면 그렇게 믿을만한 자료는 아닌거 같다는 생각도 든다.

Dart는 지금도 배울 필요가 없는 언어일까? 이 질문은 Dart를 배울 대상에 따라 답이 변한다.

 

1. 당신이 이미 프로그래머라면?

Dart는 여전히 배울 필요가 없는 언어다. 왜냐면, 굳이 배우지 않아도 너무나도 쉽게 이해할 수 있기 때문이다. 기본적으로 C언어의 문법과 거의 같으며, Java, C#, Javascript와 유사하다. 이 언어들 중 하나의 언어에 익숙하다면 Dart는 그냥 읽으면 이해되는 그런 언어일 뿐이다.

 

2. 당신이 프로그래밍이 처음이라면?

한번쯤 배워볼 프로그래밍 언어이다. Python, Javascript가 인기가 많은 언어이고, 처음 배우기 쉬운 언어라고 많이들 말한다. Dart 역시 그렇다. 당신이 데이터분석이나 인공지능을 공부해보고 싶다면 Python을, 웹을 공부해보고 싶다면 Javascript를 추천한다. 모바일 앱을 공부해보고 싶은데 다른 언어를 공부해본적이 없다면 Dart도 좋은 선택이 될 수 있다.

 

2. Dart의 특징

  • 객체지향언어이다.
  • C문법을 따르고 있어 대부분의 개발자에게 친숙하다.
  • Flutter 개발에 최적화 되어 있다.
  • Null Safety를 지원한다.
  • JIT(Just-in-time) 컴파일과 AOT(Ahead-of-time) 컴파일을 모두 지원한다.
  • Javascript로의 컴파일도 지원한다.
  • Java의 JVM과 같은 DVM(Dart Virtual Machine)을 지원한다.

간단하게 정리한다. 여기있는 이 특징들이 Dart를 공부하는데 길잡이가 되어줄 친구들이다.

 

 

반응형

댓글