하시는 일 잘되시길 바랍니다.
Q. 플러터의 장점이 무엇인가요 ?
A. 개발에 필요한 코드량이 줄어듭니다.
- 플러터에서는 바로 사용할 수 있는 다양한 위젯은 제공합니다. 그리고 이 위젯들은 사용자가 자유롭게 커스터마이징을 쉽게 할 수 있어서 다른 프레임워크와 달리 현저히 적은 코드로 개발을 할 수 있습니다. 이로 인해 개발 시간도 절약할 수 있습니다.
ex) 안드로이드에서 리스트뷰를 띄우기 위해서는 어댑터, 뷰홀더, 모델, 레이아웃 매니저 등 을 사용해야 리스트를 띄울 수 있습니다.
하지만 플러터에서는 간단한게 ListView위젯을 사용하면 리스트를 띄울 수 있습니다.
A. 크로스 플랫폼 개발이 가능합니다.
- 플러터를 사용하면 여러 플랫폼에서 실행되는 코드를 작성하고 관리할 수 있습니다. 개발자는 다양한 플랫폼을 배우는 시간, 비용, 노력을 절감할 수 있습니다.
A. 핫 리로드 기능을 제공합니다.
- 개발자가 코드를 수정하면 핫 리로드 기능으로 변경 사항을 즉시 확인할 수 있어 앱 개발 프로세스가 간단하고 빨라집니다.
A. 네이티브 앱과 비슷한 성능을 제공합니다.
- 다른 크로스 플랫폼과 달리 플러터는 IC(중간코드)와 해석에 의존하지 않습니다. 플러터는 기계코드에 직접 내장 되어 해석 프로세스와 관련된 성능문제를 제거 합니다.
A. 다양하고 유연한 UI를 만들 수 있습니다.- Flutter는 사용자가 자유롭게 커스터마이징 할 수 있는 디자인, 표현력 있는 UI 및 빠른 렌더링을 허용하는 사용자 정의 가능한 계층화된 아키텍처를 제공합니다.
Q. 플러터의 단점은 무엇인가요 ?
A. 타사 라이브러리가 적고, Flutter의 일부 위젯은 하나의 플랫폼에서만 동작합니다.
A. 릴리즈 사이즈가 큽니다.
A. 많이 사용되지 않는 다트 언어를 사용합니다.
A. 3D 모델링, Uniy 통합 및 게임 엔진이 부족해 대부분의 광고 모바일 플랫폼도 지원하지 않습니다.
Q. 플러터의 빌드모드에는 무엇이 있나요?
A. 플러터의 기능을 사용해서 개발단계에 따라 3가지의 모드로 코드를 컴파일 할 수 있습니다.
- Debug Mode : Hot Reload 기능을 제공하는 모드
- Profile Mode : 성능을 분석할 때 사용하는 모드
- Release Mode : 앱을 최적화 시키고 작은 크기로 만드는 모드
Q. 플러터에서 위젯은 무엇인가요 ?
A. 플러터에서 위젯이란 사용자에게 보이는 인터페이스를 결정하는 부품입니다. 위젯의 조합으로 다양한 UI를 보여줄 수 있습니다. 화면에 보이거나 보이지 않는 부분도 모두 위젯으로 이루어져 있기 때문에 굉장히 중요합니다.
Q. 위젯의 타입에는 무엇이 있나요 ?
A. 위젯 타입은 대표적으로 두 가지로 나뉩니다.
- StatelessWidget : 이름 그대로 상태가 없는 위젯입니다. 상태가 없어 사용자의 이벤트 등으로 인해서 바뀌는 게 없기에 화면의 변화가 이루어지지 않습니다. 정적인 화면을 보여줄 때 사용하는 위젯입니다.
- StatefulWidget : 상태가 있는 위젯입니다. 사용자의 이벤트나 데이터 변경을 모니터링하다가 UI를 업데이트할 수 있습니다.동적인 화면을 보여줄 때 사용하는 위젯입니다.
Q. main() 과 runApp()의 차이점이 무엇인가요 ?
A.
- main() : 프로그램의 시작점입니다. Flutter는 해당 함수 없이 실행할 수 없습니다.
- runApp() : 앱 위젯 트리의 루트로 사용될 최상위 위젯을 받아 화면에 보여주는 함수입니다.
Q. 플러터에서 패키지와 플러그인은 무엇인가요 ?
A. 사용자 간에 쉽게 공유할 수 있는 모듈식 코드를 생성할 수 있는 클래스, 인터페이스 및 하위 패키지의 모음입니다. 개발에 필요한 위젯이나 화면을 직접 구현할 필요 없이 패키지와 플러그인을 사용해 가져와서 손쉽게 사용할 수 있습니다. 패키지와 플러그인에 차이점은 패키지는 순수 dart언어로 만 구현된 코드를 패키지라 부르고 플러그인은 다른 언어가 포함된 코드를 플러그인라고 부릅니다.
Q. 플러터의 Key는 무엇인가요 ?
A. Key는 주로 ElementTree 가 WidgetTree의 Widget을 식별할 때 사용됩니다. 위젯 트리에서 위젯이 움직일 때마다 현상태를 보존하는 역할을 합니다. Local Key 와 Global Key로 나뉘고 Local Key는 위젯 트리에서 특정 레벨에서 구별할 수 있는 Key이고 Global Key는 앱 어디에서든 사용할 수 있는 고유 Key입니다.
Q. 플러터에서 Container 클래스는 무엇인가요 ?
A. Container 클래스는 여러 다른 위젯을 담아서 크기, 패딩, 배경 등 다양한 설정을 할 수 있는 위젯 입니다. Container를 상자로 비유해서 상자에 여러 위젯들을 담아서 어떻게 안에 담긴 위젯들을 보여줄지 상자를 꾸민다고 생각하면 됩니다.
Q. Container 와 SizedBox의 차이점은 무엇인가요 ?
A. 기본적으로 Container와 SizedBox 둘 다 다른 위젯들을 담을 수 있고 Width, Height으로 크기를 설정할 수 있습니다. 차이점은 SizedBox는 앞서 말한 것들만 할 수 있습니다. 그래서 SizedBox는 위젯을 담고 크기를 변경하거나 배치를 변경할 때 사용하고 그 외꾸미기 기능들까지 사용하려면 Container를 사용해야 하는 것이 차이점입니다.
Q. 플러터는 오픈소스인가요 ?
A. 플러터는 개발자가 크로스 플랫폼 모바일 앱 및 다양한 플랫폼을 쉽게 개발할 수 있도록 구글에서 제공하는 무료 오픈소스입니다.
Q. Mixins 용도는 무엇인가요 ?
A. Dart는 기본적으로 다중 상속을 지원하지 않습니다. 그래서 다중 상속이 필요하다면 Mixins를 사용해서 다중 상속을 구현해야 합니다.
'Flutter > 기본' 카테고리의 다른 글
[Flutter] TextFormField 텍스트 밑줄 제거 (0) | 2023.03.17 |
---|---|
[Flutter] StreamSubscription 그리고 listen (0) | 2023.02.12 |
[Flutter] Key 란 무엇인가? (0) | 2023.02.09 |
[Flutter] Widget Tree / Tree 란 무엇인가? (0) | 2023.02.09 |
[Flutter] StateNotifier 란? (1) (1) | 2023.01.31 |