Notice
Recent Posts
Recent Comments
Link
Β«   2026/05   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
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 more
Archives
Today
Total
관리 메뉴

IT Story

Dart Static λ³Έλ¬Έ

Programming/Dart

Dart Static

#root 2025. 4. 3. 14:24

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