Enum 이란,
이번 포스팅에는 최근 회사 프로젝트를 진행 중에 Enum을 사용고있지만 왜 사용하는지를 모르고 사용하다 보니 Enum에 대한 궁금증이 생겨서 Enum에 대하여 알아보려고 한다.
Enum은 Enumerated Type으로 '서로 연관된 상수 값들의 잡합'이다
Enum의 등장 배경
- 복잡한 값 -> 단순한 값으로
- 변하지 않는 클래스 변수로 설정
- Interface로 상수명 구체화
- 인스턴스 생성
등에서 문제점들을 해결하다보니 나온 것이 Enum이라고 한다. Enum의 문제점을 잘 설명해 준 블로그는 http://heepie.tistory.com/32
에 자세히 나와있다.
Enum이 갖는 장점은 무엇일까?
- 문자열에 비해 IDE를 이용할 때 편리하다
- 허용 가능한 값을 제한 할 수 있다
- 리팩토링 시 변경 범위가 최소화된다
- 데이터들 간의 연결관계 표현
- 상태와 행위를 한 곳에서 관리
- 데이터 그룹 관리
- 관리 주체를 DB에서 객체로 만들 수 있다
등의 장점들이 있다. 이러한 장점들의 설명은 https://techblog.woowahan.com/2527/ 에 자세히 나와있다.
Enum 사용법
Dart 2.17 버전 이전에는 enum 사용이 어려웠다고 한다. 그러나 2.17 버전 이후로는 밑에 있는 예제처럼 사용하면 된다.
enum Coffee {
AMERICANO("americano", 3000),
CAPPUCCINO("cappuccino", 4000),
CAFE_LATTE("cafeLatte", 4000);
const Coffee(this.name, this.price);
final String name;
final int price;
factory Coffee.getByName(String name) {
return Coffee.values.firstWhere((value) => value.name == name
);
}
}
마무리
Dart 2.17 버전 이전에는 enum 사용이 어려웠다고 한다. 그러나 2.17 버전 이후로는 밑에 있는 예제처럼 사용하면 된다. Enum으로 코드의 가독성과 유지 보수성을 높일 수 있고, 특정 값에 대한 타입 안정성을 제공하는데 유용하다고 한다. 앞으로는 고정된 값들은 최대한 enum으로 만들어서 사용해 봐야겠다. 그리고 위의 블로그들을 읽어보았지만, 아직까지는 완벽히 이해가 되지는 않는다. 앞으로도 Enum을 사용할 때마다 참고하여 틈틈이 나의 것으로 만드는 시간을 가져야겠다.
출처
반응형
'Flutter' 카테고리의 다른 글
플러터 (flutter) addPostFrameCallback과 Future.delayed (0) | 2023.03.14 |
---|---|
플러터 (Flutter) 앱 화면 크기 MediaQuery (0) | 2023.03.07 |