🔥 소개

221자
4분

프로그래밍에서 여러 개의 관련된 값들을 다룰 때, 이들을 그룹으로 묶어 표현할 수 있습니다. 이렇게 관련된 값들의 그룹을 정의하는 것을 열거형(Enumeration)이라고 합니다. 열거형은 코드 내에서 타입에 안전한(type-safe) 방식으로 해당 값들을 사용할 수 있게 해 줍니다.

C 언어에 익숙하다면, C 열거형이 정수형 값들의 집합에 관련된 이름을 할당하는 것을 알고 계실 것입니다. 하지만 Swift의 열거형은 훨씬 더 유연합니다. 열거형의 각 케이스에 값을 제공할 필요가 없습니다. 만약 각 열거형 케이스에 대해 값(원시 값(raw value)이라고 함)을 제공한다면, 그 값은 문자열, 문자, 또는 정수형이나 부동소수점형 값이 될 수 있습니다.

또는 열거형 케이스는 다른 언어의 공용체(union)나 가변체(variant)처럼, 각기 다른 케이스 값과 함께 저장될 '어떤' 타입의 연관 값(associated value)을 지정할 수 있습니다. 하나의 열거형 안에서 각각 적절한 타입의 다른 값 집합을 갖는, 관련된 케이스들의 공통 집합을 정의할 수 있습니다.

Swift에서 열거형은 그 자체로 일급 타입(first-class type)입니다. 전통적으로 클래스에서만 지원되던 많은 기능들, 예를 들어 열거형의 현재 값에 대한 추가 정보를 제공하는 계산 속성(computed property), 열거형이 표현하는 값과 관련된 기능을 제공하는 인스턴스 메서드 등을 채택했습니다. 열거형은 초기 케이스 값을 제공하는 이니셜라이저(initializer)를 정의할 수 있고, 원래의 구현을 넘어서서 기능을 확장할 수 있으며, 표준 기능을 제공하기 위해 프로토콜(protocol)을 채택할 수도 있습니다.

이러한 능력들에 대해 더 알고 싶다면 속성, 메서드, 초기화, 확장, 프로토콜 등을 참고하시기 바랍니다.

열거형은 관련된 값들을 의미있는 방식으로 그룹화하여 코드의 가독성과 안정성을 높여줍니다. 단순히 이름 붙은 정수 값의 집합에 그치지 않고, 풍부한 기능을 제공하지요. 이제 열거형에 대해 자세히 알아볼까요?