Dart 언어의 특징과 사용하는 이유
Dart란?
Dart는 2011년 GOTO 컨퍼런스에서 구글이 발표한 자바스크립트를 대체 가능한 크로스 플랫폼 프로그래밍 언어로, 발표 당시에는 그다지 큰 주목을 받지 못했지만 Flutter의 등장으로 인해 수요가 높아지며 사용도가 급성장한 언어이다. 기본적으로 C언어와 문법이 비슷하며 Java, C# 같은 기능적 스트럭처를 추가해 간결하고 강력한 기능을 지원해 현대적인 언어라는 평가를 받고 있다.
Dart를 사용하는 이유
Dart언어의 수요가 높아진 이유를 꼽아보자면 역시 Flutter의 등장을 빼놓을 수 없다. Flutter가 나오기 전의 앱개발은 iOS와 Android가 코드가 공유될 수 없었는데, 앱을 개발할 때 iOS팀과 Android팀을 나누다보니 개발 자원이 2배 이상 필요하게 되었고, 따로 유지보수를 함에 있어서도 따로따로 관리를 해야하니 유지보수가 쉽지 않다는 점이 있었다. 그래서 이와 같은 문제점을 해결하기 위해 Flutter라는 크로스 플랫폼 개발 프레임워크를 구글에서 개발하게 되었다.
Dart의 컴파일러, JIT/AOT
JIT 컴파일러(Just In Time Compiler)는 프로그램 실행 중에 즉시 컴파일이 가능하다. 빠른 개발 주기로 개발이 가능하지만 실행속도가 느려진다는 단점이 존재한다. 반면 AOT 컴파일러(Ahead Of Time Compiler)는 프로그램 작성 중(런타임 전에) 컴파일을 실행한다. 때문에 실행속도가 더 빠르다는 이점이 존재한다. Dart는 개발을 진행중일 때에는 JIT 컴파일러의 Hot Reload기능을 이용해 생산성과 속도를 높이는데, Hot Reload는 변경 사항을 즉각적으로 확인 가능하며 확인 사이클이 매우 짧아지게 되어 빠른 시도와 빠른 피드백을 가능케하는 Dart의 혁신적인 기능이다. 앱을 빌드할 때에는 AOT 컴파일러를 사용해 사용자의 앱 사용성을 높여준다.
Dart의 특징
-
강력한 타입체크 Dart는 정적 타입 언어로 한번 고정된 타입을 끝까지 유지한다는 특징이 있다. 이러한 정적 타입 시스템은 코드의 타입이 애매하지 않도록 강제하므로, 런타임에 발견하기 어려울 수 있는 타입 관련 버그를 컴파일 타임에 찾아준다.
-
Null Safety 컴파일러가 코드가 실행되기 전에 null 참조 에러를 미리 발견해 예상치 못한 상황을 대비할 수 있게 해준다.
-
Single Thread 단일 스레드를 사용해 개발자가 신경써야하는 복장한 상황들로부터 해방시켜준다.
댓글남기기