← 아카이브로 돌아가기

Development · Swift

Swift 열거형과 원시값

서로 연관된 상태를 enum으로 모델링하고 타입 추론과 원시값을 활용해 유효한 값만 안전하게 다루는 방법을 살펴봅니다.

Velog 원문 보기 ↗

Development 아카이브 표지

열거형(enum)은 서로 관련된 선택지를 하나의 타입으로 묶는다. 문자열을 직접 전달하는 것보다 가능한 값을 코드에 명확히 드러내고 잘못된 입력을 컴파일 단계에서 막을 수 있다.

연관된 값을 하나의 타입으로 묶기

enum DevelopmentRole {
    case frontend
    case backend
    case app
}

func introduce(role: DevelopmentRole) {
    print("My role is \(role)")
}

introduce(role: .app)

호출부에서 타입을 이미 알 수 있으므로 DevelopmentRole.app 대신 .app처럼 타입 이름을 생략할 수 있다.

원시값 연결하기

enum DevelopmentRole: String {
    case frontend = "프론트엔드"
    case backend = "백엔드"
    case app = "앱"
}

print(DevelopmentRole.app.rawValue) // 앱
let role = DevelopmentRole(rawValue: "앱") // DevelopmentRole?

원시값으로 생성한 결과는 대응하는 case가 없을 수 있어 옵셔널이다. 열거형은 단순한 상수 모음이 아니라 도메인의 유효한 상태와 규칙을 표현하는 타입이다.

← 아카이브로 돌아가기