라티의 작은 일기장

패스트캠퍼스 환급챌린지 1일차 미션(2월 1일): 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의 후기 본문

Flutter & Dart

패스트캠퍼스 환급챌린지 1일차 미션(2월 1일): 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의 후기

코드라티 2024. 2. 1. 22:57

프로그래밍 언어는 특정 문제를 해결하기 위한 알고리즘을 코드로 구현하기 위해 활용한다.

저수준, 고수준 언어로 계열을 나눌 수 있고, 우리가 일반적으로 개발할 때 활용하는 것은 대부분 고수준 언어이다.

추가로 고수준 언어를 기계가 이해하기 쉽도록 변환해주는 녀석을 컴파일러라고 한다.

Dart는 구글에서 개발한 언어로, 타입 시스템을 지원하는 객체지향 언어이고, 두 가지의 컴파일러(JIT, AOT)를 보유하고 있다는 것이 특징이다. JIT 컴파일러와 AOT 컴파일러에 대한 간단한 설명은 아래와 같다.

  • JIT(Just In Time) 컴파일러: 코드 실행 시점에 컴파일을 수행할 수 있는 컴파일러. Flutter의 Hot-Reload / Hot-Restart를 구현할 때 활용
  • AOT(Ahead Of Time) 컴파일러: 사전에 컴파일을 수행해서 높은 실행속도를 필요로 할 때 활용하는 컴파일러. 컴파일 후 배포 가능한 바이너리 파일을 생성해서 Flutter의 특징인 크로스 플랫폼 개발을 가능하게 함.

Dart는 아래와 같은 도구에서 사용해볼 수 있다.

강의에서는 Android Studio, VSCode를 활용한다고 한다.

자 그럼 간단하게 Dart를 찍먹해보자. Dart는 타입을 준수하는 언어이지만, 꼭 정의해서 선언할 필요는 없다.

그렇지만 혹시나 모를 런타임 에러나 협업할 때 편하려면 타입을 정의해주는게 좋다. (TypeScript 사용 목적과 같은 맥락?)

일단 특이한건 Future라는 타입이 있고 가변형 타입인 var / dynamic도 있고 상수 선언할 때 const와 final이라는 키워드를 사용할 수 있다는 것이다.

  • const: compile 시점에 상수값 할당
  • final: 런타임 시점에 상수값 할당

기본적인 Dart 언어 문법을 찍먹하기 위해 Dart Pad를 사용해보자. 아래와 같이 기본 예제 코드가 미리 작성돼있다.

 

그리고 실습은 웬만하면 stable channel에서 진행하자. (좌측 하단에서 설정 가능)

템플릿 리터럴같은 부분이 JS와 좀 비슷하고, 출력할 때 print() 함수를 활용하는건 Python이랑 좀 닮은거같다.

다양한 타입의 변수를 선언해봤는데, 저렇게 노란 밑줄이 뜨는 것은 경고를 나타내기 위함이고, 이 경우에는 선언해놓고 사용하지 않아서 뜨는 경고이다.

 

가변형 타입인 var과 dynamic도 실습해보았다.

var은 선언 당시 초기화된 값의 타입을 끝까지 준수하지만, dynamic은 초기화된 값의 타입과 다른 타입의 값을 재할당해도 오류가 생기지 않는다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/48sS29N