본문 바로가기

Android Development/Kotlin

Enum 클래스 공부하기

프로그래밍을 하면서 가끔 특정 값들만을 가지는 변수를 정의해야 할 때가 있다. 예를 들어, 계절을 나타낼 때는 '봄', '여름', '가을', '겨울'이라는 네 가지 값만 필요하다. 이럴 때 사용하는 것이 바로 Enum 클래스다. 이번에 Enum 클래스가 무엇인지, 그리고 어떻게 사용하는지에 대해 다시 한번 공부해봐야겠다.

Enum 클래스란?

Enum 클래스는 열거형이라고도 부르며, 서로 관련 있는 상수들의 집합을 정의할 때 사용된다. 특정 변수에 허용될 수 있는 값들을 미리 정의해두고, 그 외의 값들은 사용할 수 없게 제한할 수 있어서 유용하다.

Enum 클래스의 기본 사용법

계절을 나타내는 Enum 클래스를 Kotlin으로 작성해보면 아래와 같다.

enum class Season {
    SPRING, SUMMER, AUTUMN, WINTER
}
    

이렇게 Enum 클래스를 정의하면, 이제 변수에 '봄', '여름', '가을', '겨울' 중 하나의 값만 할당할 수 있다. 예를 들어보자.

fun main() {
    val currentSeason: Season = Season.SPRING

    when (currentSeason) {
        Season.SPRING -> println("지금은 봄입니다.")
        Season.SUMMER -> println("지금은 여름입니다.")
        Season.AUTUMN -> println("지금은 가을입니다.")
        Season.WINTER -> println("지금은 겨울입니다.")
    }
}
    

이 코드에서 currentSeason 변수는 Season Enum의 값 중 하나만 가질 수 있다. when 문을 사용해 현재 계절에 따라 다른 메시지를 출력할 수 있는 것이 포인트다.

Kotlin Enum 클래스 예시 이미지

Enum 클래스의 활용

Enum 클래스는 단순히 값의 집합을 정의하는 것 외에도, 각 열거형 상수에 메서드나 프로퍼티를 추가할 수 있다. 예를 들어, 각 계절마다 평균 기온을 정의할 수도 있다.

enum class Season(val averageTemp: Int) {
    SPRING(15),
    SUMMER(30),
    AUTUMN(20),
    WINTER(5);

    fun printSeasonInfo() {
        println("${this.name}의 평균 기온은 ${averageTemp}도입니다.")
    }
}

fun main() {
    val currentSeason: Season = Season.SUMMER
    currentSeason.printSeasonInfo()  // 출력: SUMMER의 평균 기온은 30도입니다.
}
    

이처럼 Enum 클래스는 상수의 집합을 만들고, 각 상수에 고유한 속성이나 메서드를 추가할 수 있다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있다.

Enum 클래스의 장점

Enum 클래스를 사용하면 다음과 같은 장점이 있다:

  • 코드의 안정성이 높아진다. 미리 정의된 값만 사용할 수 있기 때문에, 잘못된 값이 할당되는 것을 방지할 수 있다.
  • 코드의 가독성이 좋아진다. 특정 변수가 가질 수 있는 값들이 명확하게 정의되어 있기 때문에, 코드의 의미를 쉽게 파악할 수 있다.
  • 프로그램의 유지보수가 쉬워진다. 새로운 값이 필요할 때 Enum 클래스에 추가하기만 하면 된다.

이제 Enum 클래스의 개념과 사용법을 어느 정도 정리했으니, 실제로 코드에 적용해보면서 더 깊이 이해해봐야겠다.