꾸준히 하고싶은 개발자

핫 리로드와 핫 리스타트 차이 본문

Flutter

핫 리로드와 핫 리스타트 차이

프라우스 2024. 4. 29. 20:57

핫 리로드란 무엇인가?

 

 

기본 정의 : 핫 리로드는 소스 코드의 변경 사항을 즉시 앱에 반영하되, 앱의 현재 상태를 유지하는 기능이다. 즉, 변수의 현재 값, 위젯 트리의 상태 등이 그대로 유지되면서 UI 변경 사항 또는 로직 변경 사항만 적용되는 것을 말한다.

 

작동 원리 : Flutter는 Dart 언어를 사용하는데 이 Dart는 JIT(Just-In-Time) 컴파일을 지원한다. 핫 리로드는 이를 활용하여 변경된 소스 코드만 컴파일하고 앱에 즉시 반영할 수 있게 되는 것이다.

 

적용하기 : UI의 디자인 변경, 로직 수정, 새로운 함수의 추가 등 대부분의 변경 사항에 적합하지만 다음 제한 사항과 같이 적용할 수 없는 부분도 존재한다.

 

제한 사항 : 'main()' 함수 내에 변경 사항, 전역 변수의 초기화 로직 변경, 앱의 전체적인 상태 초기화 로직등은 핫 리로드를 통해 반영되지 않기 때문에 핫 리스타트를 통해 반영해야 한다.

 

 

 

핫 리스타트 

 

기본 정의 : 핫 리스타트는 앱을 처음부터 다시 시작하되, 앱을 재빌드하거나 재설치하지 않는 기능이다. 모든 앱 상태는 초기화되며(변수의 현재 값, 위젯 트리 상태 등), 앱은 처음부터 다시 시작된다.

 

작동 원리 : 모든 위젯 트리와 상태는 초기화되며, 앱은 'main()' 함수부터 다시 실행되며, 처음 시작되는 화면으로 돌아간다.

 

적용하기 : 앱의 초기화 로직 변경, 전역 변수의 변경, 'main()' 함수 내의 변경 사항 등을 반영하고 싶을 때 사용된다.

 

제한 사항 : 앱의 현재 상태와(메인 함수에 작성된 위치로) 메모리(기본 정의에 얘기한 것과 같이 변수나, 위젯 트리 상태 등의 값들)는 완전히 초기화된다. 

 

 

 

핫리로드 와 핫 리스타트 차이점 

1.핫 리로드(Hot Reload)는 앱의 현재 상태와 메모리를 유지한 채 변경 사항을 적용한다.

2.핫 리스타트(Hot Restart)는 앱의 모든 상태와 메모리를 초기화하고 앱을 처음부터 다시 시작한다.

 

 

적용 범위

1.핫 리로드(Hot Reload)는 대부분의 소스 코드 변경 사항을 즉시 반영할 수 있지만, 초기 앱 상태나 전역 변수의 변경은 반영되지 않는다.

2. 리스타트(Hot Restart) 이러한 초기 상태 변경 사항까지 모두 반영하여 실행한다.

'Flutter' 카테고리의 다른 글

Dart에서 private 변수를 쓰는 이유  (0) 2024.05.02
const and final  (0) 2024.05.01
패키지 라이브러리 플로그인  (0) 2024.04.26
Pubspec  (0) 2024.04.25
상태관리  (0) 2024.04.22