학습
Dart 상수 및 열거형
Dart 상수 및 열거형 — 중급
상수 및 열거형
1. 도입 (왜 배워야 하는가)
Dart에서 상수(constant)와 열거형(enum)은 코드의 가독성과 유지 보수성을 높이는 중요한 요소입니다. 상수는 변하지 않는 값을 정의할 수 있게 해주며, 열거형은 관련된 상수의 집합을 정의하여 코드의 의미를 명확히 합니다.
상수를 사용하지 않으면 코드의 여러 곳에서 같은 값을 반복적으로 입력해야 하며, 값이 변경될 경우 모든 위치를 수정해야 하므로 오류가 발생할 가능성이 높습니다. 열거형 없이 많은 상수를 사용할 경우, 해당 값들이 무엇을 의미하는지 파악하기 어려워져 코드의 이해도를 떨어뜨립니다.
2. 핵심 개념 설명
상수 (Constant)
상수는 프로그램 실행 중 변경되지 않는 값을 의미합니다. 예를 들어, 파이(π) 값은 항상 3.14입니다. 이는 마치 고정된 가격의 물건과 같아서, 가격이 변경되지 않는 한 항상 일정합니다.
열거형 (Enum)
열거형은 관련된 상수의 집합으로, 주로 몇 가지 선택지를 정리할 때 사용됩니다. 예를 들어, 요일을 정의할 때 사용할 수 있습니다. 이는 마치 메뉴에서 선택 가능한 요리처럼, 여러 선택 중 하나를 고르는 것입니다.
| 용어 | 설명 |
|---|---|
| 상수 | 변하지 않는 값 |
| 열거형 | 관련된 상수의 집합 |
3. 기본 코드 예제
상수 사용 예제
void main() {
const double pi = 3.14; // 상수 pi 정의
print(pi); // pi 값을 출력
}
- 실행 결과:
3.14 - 동작 설명:
- const double pi = 3.14;: pi라는 이름의 상수를 정의하고 값을 3.14로 설정합니다.
- print(pi);: pi의 값을 출력합니다.
열거형 사용 예제
enum Color { red, green, blue }
void main() {
Color favoriteColor = Color.green; // 열거형을 사용하여 색상 지정
print(favoriteColor); // favoriteColor 값을 출력
}
Color.green- enum Color { red, green, blue }: Color라는 열거형을 정의하고, 세 가지 색상을 설정합니다.
- Color favoriteColor = Color.green;: favoriteColor 변수에 Color.green을 할당합니다.
- print(favoriteColor);: favoriteColor 값을 출력합니다.
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 구현
enum ItemStatus { available, outOfStock, discontinued }
class Item {
final String name;
final ItemStatus status;
Item(this.name, this.status);
}
void main() {
Item item1 = Item('Laptop', ItemStatus.available);
print('${item1.name} is ${item1.status}'); // Laptop is ItemStatus.available
}
예제 2: 게임에서 캐릭터의 상태 표현
enum CharacterState { idle, running, attacking }
class Character {
final String name;
CharacterState state;
Character(this.name, this.state);
}
void main() {
Character hero = Character('Warrior', CharacterState.idle);
hero.state = CharacterState.running; // 상태 업데이트
print('${hero.name} is ${hero.state}'); // Warrior is CharacterState.running
}
5. 흔한 실수와 주의사항
실수 1: 상수의 잘못된 사용
void main() {
double pi = 3.14; // 잘못된 사용: const를 사용하지 않음
pi = 3.14159; // 오류 발생: pi는 변경할 수 없음
}
void main() {
const double pi = 3.14; // const를 사용하여 상수로 정의
}
실수 2: 열거형의 잘못된 사용
void main() {
Color favoriteColor = 'green'; // 잘못된 사용: 문자열 할당
}
void main() {
Color favoriteColor = Color.green; // 열거형 사용
}
6. 정리
다음에 학습하면 좋은 주제는 클래스와 객체지향 프로그래밍입니다. 이를 통해 Dart의 강력한 기능을 더 잘 이해하고 활용할 수 있습니다.