본문으로 바로가기

[Flutter] 기초 이론 질문 모음

category 취준/면접준비💪 2025. 3. 17. 12:56

숙련

  • Flutter 앱 개발에서 ‘상태’란 무엇을 의미하나요?
    • 상태란 UI에 영향을 미치는 데이터를 의미
  • ListView, ListView.builder, SingleChildScrollView + Column 3가지의 차이점은 무엇인가요?
    • 리스트뷰 
      • 고정된 리스트 아이템을 직접 정의
      • 전체 리스트 아이템을 한 번에 메모리에 로드
      • 아이템 개수가 적을 때 유리
    • 리스트뷰 빌더 
      • 동적생성
      • 데이터 개수가 많을 때 유리
      • itemBuilder를 통해 요청된 인덱스에 해당하는 아이템을 반환
      • 스크롤할 때 필요한 아이템만 빌드
    • 싱글 차일드 스크롤 뷰 + 컬럼 :
      • 스크롤 가능한 컨테이너에 여러 위젯을 넣고 싶을 때 사용
      • 모든 위젯을 한 번에 로드
  • Flutter에서 상수 클래스란 무엇이며 왜 사용하나요?
    • 변경되지 않는 값들을 정의해두는 클래스
    • 코드의 재사용성
    • 유지보수 용이
    • 효율적인 메모리 관리 
      • const 키워드를 사용하면 컴파일 타임에 상수가 결정되어 메모리를 절약할 수 있음
      • static을 사용하면 클래스 인스턴스를 생성하지 않고 직접 접근 가능하여 성능 향상
  • Riverpod 상태관리 패턴의 특징은 무엇인가요?
    • Riverpod은 Flutter의 Provider 패턴을 개선한 상태 관리 라이브러리
    • 의존성 관리, 상태 추적, 최적화 등이 자동으로 이루어지며, 기존 Provider보다 더 안전하고 간결한 코드 작성이 가능
    • BuildContext 없이 상태를 읽고 수정 가능
    • 전역적으로 상태를 선언하고 어디서든 접근 가능
    • ProviderScope를 통해 앱 전역에서 상태를 쉽게 공유할 수 있음
    • 비동기 데이터 처리를 쉽게 관리할 수 있도록 FutureProvider, StreamProvider를 기본 제공
    • StateProvider는 단순한 상태 관리에 적합하지만 복잡한 비즈니스 로직이 필요한 경우 StateNotifierProvider를 사용하는 것이 좋음
  • Riverpod 상태관리와 provider 상태관리의 차이는 무엇인가요?
    • riverpod :
      • provider scope 하나로 관리 가능
      • ref.watch 등으로 자동 의존성 추론
      • Future, Stream 제공
      • stateProvider, Provider, stateNotifierProvider 사용
    • provider :
      • MultiProvider 필요 -> ?
      • consumer 사용시 부분 리빌드 가능하나 최적화 필요
      • 의존성 직접 관리 해야함
      • context.watch() 등 사용
  • ViewModel의 역할은 무엇인가요?
    • 앱의 UI (View)와 데이터 (Model) 사이에서 중간 역할
  • MVVM 패턴이란 무엇인가요?
    • UI와 비즈니스 로직을 분리하는 아키텍처 패턴
  • MVVM 패턴의 특징과 장점은 무엇인가요?
    • Model
      • 애플리케이션의 데이터 및 비즈니스 로직 담당
      • API 호출, 데이터 베이스 처리
    • View
      • UI 표시하는 역할
      • 뷰모델에서 제공하는 데이터만 사용
    • ViewModel
      • view와 model을 연결하는 중간 계층
      • UI 관련 데이터 보관하고 비즈니스 로직 처리
      • view가 model을 호출하지 않도록 함
  • MVVM 패턴과 StatefulWidget의 차이점을 설명하세요.
    • MVVM 패턴은 UI와 Model을 분리하여 관히라는 아키텍쳐 패턴, 뷰모델로 상태관리하고 UI가 이를 감시,
      UI와 로직 분리되어 유지보수 및 테스트 용이
    • statefulWidget은 UI 상태를 저장하고 변경, setState()를 사용해 UI 업데이트, 
      복잡한 앱에서는 유지보수 어려울 수 있음, 단위 테스트 어려움
  • Flutter에서 위젯트리란 무엇인가요?
    • Flutter 앱에서 위젯들이 계층적으로 구성된 구조
  • 위젯이 화면에 그려지기까지의 과정을 설명해보세요.
    • Widget Tree → Element Tree → Render Tree
      • 위젯은 Flutter에서 UI를 구성하는 기본 단위 
      • Element는 위젯의 실제 위치와 생명주기를 관리하는 객체
        • 위젯이 생성될 때, 각 위젯에 대한 Element가 생성되며 Element 트리를 구성
      • Render Tree는 실제 UI를 그리는 정보를 관리하는 트리
      • Render Tree 정보를 바탕으로, Flutter 엔진이 GPU를 통해 UI를 그림
  • Flutter에서 BuildContext 란 무엇인지 예시를 들어 설명해보세요.
    • BuildContext Flutter에서 위젯 트리 내에서 현재 위젯의 위치를 나타내는 객체
    • 부모 위젯 데이터에 접근
    • 네비게이션에서 사용
    • context를 잘못된 위치에서 사용하면 에러 발생
      • build() 중간에서 context를 사용하면 에러 발생 가능

심화

  • 애니메이션 속성 중 curve 와 duration 에 대해 설명하세요.
  • 암시적 애니메이션과 명시적 애니메이션의 차이는 무엇인가요?
  • Flutter에서 스로틀링은 무엇인가요? 예를 들어 설명하세요.
  • Flutter에서 디바운싱은 무엇인가요? 예를 들어 설명하세요.
  • Flutter에서 무한 스크롤을 구현하는 방법은 무엇인가요?
  • Flutter에서 당겨서 새로고침 기능을 구현하는 방법은 무엇인가요?
  • 디자이너와의 협업 과정에서 테마 커스터마이징은 활용한 적이 있나요? 있다면 예시를 들어 설명하세요.
  • Flutter에서 네이티브 기능과 연결하기 위해 패키지를 사용한 경험이 있나요? 있다면 예시를 들어 설명하세요.
  • StatefulWidget의 생명주기에 대해 설명하세요.
  • StatefulWidget에서 didUpdateWidget은 어떤 상황에서 사용하나요?
  • Flutter에서 Isolate란 무엇인가요?
  • Clean Architecture란 무엇인가요? Flutter에서 사용할 수 있는 예시와 함께 설명하세요.
  • Clean Architecture를 사용하는 이유는 무엇인가요?
  • Flutter에서 비동기 처리를 하는 방법에 대해 설명해보세요.
  • Isolate와 스레드의 차이는 무엇인가요?
  • Isolate와 Future의 차이는 무엇인가요?
  • 이벤트 루프란 무엇인가요?
  • Flutter에서 AOT와 JIT 컴파일러란 무엇인가요? 어떤 상황에서 주로 사용하나요?
  • AOT와 JIT 컴파일러는 서로 어떤 차이점이 있는지 설명해보세요.
  • StatefulWidget 과 StatelessWidget 의 차이는 무엇인가요?
  • Flutter에서 무한 스크롤, 당겨서 새로고침 기능을 사용하는 이유는 무엇인가요?
  • Flutter에서 네이티브 코드와 연동하는 방법에 대해 설명해보세요.

'취준 > 면접준비💪' 카테고리의 다른 글

[CS] CS 관련 질문 모음  (0) 2025.03.17
[Flutter] 의존성 주입  (0) 2025.02.28