[플러터] 1. Dart와 Flutter

lhs's avatar
Dec 19, 2024
[플러터] 1. Dart와 Flutter

1. Dart

  • 개요: Dart는 구글이 개발한 프로그래밍 언어로, 클라이언트 사이드 개발에 특화되어 있으며, 주로 웹과 모바일 애플리케이션 개발에 사용된다.
  • 특징:
      1. 객체 지향 언어: Dart는 객체 지향 언어로, 클래스와 객체 개념을 사용하여 프로그램을 작성한다.
      1. JIT(Just-In-Time) 및 AOT(Ahead-Of-Time) 컴파일: Dart는 JIT와 AOT를 지원하여, 개발 중 빠른 피드백을 얻고, 최종 배포 시 성능 최적화를 할 수 있다.
      1. C 스타일 문법: JavaScript, Java, C++ 등과 유사한 문법을 사용하여 배우기 쉽다.
      1. 비동기 프로그래밍 지원: asyncawait를 사용하여 비동기 작업을 처리할 수 있다.
      1. 크로스 플랫폼: 모바일, 웹, 서버 등 다양한 플랫폼에서 실행할 수 있다.
  • 용도:
    • Flutter에서 주로 사용되는 언어.
    • 웹 애플리케이션 개발에도 사용되며, 서버와 CLI 도구에도 활용될 수 있다.

2. Flutter

  • 개요: Flutter는 구글이 만든 UI 툴킷으로, 단일 코드베이스로 iOS, Android, 웹, 데스크탑 애플리케이션을 모두 개발할 수 있도록 해준다. Flutter는 Dart를 사용하여 애플리케이션을 작성한다.
  • 특징:
      1. 크로스 플랫폼 개발: 하나의 코드베이스로 iOS, Android, 웹, 데스크탑 등 다양한 플랫폼에 애플리케이션을 배포할 수 있다.
      1. 핫 리로드(Hot Reload): 코드 수정 후 즉시 결과를 확인할 수 있어 개발 속도가 빠르다.
      1. 고성능: Flutter는 네이티브 코드로 직접 컴파일되기 때문에 성능이 뛰어나며, 고유한 렌더링 엔진을 사용해 UI를 구현한다.
      1. 풍부한 위젯: Flutter는 기본적으로 다양한 위젯을 제공하여 애플리케이션을 구성하는 데 매우 유용하다.
      1. 맞춤형 UI: Flutter는 구글 머티리얼 디자인(Material Design)과 애플의 Cupertino 디자인을 모두 지원하며, 완전하게 맞춤형 UI를 구현할 수 있다.
  • 용도:
    • 모바일 애플리케이션 개발(주로 iOS, Android)
    • 웹 애플리케이션 개발
    • 데스크탑 애플리케이션 개발 (Windows, macOS, Linux)

3. Dart와 Flutter의 관계

  • Dart는 Flutter의 주요 언어로, Flutter에서 제공하는 UI 위젯, 상태 관리, 네트워크 통신 등 모든 로직을 작성하는 데 사용된다.
  • Flutter는 Dart로 작성된 UI와 애플리케이션 로직을 네이티브 코드로 변환하여 다양한 플랫폼에서 실행할 수 있게 한다.

4. Dart와 Flutter의 장점

  1. 단일 코드베이스: 한 번의 개발로 여러 플랫폼에서 실행되는 애플리케이션을 만들 수 있다.
  1. 빠른 개발 속도: 핫 리로드 기능을 통해 개발 중 바로 변경 사항을 확인할 수 있어 생산성이 높다.
  1. 고성능: 네이티브 성능에 가까운 실행 성능을 제공한다.
  1. 풍부한 UI 구성 요소: 다양한 기본 제공 위젯을 통해 아름답고 직관적인 UI를 만들 수 있다.
  1. 활발한 커뮤니티와 지원: 구글과 커뮤니티의 적극적인 지원으로 빠르게 발전하고 있다.

5. Dart와 Flutter의 단점

  1. 상대적으로 적은 라이브러리와 패키지: 다른 플랫폼에 비해 Dart와 Flutter의 생태계가 상대적으로 작다. 그러나 빠르게 성장하고 있다.
  1. 앱 크기: Flutter 앱은 네이티브 앱에 비해 초기 용량이 클 수 있다.
  1. 애플 플랫폼과의 호환성 문제: Apple의 정책에 따라 최신 iOS 버전의 지원이 다소 늦을 수 있다.
  1. 웹 성능 제한: Flutter 웹은 모바일과 데스크탑 환경에서보다 성능과 안정성이 떨어질 수 있다.

6. 결론

  • Dart는 Flutter를 위한 언어로, 객체 지향적이며 비동기 작업을 효율적으로 처리할 수 있다.
  • Flutter는 Dart로 작성된 애플리케이션을 여러 플랫폼에 걸쳐 실행할 수 있게 해주는 UI 툴킷으로, 크로스 플랫폼 개발에 매우 유용하다.
  • 둘을 결합하여 효율적이고 고성능의 크로스 플랫폼 애플리케이션을 개발할 수 있다.
Share article

LHS's Study Space