[LMS] Dart 란?

nouveau·2023년 11월 29일
0

dart

목록 보기
1/1
post-thumbnail

Dart란?

구글에서 자바스크립트를 대체하기 위해 개발한 멀티 플랫폼 프로그래밍 언어이며, 크로스 플랫폼 프로그래밍 언어를 목표로 설계되었다.
타입 추론 기능, 비동기 프로그래밍 등 강력한 기능을 제공합니다.
AOT, JIT 컴파일을 통해 네이티브 크로스 플랫폼 개발에 적합합니다.

1. Dart는 왜 만들어졌을까?

Javascript의 한계

  • 동적 타이핑 언어이기 때문에 런타임 오류가 발생하기 쉬움.

    개발자가 의도 하지 않은 방식으로 데이터 타입이 인식 될 우려가 있음.

  • 유연한 문법 구조로 가독성이 떨어짐.

    같은 목적의 기능도 다양한 방식으로 작성 될 수 있어, 다른 개발자가 알아보기 어려울 수 있음.

  • 일반적인 프로그래밍 언어보다 실행 속도가 느릴 수 있음.

    인터프리터 언어라서 코드를 매번 새로 읽어야 함.

2. Dart와 다른 언어의 다른 점은?

Dart와 다른 언어의 가장 중요한 차이점으로는 Null Safefy와 Hybrid Compile이라는 특성이 있음.

Null Safefy

Null Safety는 프로그래밍 언어에서 null 값에 대한 안정성과 예외처리를 개선하는 기능.
Null은 값이 필요한 변수가 메모리에 할당조차 되지 않는 것을 의미함.
( 간단한 코드는 Null을 사용하지 않는 것만으로 해결 할 수 있으나, 코드 양이 많아 질 수록 의도치 않게 Null이 할당되는 경우가 발생 할 수 있음.)

Hybrid Compile

Hybrid Compile은 Dart 코드를 다른 프로그래밍 언어로 변환하여 실행할 수 있는 기술을 말함.
상황에 따라 Javascript로 변환되어 브라우저에서 실행 될 수도 있고, Flutter를 활용하여 Dart 코드를 네이티브 코드로 변환하여 모바일 앱에서 실행 될 수 있음.

  • JIT ( Just In Time )
    • 컴파일러가 코드를 변경 할 때마다 컴파일하여 소스를 실행
    • 변경 된 코드를 바로 바로 확인해야 하는 개발환경에 적합하고, 다트 가상머신에서 프로그램이 동작
  • AOT ( Ahead of Time )
    • 컴파일러가 코드 전체를 컴파일 한 후 프로그램이 실행 될 때 소스가 실행 됨
    • 프로그램이 작동 될 때 효율적이기 때문에 운영환경에 적합하다.

0개의 댓글