패스잇
모바일 개발 · 중급

Flutter에서 Widget Tree와 Element Tree는 어떤 관계를 가지며, 각각의 주요 역할은 무엇인지 설명해주세요. 특히, 두 트리가 존재하는 이유와 동작 원리에 대해 구체적인 예를 들어 설명해주세요.

힌트 · Widget은 설정 정보를 담고, Element는 위젯의 실제 인스턴스를 관리하며 렌더링 파이프라인의 핵심입니다. 두 트리는 효율적인 UI 업데이트와 변경 감지를 위해 존재합니다.

WidgetElementBuildContextRebuild상태 관리

모범답안

면접관님, Flutter에서 Widget Tree와 Element Tree는 UI를 구성하는 핵심적인 부분입니다.

Widget Tree는 UI의 구조와 설정을 담고 있는 일종의 청사진이라고 생각하시면 됩니다. Widget은 불변 객체이기 때문에 UI가 변경될 때마다 새로운 Widget이 생성됩니다.

Element Tree는 Widget Tree를 기반으로 실제로 화면에 렌더링되는 객체들의 트리입니다. Element는 Widget의 인스턴스를 관리하고, 렌더링 파이프라인에 참여하여 화면에 그리는 역할을 합니다.

두 트리가 존재하는 이유는 효율적인 UI 업데이트 때문입니다. 예를 들어, 버튼의 텍스트만 변경된다면, Widget Tree에서는 해당 버튼 Widget만 새로 생성되고, Element Tree에서는 해당 Element만 업데이트됩니다. 전체 UI를 다시 그리는 것이 아니라 변경된 부분만 업데이트하기 때문에 성능을 향상시킬 수 있습니다. Element는 Widget의 변경 사항을 감지하고 필요한 부분만 다시 빌드하는 역할을 합니다.

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

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

함께 보는 Flutter / Dart 면접 질문

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