Flutter를 처음 접할 때 누구나 보게 되는 단어가 있다.
'Hot Reload'
정확히 알고 가면 좋은 개념이라 정리하려고 한다.
모든 내용은 Flutter의 공식 영상을 참고했다.
플러터의 큰 장점 중 하나는 구글이 만든 프레임워크, 구글이 만든 Dart 언어를 사용하기 때문에 모든 것이 문서화/영상화 되어 있고 매우 친절하다는 것이다. 공식 영상은 영어로 설명하지만 한국어 자막이 있고, 영어 어휘가 매우 쉬워 자막 없이도 쉽게 시청할 수 있다.
HotReload는 Flutter의 큰 장점으로 가상 머신에서 동작되고 있는 dart 코드가 업데이트 됐을 때, 루트 위젯부터 하위 위젯까지 build 메소드가 재실행 되는 것이다.

해당 녹화를 참고하면 앱 바의 컬러를 바꿨는데 재실행을 하지 않아도 색깔이 변경된다. 이것이 hot reload이다. 매우 강력한 기능이다.
flutter를 restart 했을 때 시간이 매우 오래 걸린다. 이것은 어느 프레임워크나 해당되는 것이다. 프레임워크의 구성 라이브러리를 참고해야 하고 내부 동작이 매우 복잡하기 때문이다.
하지만 모든 것이 다 hot reload 되는 것은 아니다.
오직 build 메소드에 한정되어 있다.
만약 내가 무엇을 변경했는데 hot reload 되지 않는다면
-> 변경한 내용이 build 메소드 내에 있지 않을 가능성이 크다.
그런 경우는 hot reload가 되지 않으니까 restart을 해야한다.
여기서 initState(), dispose() 내부 코드가 변경되었을 때 hot reload는 발생하지 않는다. -> build 메소드가 아님

마찬가지로 build 메소드 아니기 때문에 관련 없음. hot reload 되지 않음.

Stateless 위젯을

Stateful 위젯으로 변경했을 때,
build 메소드는 Stateful 위젯 내부에 있는 State 객체에서 실행될 것이다.
이런 경우 또한 hot reload가 안 되고 restart를 수행해야 한다.
hot reload가 관리하는 구간이 아니기 때문에 hot reload를 수행하면 에러가 발생한다.
코드까지 있는 예시를 원한다면,
https://medium.com/podiihq/understanding-hot-reload-in-flutter-2dc28b317036 이 포스팅을 참고하면 좋을 것 같다!
공식 영상과 미디엄 포스팅을 통해 매우 빨리 hot reload를 이해해 보았다.
Spring에서 코드를 바꾸고 통테를 하려면 모든 걸 올려야 하기 때문에 정말 시간이 오래 걸린다. 이러한 단점을 파괴하는 놀라운 기술인 것 같다.
참고
https://youtu.be/sgPQklGe2K8?si=ijcz4DQBT8rC7Hzm
https://medium.com/podiihq/understanding-hot-reload-in-flutter-2dc28b317036