category
취준/면접준비💪
2025. 3. 17. 12:56
by chengzior
숙련
- Flutter 앱 개발에서 ‘상태’란 무엇을 의미하나요?
- 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에서 네이티브 코드와 연동하는 방법에 대해 설명해보세요.