Data Enum
미리 정한 값 중 하나만 갖는 열거형 데이터
4 min read
Data Enum 은 미리 정해 둔 값들 중 하나만 가질 수 있는 데이터 타입입니다. 예를 들어 할 일의 우선순위는 low, medium, high 셋 중 하나여야 하고, 주문 상태는 pending, paid, shipped 같은 정해진 값만 가질 수 있습니다.
값의 범위를 제한하면 잘못된 값이 들어가는 것을 막고, 값을 고를 때도 편리합니다.
Enum 만들기
Data Scheme 사이드바에서 일반 Schema 와 나란히 Enum 을 만들 수 있습니다. Enum 은 다음으로 이루어집니다.
- 이름 — 예:
Priority - baseType — 값의 기본 타입.
string또는integer - 멤버 목록 — 허용할 항목들. 예:
low,medium,high
각 멤버(Member) 는 화면에 보여줄 이름에 더해, 필요하면 두 가지를 따로 가질 수 있습니다.
- 값(Value) — 실제로 저장·전송되는 값. 지정하지 않으면 이름(문자열) 또는 순번(정수)이 그대로 쓰입니다. 예: 이름은
Night, 값은dark. - 이미지(Symbol) — SF Symbol 아이콘. 멤버를 보여 주는 메뉴·버튼에 함께 표시됩니다.
Enum 을 필드에서 사용하기
Schema 의 필드 타입으로 enum 을 선택하고 만들어 둔 Enum 을 지정합니다. 그러면 그 필드는 Enum 에 정의된 값만 가질 수 있습니다.
데이터 값을 편집할 때는 자유 입력 대신 Picker 가 나타나, 정의된 값 중에서만 고를 수 있습니다. JSON 으로 직렬화될 때는 baseType 에 따라 문자열 또는 숫자로 저장됩니다.
Enum 을 컨트롤에 연결하기
Enum 필드는 선택 UI 와 곧바로 연결됩니다 — 항목이 Enum 에서 자동으로 구성되고, 사용자의 선택은 데이터에 다시 기록됩니다.
- 메뉴(Menu) — Button 이나 Bar Button 의 메뉴를 Enum 에 연결하면, 멤버들이 메뉴 항목이 되고 현재 값에 체크마크가 표시됩니다. 버튼의 타이틀과 이미지도 선택된 멤버를 따라갑니다. 메뉴는 자유로운 단계의 서브메뉴로 구성할 수 있습니다.
- Segmented Control — 멤버 이름이 세그먼트가 되고, 세그먼트를 고르면 그 멤버의 값이 데이터에 기록되는 양방향 바인딩입니다.
카메라의 위치·화면비·플래시처럼 자주 쓰는 선택지는 내장(Built-in) Enum 으로 제공됩니다.
OpenAPI/Swagger 나 JSON Schema 를 가져오면, 스펙에 정의된 열거형이 자동으로 Data Enum 으로 만들어집니다. 같은 값 묶음은 중복 없이 하나로 정리됩니다.