JIT Compiler(Just In Time): 코드 실행 시점에 컴파일을 수행할 수 있는 컴파일러로, 빠른 개발과 디버깅을 할 때 주로 사용되는 컴파일러이다.
Flutter 개발 특징 중 하나인 Hot-Reload/Hot-Restart를 구현 할 때 사용된다.
AOT Compiler(Ahead Of Time): 사전에 미리 컴파일을 수행하여 높은 실행 속도를 필요로 할 때 사용되는 컴파일러로, 코드 내부를 보호할 수 있으며, Dart 코드를 다른 플랫폼에서 실행 할 수 있도록 컴파일 후 배포 가능한 바이너리 파일을 생성한다.
compile 시점에 상수 처리 될 경우에 활용
코드의 진행 여부와 상관없이 상수처리를 하고 싶은 경우에.
프로그램의 진행중에 상수 처리 될 경우에 활용
프로그램이 진행되어 어떤 연산을 통해 나온 결과값을 상수처리하고 싶을 때.
기본 생성자임.
생성자 함수를 따로 작성하지 않았을 때 기본적으로 제공
class 명과 같은 이름으로 명시된 생성자 함수
클래스에 대한 여러 생성자를 구현하거나, 추가적인 클래스의 명확성을 제공
생성자의 본문은 비어 있지만, 전달 된 생성자에 대한 초기값 등을 구현할 때 활용.
상수 생성자로 클래스가 불면의 객체를 생성하는 경우
매번 새로운 인스턴스를 만들지 않는 생성자를 활용할 애 사용.
이미 존재하는 인스턴스를 반환하거나, 단순한 초기값을 부여가 아닌 연산이 필요한 객체 생성 시 활용.
flutter version manager 로 Flutter 는 버전이 자주 변하다 보니 버전 변경을 용이하게 하고 SDK 설치도 도욱 쉽게 할 수 있는 FVM 을 알아두고 사용하는 것이 중요하다.
fvm.app 을 입력하여 홈페이지에 들어가주면
가운데 get started 가 보인다. 눌러서 Installation 에 들어가보면 사실 MacOS 는 리눅스 기반이라 패키리 관리자 통상 homebrew 가 깔려서 그걸로 사용하면 되는데 window 에서는 생소할 수 있다. 무튼 아래 명령어 처럼 choco 라는 패키지 관리자를 설치해주어야한다.
사실 choco 의 전체 이름은 초콜레티 이다.
무튼 별도의 설치 페이지가 존재하는데 여기 에서 복붙을 해서 설치하면 된다. 방법은 아래 있다.
Restricted 라고 뜬다면
Set-ExecutionPolicy AllSigned
# 아니면
Set-ExecutionPolicy Bypass -Scope Process.
실행 후 Y 입력
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco
를 입력해 버전이 나온다면 설치 완료 했고
이제
choco install fvm
을 통해 fvm 을 설치하면 된다.
마치 nvm 처럼 사용하면 된다.
fvm list
fvm global <version>
# 플러터 프로젝트에서
fvm use <version>
flutter SDK path 에서 fcm use <version> 을 했다면 숨김 파일 해제( cmd + shift + .
)를 통해 숨어있는 .fvm 파일을 찾을 수 있을 것이다.