모바일 개발 · 기초
Flutter에서 `BuildContext`는 무엇이며, 어떤 용도로 사용되는지 구체적인 예시와 함께 설명해주세요.
힌트 · `BuildContext`는 위젯 트리의 특정 위젯 위치에 대한 핸들로, 위젯 트리 상위의 데이터나 서비스(예: Theme, MediaQuery)에 접근할 때 사용됩니다.
위젯 트리상태 관리BuildContext부모 위젯의존성 주입
모범답안
면접관님, BuildContext는 Flutter에서 위젯 트리의 특정 위치를 나타내는 핸들입니다. 쉽게 말해, 위젯이 자신을 둘러싼 환경에 접근할 수 있도록 도와주는 '맥락'이라고 생각하면 됩니다.
주로 위젯 트리 상위의 데이터나 서비스에 접근할 때 사용하는데요, 예를 들어 Theme.of(context)를 사용하면 현재 앱의 테마 정보에 접근할 수 있고, MediaQuery.of(context)를 사용하면 화면 크기나 방향과 같은 미디어 쿼리 정보에 접근할 수 있습니다.
또 다른 예시로는 Navigator.of(context)를 사용하여 화면을 이동하거나, Provider를 통해 상태 관리를 할 때도 BuildContext를 통해 필요한 데이터에 접근할 수 있습니다. 위젯이 속한 트리의 정보를 활용하여 다양한 기능을 수행할 수 있도록 하는 중요한 요소입니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Flutter / Dart 면접 질문
- StatefulWidget의 주요 생명주기 메서드들을 나열하고, 각 메서드가 어떤 시점에 호출되며 어떤 역할을 하는지 설명해주세요.
- Flutter 개발 시 'Hot Reload'와 'Hot Restart'는 각각 어떤 기능이며, 두 기능의 주요 차이점은 무엇인가요?
- Flutter 프로젝트에서 `pubspec.yaml` 파일의 역할은 무엇이며, 주로 어떤 정보를 관리하는 데 사용되나요?
- Flutter에서 Widget Tree와 Element Tree는 어떤 관계를 가지며, 각각의 주요 역할은 무엇인지 설명해주세요. 특히, 두 트리가 존재하는 이유와 동작 원리에 대해 구체적인 예를 들어 설명해주세요.
- Flutter에서 `Provider`와 `BLoC/Riverpod`과 같은 상태 관리 솔루션들의 주요 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적합하다고 생각하시나요? 실제 프로젝트 경험을 바탕으로 비교 설명해주세요.
- Flutter의 `InheritedWidget`이 어떻게 작동하는지 설명하고, 상태 관리 패턴에서 어떤 역할을 수행할 수 있는지 구체적인 사용 사례와 함께 설명해주세요.