TIL

TIL (24.10.25)

hamiric 2024. 10. 25. 12:40

오늘의 5가지 질문 ( 어디선가 찾아온 질문들 )

플러터 기술면접 문제

 

1. StatelessWidget 과 StatefulWidget 의 차이점에 대해 설명하라.

StatelessWidget은 말 그대로 상태가 없는 위젯이다. 즉, 한번 생성되어 변화가 없는 위젯를 만들때 사용된다. 상태 변화가 없기 때문에 build 메서드가 한번만 호출된다는 특징이 있다.

StatefulWidget은 상태가 존재하는 위젯이다. 사용자의 상호작용이나 데이터 변화에 따라 상태가 변할 수 있다. 그러므로, build 메서드가 여러번 호출되어 화면이 갱신될 수 있다는 특징이 있다.

 

2. BuildContext 가 무엇인가?

BuildContext는 위젯 트리에서 특정 위젯의 위치를 나타내는 객체이다. 위젯 트리에서 상위 위젯에 접근하거나, 위젯의 부모, 자식과의 상호작용을 할 때 주로 사용된다.

 

3. Future 이랑 Stream 이랑 공통점과 차이점에 대해 설명하시오.

 

  • 공통점: 둘 다 비동기 작업을 처리하는 방식이다. 비 동기 작업이란, 어떠한 작업이 나중에 실행될 것임을 나타낸다.
  • 차이점: Future는 단 한 번의 비동기 작업 결과를 제공한다. 즉, 비동기 작업이 완료되면 하나의 값이나 에러를 반환하게 된다. 반면 Stream은 여러 번의 비동기 작업 결과를 제공하므로써, 시간이 지남에 따라 여러 값들을 차례로 반환 받을 수 있다.

 

4. StatefulWidget 이 가지는 State 생명주기에 대해 최대한 자세히 설명하시오.

StatefulWidget의 상태(State)는 다음과 같은 생명주기를 가진다

  1. createState: 위젯이 처음 생성될 때 호출되어 위젯의 상태를 설정하는 단계.
  2. initState: 상태 객체가 생성된 후 처음으로 호출되는 메서드로, 초기화 작업을 수행할 때 사용.
  3. didChangeDependencies: 위젯의 종속성이 변경되면 호출. 예를 들어, 상위 위젯이 변경되거나 종속된 객체가 변경되었을 때 호출.
  4. build: UI를 그리는 메서드로, 상태가 변할 때마다 호출. 위젯을 화면에 그리기 위한 모든 렌더링 작업이 여기서 이루어짐.
  5. setState: 상태가 변경되었음을 Flutter에 알리고, 그에 따라 build 메서드가 다시 호출되어 UI가 업데이트.
  6. deactivate: 위젯이 트리에서 제거될 때 호출. 하지만 객체가 곧 다시 삽입될 가능성이 있다.
  7. dispose: 위젯이 완전히 트리에서 제거되기 전에 호출되며, 리소스 해제 등의 작업을 처리한다.

 

5. SetState가 호출되었을때 어떤 일이 발생하는지 설명하시오.

SetState가 호출되면, Flutter는 상호작용 or 데이터 변경이 이루어졌음을 인식하고 build 메서드를 재 호출하여 UI를 업데이트한다. 즉, 상태 변화에 맞춰 화면을 다시 렌더링하여 사용자가 볼 수 있도록 변경된 UI를 반영하게 된다.

 

'TIL' 카테고리의 다른 글

TIL - Flutter / Mac OS 작업환경 설정  (0) 2024.10.30
TIL - 콘솔 쇼핑몰 (24.10.29)  (0) 2024.10.29
온보딩 프로젝트(24.10.24)  (0) 2024.10.24
온보딩 프로젝트 (24.10.23)  (0) 2024.10.23
온보딩 프로젝트 (24.10.21)  (0) 2024.10.21