플러터(Flutter)란?
![](https://blog.kakaocdn.net/dn/MLzUR/btskIP6s38F/8uroQDpxXbZEYqye0xCP8K/img.png)
플러터는 구글에서 개발한 오픈 소스로 공개한 프레임워크입니다.
웹 앱, 데스크톱 앱부터 안드로이드 앱, iOS앱까지 플러터 하나로 만들 수 있습니다.
크로스 플랫폼 개발의 지원이 매우 강점이며, 향후 앱 개발에서 주목받고 있는 프레임워크입니다.
플러터는 Dart라는 구글의 프로그래밍 언어를 사용합니다.
'모든 것이 위젯이다'
플러터는 위젯이라는 작은 요소를 조합하여 모바일 UI를 만듭니다.
위젯은 dart언어의 클래스 중 하나입니다.
다른 객체도 존재하지만, 대부분의 앱 개발에서는 위젯만을 사용합니다.
위젯은 두 가지가 있습니다:
StatelessWidget : 상태가 없는 위젯이러한 위젯들로 트리를 구성하여 앱을 만듭니다.
![](https://blog.kakaocdn.net/dn/b78qXI/btskKCEZjrI/43zGb47R8YFkEenILTBogK/img.png)
플러터 앱의 위젯 트리 예시 중 하나입니다.(실제 스토어에 있는 앱들은 규모가 어마어마합니다)
외부에서 새 정보를 받으면 이에 반응하여, StatefulWidget이 변경되어 플러터가 새로운 위젯을 다시 그립니다.
플러터는 빠른 속도로 앱의 위젯 트리를 여러 번 재생성합니다.
처음 트리와 위젯을 생성할 때, 이를 ‘빌드(build)’라고 하고,
변경되어 새로운 위젯을 그릴 때에는 ‘리빌드’한다고 합니다.
플러터의 내부 동작 과정 🏗️
1. 위젯 트리와 레이아웃의 조립