면접 준비 25.02.18

2025. 2. 18. 15:21
  • StatefulWidget의 생명주기에 대해 설명하세요.
    • 위젯 구축
      • createState() : StatefulWidget을 사용할 때 가장 먼저 호출된다.
      • initState() : 위젯이 생성될때 호출되는 메서드로 한번만 호출된다.
      • didChangeDependencies() : initState 다음으로 바로 호출 되며 위젯이 의존하는 데이터의 객체가 호출될때마다 호출된다.
    • 재 드로잉
      • dirtry : 화면의 다시 빌드를 해야하는 상태
      • didUpdateWidget() : 위젯이 변경될때 마다 호출되어 다시 build를 진행한다.(새로운 화면)
      • build() : 위젯을 반환하고 반환된 위젯이 랜더링 되어 화면에 표시된다.
      • setState() : 객체의 상태가 변경되었음을 프레임워트에 알린다.(기본화면의 변화)
      • clean : state에 의해 화면이 정상출력되고 있는 상태
    • 위젯 파기
      • deactivate() : state object가 트리에서 삭제될때 호출, 메모리에는 남아있음
      • dispose() : state object가 완전히 삭제됨

 

  • StatefulWidget에서 didUpdateWidget은 어떤 상황에서 사용하나요?
    • 부모 위젯의 변경을 감지해서 자식 위젯을 변경해야하는 경우에 사용한다.

 

  • Clean Architecture란 무엇인가요? Flutter에서 사용할 수 있는 예시와 함께 설명하세요.
    • Clean Architecture란 소프트웨어 디자인 패턴 중 하나입니다. 디자인 계층, 도메인 계층, 데이터 계층으로 나누고 

 

  • Clean Architecture를 사용하는 이유는 무엇인가요?
    • 디자인 계층, 도메인 계층, 데이터 계층으로 나누고 한 방향으로만 의존성이 생기게 하면서 결합도를 낮추고 다른 계층에 끼치는 영향을 최소화합니다. 그러면 각계층을 독립적으로 테스트가 가능하고, 유지보수에 유리해지는 장점이 있습니다.

 

  • 이벤트 루프란 무엇인가요?
    • 이벤트나 작업을 관리하고 하나의 작업이 완료되면 다음 작업을 실행하는 역할을 하는 프로그래밍 구조

 

  • Flutter에서 AOT와 JIT 컴파일러란 무엇인가요? 어떤 상황에서 주로 사용하나요?
    • AOT(Ahead Of Time) : 실행 이전에 컴파일을 완료한 뒤 기계어를 전달하는 컴파일러. 실행전에 코드 전체를 컴파일 하기 때문에 실행 속도가 빠르지만 설치 속도가 느리다. 배포 시에 사용하여 런타임 실행 성능을 확보한다.
    • JIT(Just In Time) : 실행 직전(런타임)에 소스코드를 네이티브 기계어로 컴파일을 수행한다. 실시간으로 기계어로 컴파일을 변환하여 효율적인 실행이 가능하다. 개발도중 코드를 수정해도 Hot-Reload가 가능해서 바로 결과를 볼 수 있다. 설치가 빠르다. 실시간으로 컴파일을 하다보니 실행 성능이 비교적 낮다. 개발 중에 사용하여 실시간으로 수정사항을 확인할 수 있다.

 

  • StatefulWidget 과 StatelessWidget 의 차이는 무엇인가요?
    • StatefulWidget은 상태를 변화를 감지하여 변경된 상태에 따라서 위젯을 변경할 수 있어 동적인 UI를 표현할 수있다. 
    • StatelessWidget은 상태의 변화를 표현할 수 없고 정적인 UI만 표현할 수 있다.

 

  • Flutter에서 무한 스크롤, 당겨서 새로고침 기능을 사용하는 이유는 무엇인가요?
    • 무한 스크롤은 많은 데이터를 한번에 불러오지 않고 요청하는 만큼의 데이터만 가져오기 때문에 메모리를 절약하고 효율을 높일 수 있다.
    • 새로고침은 화면의 refresh하는 방법중하나로 사용자가 원할때 정보를 새롭게 업데이트 할 수 있습니다.

'Flutter' 카테고리의 다른 글

면접 준비 25.02.14  (0) 2025.02.14
면접 준비 25.02.10  (0) 2025.02.10
SharedPreferences 사용법  (0) 2025.02.06
폰트 적용  (0) 2025.02.06
flutter Statefulwigets 생명주기  (0) 2025.01.15

BELATED ARTICLES

more