Dart #1 | 다트를 선택하는 이유

HyeonWooGa·2023년 4월 24일
0

Dart

목록 보기
2/25
post-thumbnail

다트를 선택하는 이유

1. 다트는 UI에 최적화 되어있는 언어

2. 생산적인 개발 환경

3. 모든 플랫폼에서 컴파일이 빠르다


모든 플렛폼에서 컴파일이 빠른 이유

Dart 는 두 개의 컴파일러를 가지고 있다.

1. Dart Web

  • Dart 로 쓴 코드를 JavaScript 로 변환해주는 컴파일러

2. Dart Native

  • Dart 로 쓴 코드를 여러 CPU(ARM32, ARM62, x86_64) 의 아키텍쳐에 맞게 변환해줌
  • IOS, Android, Windows, Linux, Mac 용도로 전부 컴파일 가능
  • 심지어 임베디드 소프트 웨어 용으로도 컴파일 가능

Dart Native 컴파일 방법 (중요)

1. Ahead-Of-Time (AOT)

  • 컴파일을 먼저하고, 결과로 바이너리(CPU 가 이해할 수 있는 기계어)를 배포
  • 각각의 아키텍쳐; IOS, Android, Window, Mac 등 따로따로 컴파일을 진행해야하기 때문에 시간이 오래 걸림
  • UI, 개발 모드 등에서 비효율적 (중간 중간 확인이 필요할때마다 처음부터 모든 코드를 다시 컴파일 해야되기 때문에)

2. Just-In-Time (JIT)

  • DartVM 을 이용해 우리가 쓴 코드의 결과를 바로 화면에 보여줌
  • 가상머신에서 작동하기 떄문에 약간의 속도 저하
  • 개발 중일때만 사용하는 것

결론

  • 개발 중일때는 Dart VM(Virtual Machine) 을 통해서 즉시 피드백을 받고 (JIT)
  • 개발이 끝난 후에는 각각의 CPU 의 바이너리로 변환시켜서 배포한다 (AOT)

JIT 과 AOT 를 위와 같이 사용하면 1) 개발 중의 편리성 2) 개발 후의 프로그램 성능 모두 취할 수 있게 된다 (Dart 의 장점)


Null Safety

- 안전한 프로그램을 빌드할 때 아주 중요하다

- Java 나 C++ 같은 객체지향형 언어들은 항상 null 값을 참조하면 모든 게 고장나는 문제가 있어왔다

- 하지만 Dart 는 Null Safety 를 도입해서 그게 프로그램을 안전하게 만들어준다


Flutter 가 Dart 를 선택한 이유

1. JIT 컴파일과 AOT 컴파일이 둘 다 있기 때문

  • 모바일 개발에 장점이 있는 언어
  • 빠른 피드백 + 좋은 성능

2. Dart 와 Flutter 둘 다 구글이 만들었기 때문

  • 구글이 Flutter 를 위해서 Dart 언어를 수정 가능 (다른 프레임워크들은 불가능한 부분 예를 들어 React 팀이 React 를 위해 JavaScript 수정 불가능)
  • 실제로, 과거 Dart 에는 AOT 툴체인이 없었지만 Dart 개발팀이 Flutter 개발팀을 위해서 만들어줌

profile
Aim for the TOP, Developer

0개의 댓글