모바일 개발 · 중급
Flutter의 `InheritedWidget`이 어떻게 작동하는지 설명하고, 상태 관리 패턴에서 어떤 역할을 수행할 수 있는지 구체적인 사용 사례와 함께 설명해주세요.
힌트 · InheritedWidget은 위젯 트리를 통해 하위 위젯에 데이터를 효율적으로 전달하는 메커니즘을 제공합니다. 이는 Provider와 같은 상태 관리 패키지의 기반이 되며, 특정 데이터나 서비스를 전역적으로 공유할 때 유용합니다.
InheritedWidgetBuildContext상태전파Provider의존성 주입
모범답안
네, Flutter의 InheritedWidget에 대해 설명드리겠습니다.
InheritedWidget은 위젯 트리의 하위 위젯들에게 데이터를 효율적으로 전달하는 메커니즘입니다. 쉽게 말해, 위젯 트리의 상위에서 정의된 데이터를 하위 위젯들이 BuildContext를 통해 접근할 수 있도록 해줍니다.
상태 관리 패턴에서 InheritedWidget은 전역적으로 접근해야 하는 데이터를 공유하는 데 사용될 수 있습니다. 예를 들어, 앱의 테마 정보나 사용자 인증 정보 등을 InheritedWidget으로 감싸면, 앱 내의 모든 위젯이 쉽게 해당 정보에 접근하고 변경 사항을 반영할 수 있습니다.
Provider 패키지가 InheritedWidget을 기반으로 만들어졌으며, 의존성 주입을 통해 위젯 간 결합도를 낮추고 재사용성을 높이는 데 기여합니다. 간단한 앱 설정이나 테마 변경과 같이 앱 전체에 영향을 주는 상태를 관리할 때 유용하게 사용할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Flutter / Dart 면접 질문
- Flutter에서 `BuildContext`는 무엇이며, 어떤 용도로 사용되는지 구체적인 예시와 함께 설명해주세요.
- Flutter에서 Widget Tree와 Element Tree는 어떤 관계를 가지며, 각각의 주요 역할은 무엇인지 설명해주세요. 특히, 두 트리가 존재하는 이유와 동작 원리에 대해 구체적인 예를 들어 설명해주세요.
- Flutter에서 `Provider`와 `BLoC/Riverpod`과 같은 상태 관리 솔루션들의 주요 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적합하다고 생각하시나요? 실제 프로젝트 경험을 바탕으로 비교 설명해주세요.
- Flutter에서 `Key`의 필요성과 중요성에 대해 설명하고, `ValueKey`, `ObjectKey`, `GlobalKey` 각각의 사용 시나리오와 차이점을 예시와 함께 설명해주세요.
- Flutter에서 `StatefulWidget`과 `StatelessWidget`의 생명 주기(Lifecycle)를 비교 설명하고, 각 단계에서 어떤 작업들을 수행할 수 있는지 설명해주세요.
- Flutter 애플리케이션의 성능을 최적화하기 위한 방법들을 3가지 이상 제시하고, 각각의 방법이 어떤 원리로 성능 향상에 기여하는지 설명해주세요.