[Flutter] hot Reload

솜사탕·2024년 6월 28일
0

flutter

목록 보기
3/15
post-thumbnail

hot Reload

  • 코드를 수정하면 즉각적인 변경 사항이 적용된다.

작동 원리

현재 실행 되고 있는 Dart 가상머신(VM)에 변경된 소스를 전달한다.
그러면 가상머신은 새로운 버전의 필드 및 함수로 클래스를 업데이트한 후 위젯트리를 재빌드한다.

이때 state를 유지하며 main() 이나 initState는 다시 실행 되지않는데, 이유는 hot Reload 과정에서는 state 객체를 새로 생성하지 않고 위젯만 리빌드하기 때문이다.

디버그 모드에서만 가능하고 릴리즈 모드에서는 불가능합니다

다트 컴파일(dart2native)라는 컴파일러를 사용하는데 2가지 방식이 존재한다.
방식의 차이에는 컴파일을 하는 시점에 따라서 나누어진다.

  1. AOT(Ahead-of-time): 릴리즈 모드
    • 프로그램을 실행하기 전에 컴파일하는 방식이다. 중간에 수정사항은 반영하지 않지만 JIT 방식보다 더 나은 퍼포먼스를 보임
  2. JIT(Just-In-Time): 디버그 모드
    • 런타임환경에서 코드가 필요할 때, 필요한 만큼만 컴파일한다. 프로그램이 실행하는 도중에 컴파일을 진행하는 방식(빠른 개발 속도)
    • 프로그램 내에서 컴파일이 필요한 부분을 방문할 때 마다 컴파일을 해줘야하기 때문에 실행 속도가 느림

0개의 댓글