Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Flutter
- LLM
- JS
- Clean Architecture
- abap
- 배포
- develop
- UI/UX
- java 출력
- scss
- firebase
- 자바 출력 방식
- react
- JQ
- 단축키
- java
- 자바 포맷 출력
- java 콘솔 출력 차이
- unity
- nodejs
- ListView
- println
- 자바스크립트
- npm
- DART
- 앱심사
- lifecycle
- 엡
- riverpod
- printf
Archives
- Today
- Total
guricode
메모리 및 시점 비교 표 (Dart 기준)/final / const / static 비교 본문
구분 시점/영역 특징 예시
| 컴파일 시점 | 코드가 실행되기 전, 빌드 과정 | const 값 확정. 상수 풀에 저장. 실행 전부터 값이 고정됨 | const pi = 3.14; |
| 런타임 시점 | 프로그램 실행 중 | 사용자 입력, 네트워크 응답, 시간 등 실행 중에만 결정 | final now = DateTime.now(); |
| 스택(Stack) | 메모리 실행 영역 | 함수 호출 시 지역 변수·매개변수 저장. 함수 종료 시 자동 해제 | dart void f() { int x = 10; } |
| 힙(Heap) | 메모리 실행 영역 | 동적으로 생성된 객체 저장. 참조가 남아 있으면 유지. GC가 회수 | var list = [1, 2, 3];var user = User(name: 'Kim'); |
| Static 영역 | 메모리 실행 영역 | static 변수, static const 값. 클래스 단위로 한 번만 초기화되고 프로그램 종료까지 유지 | static const timeout = 3000; |
final / const / static 비교 표 (Dart 기준)
구분 초기화 시점 소속 값 변경 가능 여부 메모리 영역/특징 대표 사용 예시
| final | 런타임 (실행 중 최초 한 번) | 인스턴스 또는 지역 | 최초 1회만 대입, 이후 변경 불가 | 힙(객체), 스택(지역) | 생성자 주입 값, API 응답 값 저장 |
| const | 컴파일 타임 (빌드 시점) | 최상위, 지역, static const | 변경 불가 (컴파일부터 고정) | 상수 풀에 저장, 캐노니컬(동일 객체 공유) | API 엔드포인트, 불변 토큰, const 위젯 |
| static | 최초 접근 시 런타임에 지연 초기화 | 클래스 단위 | static final/static var 여부에 따라 다름 | 타입 소속, isolate 생존 동안 유지 | 유틸리티 함수, 전역 카운터, 캐시 |
- final: 실행 도중 값이 정해지므로 사용자 입력, 현재 시간, 네트워크 값처럼 동적으로 결정되는 불변값에 적합
- const: 빌드 시점에 값이 확정되어야 하므로 반드시 상수식만 가능. 성능상 이점(재사용, 캐노니컬) 있음
- static: 인스턴스마다 달라질 필요 없는 값이나 기능을 타입 단위로 관리할 때 사용. static const를 함께 쓰면 타입 전역 상수가 됨
- “불변인데 실행 중 정해져야 한다” → final
- “아예 빌드 때부터 고정 상수다” → const
- “클래스 전체에서 공유해야 한다” → static
'앱 > Flutter&Dart' 카테고리의 다른 글
| [flutter]자취의 정석 -4,bottomSheet에 TextFormField 입력시 hassized문제 (0) | 2025.09.19 |
|---|---|
| [flutter]자취의 정석 -3 : TabBar를 사용한 카테고리 선택 구현 (0) | 2025.09.16 |
| [flutter]자취의 정석 -2 : Lottie JSON을 이용한 애니메이션 구현 (0) | 2025.09.11 |
| [Flutter]자취의 정석 1 - 기획 및 컨셉(클린아키텍쳐MVVM, Jira) (0) | 2025.09.10 |
| [flutter]Hero 애니메이션 (0) | 2025.09.09 |