| 용어 | 무엇인지 (한 줄) |
|---|---|
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 | 고정된 값 나열형 |
| 용어 | 무엇인지 |
|---|---|
| 위젯(Widget) | UI를 만드는 불변(immutable) 설정 객체. 화면의 한 덩어리 |
| Element | 위젯이 트리에 실제로 붙은 인스턴스(내부 동작). 직접 다루는 일은 적음 |
| RenderObject | 실제 크기·그리기·히트 테스트(터치). 레이아웃의 밑단 |
| build | “지금 이 위젯의 자식 위젯 트리를 만든다”는 함수 |
| BuildContext | 위젯 트리에서 “내 위치”를 가리키는 핸들. Theme.of(context) 등에 사용 |
| runApp | 루트 위젯을 붙여서 앱 시작 |
| 프레임 | 한 번 화면을 그리는 단위. 60fps면 초당 60프레임 |
| 용어 | 무엇인지 |
|---|---|
| StatelessWidget | 내부 상태 없음. 부모가 다시 그리면 같이 다시 그려짐 |
| StatefulWidget | State 객체에 상태를 두고 setState로 다시 그림 |
| State\<T> | StatefulWidget의 mutable 로직·상태가 들어가는 클래스 |
| setState | “상태 바뀜 → 이 State의 build 다시 호출” |
| Key | 위젯 식별·리스트에서 순서 바뀔 때 동일 항목 매칭 (ValueKey, ObjectKey 등) |
| InheritedWidget | 트리 아래로 데이터를 효율적으로 내려보냄. Theme 등이 이 패턴 |
| 용어 | 무엇인지 |
|---|---|
| child | 자식 하나 |
| children | 자식 여러 개(리스트) |
| Container | 크기·색·패딩·데코레이션 등을 한 번에 쓰기 쉬운 박스 |
| SizedBox | 고정 크기 또는 간격용 박스 |
| Padding | 안쪽 여백 |
| Align / Center | 자식을 정렬·중앙 배치 |
| Row | 가로로 나열(주축: 가로) |
| Column | 세로로 나열(주축: 세로) |
| mainAxisAlignment | 주축 정렬(가로/세로 중 “나열 방향”) |
| crossAxisAlignment | 교차축 정렬 |
| Expanded | Row/Column/Flex 안에서 남는 공간을 차지(flex) |
| Flexible | Expanded와 비슷하지만 꽉 채우지 않을 수도 있음 |
| Spacer | Expanded와 비슷한 “빈 공간” |
| Stack | 겹쳐 쌓기 |
| Positioned | Stack 안에서 위치 지정 |
| Wrap | Row처럼 가로인데 넘치면 다음 줄로 |
| ListView | 스크롤 가능한 세로 리스트 |
| GridView | 격자 리스트 |
| SingleChildScrollView | 내용이 길 때 스크롤 한 장으로 감쌈 |
| SafeArea | 노치·상태바 등에 가리지 않게 안전 영역으로 패딩 |
| Scaffold | 앱바·바디·FAB 등 머티리얼 페이지 뼈대 |
| AppBar | 상단 앱 바 |
| FloatingActionButton (FAB) | 둥근 떠 있는 주 버튼 |
| Drawer | 옆에서 나오는 서랍 메뉴 |
| BottomNavigationBar | 하단 탭 바 |
| 용어 | 무엘 의미하는지 |
|---|---|
| constraints | 부모가 자식에게 주는 “최소·최대 너비/높이” |
| tight | 최소=최대라 크기가 거의 정해진 제약 |
| loose | 그 안에서 자식이 고를 수 있는 여유 있는 제약 |
| unbounded | 한 방향이 무한(예: 세로 스크롤 안에서 가로 무한) — 실수로 Column 안에 무한 높이 자식 넣으면 에러 나기도 함 |
| 용어 | 무엇인지 |
|---|---|
| MaterialApp | 테마·라우트·머티리얼 앱 루트 |
| CupertinoApp | iOS 스타일 앱 루트 |
| ThemeData | 색·폰트·버튼 스타일 등 묶음 |
| Theme.of(context) | 지금 context 기준 가장 가까운 테마 가져오기 |
| ColorScheme | primary/secondary/surface 등 색 역할 묶음 |
| AppBarTheme, ElevatedButtonTheme 등 | 특정 컴포넌트만 전역 스타일 |
| darkTheme / themeMode | 다크 모드 대응 |
| 용어 | 무엇인지 |
|---|---|
| GestureDetector | 탭·롱프레스 등 제스처 감지 |
| InkWell / Material | 머티리얼 잉크 스플래시 효과가 있는 터치 영역 |
| TextField | 한 줄 입력 |
| TextEditingController | 입력값 읽기·쓰기·리스너 |
| FocusNode | 포커스 제어 |
| 용어 | 무엇인지 |
|---|---|
| Navigator | 화면 스택 push/pop 관리 |
| Navigator.of(context) | 이 context에 연결된 Navigator |
| Route | 한 화면에 해당하는 경로 객체 |
| MaterialPageRoute | 머티리얼 전환 애니메이션 있는 라우트 |
| push | 새 화면 올리기 |
| pop | 현재 화면 닫기 |
| home | 첫 화면(간단한 앱에서) |
| routes / onGenerateRoute | 이름 기반 라우팅 |
| 용어 | 무엇인지 |
|---|---|
| FutureBuilder | Future 끝나면 UI 갱신 |
| StreamBuilder | Stream 이벤트마다 UI 갱신 |
| jsonEncode / jsonDecode | JSON 문자열 ↔ 맵 변환 (보통 dart:convert) |
| 용어 | 무엇인지 |
|---|---|
| lifting state up | 상태를 공통 부모로 올려서 형제에게 전달 |
| Provider / Riverpod / Bloc 등 | 앱 전역·여러 화면에 걸친 상태를 나누는 도구 |
| ProviderScope (Riverpod) | Riverpod 사용 시 루트를 감쌈 |
| ConsumerWidget / ref (Riverpod) | Provider 읽기·구독 |
| 용어 | 무엇인지 |
|---|---|
| pubspec.yaml | 패키지 의존성·에셋 경로 설정 |
| flutter pub get | 의존성 설치 |
| assets | 이미지·폰트 등 번들 리소스 |
| Hot reload | 코드만 빠르게 반영(상태 유지되는 경우 많음) |
| Hot restart | 앱 다시 시작에 가깝게 전체 재실행 |
| devtools | 성능·레이아웃 디버깅 도구 |
| 용어 | 대략 의미 |
|---|---|
| RenderFlex overflowed | Row/Column 안에 자식이 너무 커서 넘침 |
| unbounded height/width | 무한 제약인데 크기를 모르는 자식을 둔 경우 |
| setState() called after dispose | 위젯 없어진 뒤에 상태 갱신 시도 |
| GlobalKey 중복 | 같은 부모 자식 목록에 같은 GlobalKey |