🔥 소개

221자
4분

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

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

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

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

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

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

YouTube 영상

채널 보기
NestJS 인터셉터에서 map 연산자로 응답을 변환하는 방법 | NestJS 가이드
변환 파이프로 컨트롤러 코드 깔끔하게 만들기 | NestJS 가이드
관점 지향 로깅 인터셉터 구현 및 전역 바인딩 전략 | NestJS 가이드
NestJS 커스텀 데코레이터, createParamDecorator 사용 | NestJS 가이드
Writer 펑터와 클라이슬리 카테고리 | 프로그래머를 위한 카테고리 이론
함수 타입과 Hom-Set 이해하기 | 프로그래머를 위한 카테고리 이론
NestJS 가드, 바이딩과 스코프 | NestJS 가이드
Pro펑터, 입력과 출력을 동시에 다루는 펑터 | 프로그래머를 위한 카테고리 이론