Dart의 🏷️Static 키워드 완벽 가이드 (예제 포함)
1. 📝개요
Dart에서 static 키워드는 📦클래스 멤버(🔢변수 및 🛠️메서드)를 인스턴스화 없이 사용할 수 있도록 합니다. 일반적으로 🏗️정적 변수와 정적 메서드는 클래스의 인스턴스와 무관하게 동작하며, 프로그램 전반에서 공유되는 데이터를 관리할 때 유용합니다.
이 글에서는 static 키워드의 개념과 활용 방법을 💻코드 예제와 함께 설명하며, SEO를 고려한 키워드(예: "Dart static 변수", "Dart 정적 메서드", "Dart OOP")를 포함하여 작성하였습니다.

2. 🔍Static 키워드란?
Dart에서 static 키워드를 사용하면 클래스의 특정 멤버(🔢변수, 🛠️메서드)가 모든 인스턴스에서 공유됩니다. 즉, 특정 클래스의 🏗️객체가 여러 개 생성되더라도 static으로 선언된 변수와 메서드는 오직 하나만 존재하며, 모든 객체에서 동일한 데이터를 사용합니다.
2.1. 📌Static 변수
클래스 내에서 static으로 선언된 변수는 인스턴스에 귀속되지 않고, 클래스 자체에 귀속됩니다.
📄예제: Static 변수 사용
class Counter {
static int count = 0; // 모든 인스턴스에서 공유됨
void increment() {
count++; // 모든 객체에서 동일한 값 변경
}
}
void main() {
Counter c1 = Counter();
Counter c2 = Counter();
c1.increment();
print(Counter.count); // 1 출력
c2.increment();
print(Counter.count); // 2 출력
}
2.2. ⚙️Static 메서드
static 메서드는 클래스의 인스턴스를 생성하지 않고 호출할 수 있습니다. 이러한 메서드는 객체 상태를 변경하지 않으며, 주로 🏗️유틸리티 함수나 공통 기능을 제공하는 데 사용됩니다.
📄예제: Static 메서드 사용
class MathUtils {
static int add(int a, int b) {
return a + b;
}
}
void main() {
print(MathUtils.add(3, 5)); // 8 출력
}

3. 🔥Static 키워드 활용 사례
3.1. 🔄싱글톤 패턴 구현
Dart에서 싱글톤 패턴을 구현할 때 static 키워드를 사용하면 효율적으로 관리할 수 있습니다.
📄예제: 싱글톤 패턴 구현
class Singleton {
static final Singleton _instance = Singleton._internal();
factory Singleton() {
return _instance;
}
Singleton._internal();
}
void main() {
var s1 = Singleton();
var s2 = Singleton();
print(identical(s1, s2)); // true 출력 (같은 인스턴스)
}
3.2. 🌎전역 설정(Configuration) 관리
애플리케이션의 전역 설정 데이터를 관리할 때 static 변수를 활용하면 효과적입니다.
📄예제: 설정 정보 관리
class Config {
static String appName = "MyApp";
static String apiUrl = "https://api.example.com";
}
void main() {
print(Config.appName); // "MyApp" 출력
print(Config.apiUrl); // "https://api.example.com" 출력
}
3.3. 🛠️유틸리티 클래스 구현
자주 사용되는 기능을 정적 메서드로 제공하여 코드의 일관성을 유지할 수 있습니다.
📄예제: 문자열 유틸리티
class StringUtils {
static bool isEmpty(String? str) {
return str == null || str.isEmpty;
}
}
void main() {
print(StringUtils.isEmpty("")); // true 출력
print(StringUtils.isEmpty("Hello")); // false 출력
}

4. ⚖️Static 변수와 Final/Const 차이점
🏷️키워드 📝설명 🔄변경 가능 여부 ⏳메모리 할당 시점
| static | 클래스 단위에서 공유되는 변수 | ✅변경 가능 | 📌클래스 로드 시 |
| final | 한 번만 할당 가능(🔄런타임) | ❌변경 불가능 | ⏳처음 사용될 때 |
| const | 🏗️컴파일 타임 상수 | ❌변경 불가능 | 🏗️컴파일 시 |
5. ⚠️Static 키워드 사용 시 주의점
- 🎯인스턴스 변수와 혼동하지 말 것
- 🧠메모리 관리 고려
- 🚫상속 시 재정의 불가

6. ✅결론
Dart의 static 키워드는 클래스 수준에서 공유되는 변수 및 메서드를 정의하는 강력한 도구입니다.
- 🌎전역 설정 관리
- 🔄싱글톤 패턴 구현
- 🛠️유틸리티 함수 제공
이러한 기능을 효과적으로 활용하면 코드의 유지보수성과 성능을 높일 수 있습니다.
🚀 이제 Dart에서 static 키워드를 효과적으로 활용하는 방법을 익히셨을 것입니다. 필요에 맞게 활용해 보세요! 🚀
'Programming > Dart' 카테고리의 다른 글
| Dart 컬렉션 (0) | 2025.04.04 |
|---|---|
| Dart Cascade Operator (0) | 2025.04.03 |
| Dart Generic (0) | 2025.04.03 |
| Dart Abstract (0) | 2025.03.28 |
| Dart Mixins (0) | 2025.03.28 |