인프런 커뮤니티 질문&답변

안일호님의 프로필 이미지
안일호

작성한 질문수

처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)

바로 만들어보기: 이미지 갤러리 화면 구성하기2

dispose() 관련 질문 있습니다~

해결된 질문

작성

·

352

0

바로 만들어보기: 이미지 갤러리 화면 구성하기2

강의 12:04~12:22, 해당 코드 기반 질문입니다!

 

Q1. "이 클래스(MyHomePage)가 사라지면" 이라는 설명이 있는데, 앱 종료시 이외에 이 클래스가 사라지는 시점은 언제언제인가요?!

 

Q2. 반대로, 위 클래스의 인스턴스(?)가 생성되는 시점은 홈 화면에 접속할 때마다 인가요?.?

답변 1

1

안녕하세요. 답변 도우미입니다.

Flutter에서 클래스의 인스턴스가 생성되거나 사라지는 것은 해당 위젯의 생명 주기(lifecycle)와 관련이 있습니다.

Q1. 클래스가 사라지는 시점은 위젯이 화면에서 제거되는 시점을 의미합니다. 이는 다양한 경우에 발생할 수 있습니다:

  • 앱이 종료될 때

  • Navigator를 통해 다른 페이지로 이동하였을 때 (push, pop)

  • 부모 위젯이 rebuild될 때, 그 하위에 있는 위젯의 상태에 변화가 필요하다고 판단되면 부모 위젯은 해당 위젯을 제거하고 새로운 위젯을 만들 수 있습니다.

Q2. 클래스 인스턴스가 생성되는 시점은 홈 화면에 접속할 때마다 일 수도 있고 그렇지 않을 수도 있습니다. 이는 앱의 동작 방식과 상황에 따라 다를 수 있습니다. 통상적으로는 말씀하신 바가 맞습니다.

다만, 더 다양한 시나리오에서는 다양한 시점이 될 수도 있습니다. 예를 들어, Navigator를 사용하여 홈 화면으로 다시 돌아왔을 때, 홈 화면 위젯이 메모리에 유지되는지 (즉, 기존 인스턴스를 계속 사용하는지) 아니면 새 인스턴스를 만드는지는 구현에 따라 달라집니다. MaterialApp의 home 프로퍼티에 할당된 위젯 같은 경우에는 앱이 실행될 때 한 번만 생성됩니다.

감사합니다.

안일호님의 프로필 이미지
안일호

작성한 질문수

질문하기