본문 바로가기
Programming/Dart

Dart Static

by #root 2025. 4. 3.

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 키워드 사용 시 주의점

  1. 🎯인스턴스 변수와 혼동하지 말 것
  2. 🧠메모리 관리 고려
  3. 🚫상속 시 재정의 불가

 

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