패스잇
모바일 개발 · 중급

Flutter에서 `Key`의 필요성과 중요성에 대해 설명하고, `ValueKey`, `ObjectKey`, `GlobalKey` 각각의 사용 시나리오와 차이점을 예시와 함께 설명해주세요.

힌트 · Key는 위젯 트리 내에서 동일 타입의 위젯들을 고유하게 식별하여 상태를 보존하고 효율적인 업데이트를 가능하게 합니다. 리스트 아이템의 순서 변경이나 동적 위젯 추가/삭제 시 특히 중요합니다.

위젯 식별상태 유지효율적인 업데이트ValueKeyGlobalKey

모범답안

Flutter에서 Key는 위젯 트리의 위젯을 고유하게 식별하는 데 사용됩니다. 특히 동일한 타입의 위젯이 여러 개 있을 때, Flutter가 위젯 트리를 효율적으로 업데이트하고 상태를 유지하도록 돕습니다. 예를 들어, 리스트 아이템의 순서가 변경될 때 Key가 없으면 Flutter는 위젯을 재사용하는 대신 새로 생성할 수 있습니다.

ValueKey는 위젯의 값을 기반으로 식별할 때 사용합니다. 예를 들어, 리스트 아이템의 데이터 자체를 키로 사용할 수 있습니다. ObjectKey는 특정 객체를 키로 사용하며, 객체의 동일성을 기준으로 위젯을 식별합니다. GlobalKey는 앱 전체에서 위젯의 상태에 접근해야 할 때 사용됩니다. 예를 들어, 폼의 상태를 다른 화면에서 접근하거나, 위젯의 크기나 위치 정보를 얻을 때 유용합니다. GlobalKey는 사용 빈도를 최소화하는 것이 좋습니다. 왜냐하면 위젯 트리의 구조를 변경할 수 있기 때문입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Flutter / Dart 면접 질문

← Flutter / Dart 면접 질문 전체 보기