2월 06, 2024

[Java] enum 개념, 생성 시점, enum을 활용하여 코드 가독성 높이기

1. Enum의 개념?

Java에서 Enum은 열거형이라고 불리며, 서로 연관된 상수의 집합을 나타내는 데이터 유형이다.

Enum은 코드의 가독성을 높여줄 뿐 아니라 개발자가 일반적으로 사용하는 상수와는 다르게 타입 안전성을 보장해준다.

Enum은 Java에서 클래스로 정의되며 enum 키워드를 사용하여 선언된다. 아래 캡처와 같이 Java Class를 만들 때 Enum을 선택하여 Enum Class를 만들 수 있다.



Enum은 고정된 상수 집합을 정의한다.

또한, Java에서 Enum은 모든 열거형 상수가 컴파일 시점에 미리 정의되어 있으므로 새로운 인스턴스를 생성할 필요가 없다는 장점이 있다.


2. Enum을 활용한 코드 예제

먼저 각 요일별로 상수를 만들어 Day라는 Enum Class를 만들어보도록 하겠다.

public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}

enum에는 변수를 선언하는 것과는 다르게 타입 없이 상수처럼 선언할 수 있고, 위와 같이 상수라는 것을 표현하기 위해 대문자로 써준 것을 알 수 있다.


위와 같이 enum class를 만들었으면 해당 Enum값은 쉽게 사용할 수 있다.

Day today = Day.FRIDAY;



또한 Enum의 장점은 switch 문에서도 코드를 단순화하며 가독성 좋게 사용할 수 있다는 것인데, 아래와 같이 switch 문에서도 활용 가능하다.


switch (day) {
case MONDAY:         System.out.println("TIRING MONDAY!!");         break;
        case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
case SATURDAY:
case SUNDAY:
System.out.println("FINALLY!!");
break;
}

이런 식으로 swtich 문 내에서도 활용이 가능하다.


만약 특정 요일과 숫자를 mapping 하는 등의 코드로 했다면 어떤 요일이 어떤 숫자와 맵핑되었는지를 지속적으로 확인하며 가독성이 좋지 않았을 텐데 이렇게 하면 코드 가독성이 굉장히 높아진다는 장점이 있다.