IMCAT.DEV
로그인 가입
Swift 입문 자료구조

Swift 열거형(Enum) 기초

Swift 열거형(Enum) 기초 — 초급

열거형(Enum) 기초

1. 도입 (왜 배워야 하는가)

열거형(Enum)은 Swift 프로그래밍에서 매우 중요한 개념입니다. Enum을 사용하면 관련된 값을 하나의 그룹으로 묶어 관리할 수 있으며, 코드의 가독성과 유지보수성을 높이는 데 큰 도움이 됩니다. 실무에서는 상태, 옵션, 종류 등을 명확하게 정의할 수 있어 코드의 의도를 분명히 하는 데 유용합니다.

열거형을 모르면, 예를 들어 쇼핑몰의 제품 종류를 관리할 때 각 제품의 상태(재고 있음, 재고 없음 등)를 분명하게 표현하지 못해 코드가 복잡해지고 이해하기 어려워질 수 있습니다. 이는 버그를 발생시키거나 개발 속도를 늦추는 원인이 됩니다.

2. 핵심 개념 설명

열거형(Enum)은 관련된 여러 값을 하나의 타입으로 묶어주는 사용자 정의 데이터 타입입니다. 이를 통해 코드의 의미를 보다 명확하게 할 수 있습니다.

비유

열거형은 마치 '음식 메뉴'와 같습니다. 메뉴에는 여러 종류의 음식이 있지만, 각 음식은 같은 카테고리(예: 한식, 중식 등)에 속합니다. 이처럼 Enum은 특정 범위 내에서 서로 관련된 값들을 그룹화합니다.

관련 용어 정리

용어설명
Enum관련된 값들을 하나의 타입으로 묶는 것
CaseEnum 내에서 정의되는 각각의 값
Raw ValueEnum 값에 부여할 수 있는 기본 데이터

3. 기본 코드 예제

아래는 기본적인 Enum 사용 예제입니다.

enum Fruit {
    case apple
    case banana
    case orange
}

// Fruit 타입의 변수 생성
var myFruit: Fruit = .apple

// 변수의 값 출력
print(myFruit) // 출력: apple

실행 결과

apple

코드 한 줄씩 동작 설명

  1. enum Fruit { ... }: Fruit라는 이름의 열거형을 정의합니다. apple, banana, orange라는 세 가지 케이스를 포함합니다.
  2. var myFruit: Fruit = .apple: Fruit 타입의 변수를 생성하고, 그 값을 apple로 초기화합니다.
  3. print(myFruit): myFruit 변수를 콘솔에 출력합니다.
  4. 4. 실전 활용 예제

    예제 1: 쇼핑몰에서 장바구니 상태 관리

    쇼핑몰에서 장바구니의 상태를 관리할 때 Enum을 활용할 수 있습니다.

    enum CartStatus {
        case empty
        case filled
        case checkedOut
    }
    
    var currentStatus: CartStatus = .empty
    
    // 장바구니 상태 업데이트
    currentStatus = .filled

    예제 2: 교통수단 선택

    교통수단을 선택할 때 Enum을 사용하여 각 교통수단의 상태를 관리할 수 있습니다.

    enum Transportation {
        case car(speed: Int)
        case bike(speed: Int)
        case bus
    }
    
    var myTransport: Transportation = .car(speed: 60)
    
    // 속도 출력
    switch myTransport {
    case .car(let speed):
        print("자동차 속도: \(speed) km/h")
    case .bike(let speed):
        print("자전거 속도: \(speed) km/h")
    case .bus:
        print("버스를 선택했습니다.")
    }

    5. 흔한 실수와 주의사항

    실수 1: Enum에 Case를 추가하지 않고 사용하기

    잘못된 코드:

    var myFruit: Fruit = .grape // 정의되지 않은 케이스

    올바른 코드:

    var myFruit: Fruit = .apple // 정의된 케이스 사용

    실수 2: Raw Value를 설정하지 않음

    잘못된 코드:

    enum Days {
        case monday
        case tuesday
    }
    let today: Days = .wednesday // 정의되지 않은 케이스

    올바른 코드:

    enum Days: String {
        case monday = "월요일"
        case tuesday = "화요일"
    }
    let today: Days = .monday // 정의된 케이스 사용

    6. 정리

    • 열거형은 관련된 값을 그룹화하여 코드의 가독성을 높인다.
    • Enum은 여러 상황에서 유용하게 사용되며, 상태 관리에 적합하다.
    • 케이스를 잘 정의하고, 초기화 시 유효한 값을 사용해야 한다.

다음에 학습하면 좋은 주제는 "구조체(Struct)와 클래스(Class)"입니다. 이 두 개념은 Swift에서 데이터 모델링의 기초가 되므로 Enum과 함께 이해하면 좋습니다.