Flutter 용어·함수·개념

김동연·2026년 4월 3일

개발기록일지(Flutter)

목록 보기
29/32

1. Dart 언어 쪽

용어무엇인지 (한 줄)
void main()프로그램 진입점. 여기서 runApp 호출
import다른 파일·패키지의 코드를 가져옴
package:...pubspec.yaml에 선언된 패키지 경로
const컴파일 타임 상수. 위젯 트리 최적화에 자주 사용
final한 번만 할당되는 변수
var / 타입 명시변수 선언 방식
?, !, ??null 안전: nullable, 강제 언랩, null일 때 대체값
required이름 있는 인자를 필수로 지정
super부모 클래스 생성자·멤버 호출
super.key위젯의 key를 부모 Widget 생성자로 전달
@override부모에 정의된 메서드를 여기서 구현한다는 표시
=> 표현식 본문한 줄짜리 함수 축약 (() => 값)
async / await비동기: 나중에 결과 받기
Future“미래에 한 번 끝나는 작업”
Stream“시간에 따라 여러 번 오는 데이터”
class / extends / implements클래스, 상속, 인터페이스 구현
mixin여러 클래스에 기능을 섞는 방식
enum고정된 값 나열형

2. Flutter 전체 구조

용어무엇인지
위젯(Widget)UI를 만드는 불변(immutable) 설정 객체. 화면의 한 덩어리
Element위젯이 트리에 실제로 붙은 인스턴스(내부 동작). 직접 다루는 일은 적음
RenderObject실제 크기·그리기·히트 테스트(터치). 레이아웃의 밑단
build“지금 이 위젯의 자식 위젯 트리를 만든다”는 함수
BuildContext위젯 트리에서 “내 위치”를 가리키는 핸들. Theme.of(context) 등에 사용
runApp루트 위젯을 붙여서 앱 시작
프레임한 번 화면을 그리는 단위. 60fps면 초당 60프레임

3. 위젯 종류 이름

용어무엇인지
StatelessWidget내부 상태 없음. 부모가 다시 그리면 같이 다시 그려짐
StatefulWidgetState 객체에 상태를 두고 setState로 다시 그림
State\<T>StatefulWidget의 mutable 로직·상태가 들어가는 클래스
setState“상태 바뀜 → 이 State의 build 다시 호출”
Key위젯 식별·리스트에서 순서 바뀔 때 동일 항목 매칭 (ValueKey, ObjectKey 등)
InheritedWidget트리 아래로 데이터를 효율적으로 내려보냄. Theme 등이 이 패턴

4. 자주 쓰는 위젯·레이아웃

용어무엇인지
child자식 하나
children자식 여러 개(리스트)
Container크기·색·패딩·데코레이션 등을 한 번에 쓰기 쉬운 박스
SizedBox고정 크기 또는 간격용 박스
Padding안쪽 여백
Align / Center자식을 정렬·중앙 배치
Row가로로 나열(주축: 가로)
Column세로로 나열(주축: 세로)
mainAxisAlignment주축 정렬(가로/세로 중 “나열 방향”)
crossAxisAlignment교차축 정렬
ExpandedRow/Column/Flex 안에서 남는 공간을 차지(flex)
FlexibleExpanded와 비슷하지만 꽉 채우지 않을 수도 있음
SpacerExpanded와 비슷한 “빈 공간”
Stack겹쳐 쌓기
PositionedStack 안에서 위치 지정
WrapRow처럼 가로인데 넘치면 다음 줄로
ListView스크롤 가능한 세로 리스트
GridView격자 리스트
SingleChildScrollView내용이 길 때 스크롤 한 장으로 감쌈
SafeArea노치·상태바 등에 가리지 않게 안전 영역으로 패딩
Scaffold앱바·바디·FAB 등 머티리얼 페이지 뼈대
AppBar상단 앱 바
FloatingActionButton (FAB)둥근 떠 있는 주 버튼
Drawer옆에서 나오는 서랍 메뉴
BottomNavigationBar하단 탭 바

5. 제약(Constraints)

용어무엘 의미하는지
constraints부모가 자식에게 주는 “최소·최대 너비/높이”
tight최소=최대라 크기가 거의 정해진 제약
loose그 안에서 자식이 고를 수 있는 여유 있는 제약
unbounded한 방향이 무한(예: 세로 스크롤 안에서 가로 무한) — 실수로 Column 안에 무한 높이 자식 넣으면 에러 나기도 함

6. Material / 테마

용어무엇인지
MaterialApp테마·라우트·머티리얼 앱 루트
CupertinoAppiOS 스타일 앱 루트
ThemeData색·폰트·버튼 스타일 등 묶음
Theme.of(context)지금 context 기준 가장 가까운 테마 가져오기
ColorSchemeprimary/secondary/surface 등 색 역할 묶음
AppBarTheme, ElevatedButtonTheme특정 컴포넌트만 전역 스타일
darkTheme / themeMode다크 모드 대응

7. 입력·터치·포커스

용어무엇인지
GestureDetector탭·롱프레스 등 제스처 감지
InkWell / Material머티리얼 잉크 스플래시 효과가 있는 터치 영역
TextField한 줄 입력
TextEditingController입력값 읽기·쓰기·리스너
FocusNode포커스 제어

8. 네비게이션

용어무엇인지
Navigator화면 스택 push/pop 관리
Navigator.of(context)이 context에 연결된 Navigator
Route한 화면에 해당하는 경로 객체
MaterialPageRoute머티리얼 전환 애니메이션 있는 라우트
push새 화면 올리기
pop현재 화면 닫기
home첫 화면(간단한 앱에서)
routes / onGenerateRoute이름 기반 라우팅

9. 비동기·데이터

용어무엇인지
FutureBuilderFuture 끝나면 UI 갱신
StreamBuilderStream 이벤트마다 UI 갱신
jsonEncode / jsonDecodeJSON 문자열 ↔ 맵 변환 (보통 dart:convert)

10. 상태 관리

용어무엇인지
lifting state up상태를 공통 부모로 올려서 형제에게 전달
Provider / Riverpod / Bloc앱 전역·여러 화면에 걸친 상태를 나누는 도구
ProviderScope (Riverpod)Riverpod 사용 시 루트를 감쌈
ConsumerWidget / ref (Riverpod)Provider 읽기·구독

11. 프로젝트·도구

용어무엇인지
pubspec.yaml패키지 의존성·에셋 경로 설정
flutter pub get의존성 설치
assets이미지·폰트 등 번들 리소스
Hot reload코드만 빠르게 반영(상태 유지되는 경우 많음)
Hot restart앱 다시 시작에 가깝게 전체 재실행
devtools성능·레이아웃 디버깅 도구

12. 에러·디버그에서 자주 보는 말

용어대략 의미
RenderFlex overflowedRow/Column 안에 자식이 너무 커서 넘침
unbounded height/width무한 제약인데 크기를 모르는 자식을 둔 경우
setState() called after dispose위젯 없어진 뒤에 상태 갱신 시도
GlobalKey 중복같은 부모 자식 목록에 같은 GlobalKey

0개의 댓글