피드로 돌아가기
Dev.toFrontend
원문 읽기
String 기반 상태 관리의 런타임 에러를 Compile-time으로 전이시킨 Enum 도입
Swift Enums
AI 요약
Context
자유 형식의 String을 이용한 데이터 저장 방식에서 오타 및 대소문자 구분 문제로 인한 런타임 버그 발생 가능성 상존. 정해진 옵션 외의 값이 입력될 가능성을 제어할 수 없는 타입 시스템의 한계 노출.
Technical Solution
- 고정된 값의 집합을 정의하는 Enum 타입을 도입하여 허용된 Case 외의 값 할당을 원천 차단
- 컴파일 단계에서 타입 체크를 수행하여 런타임에 발생할 수 있는 유효하지 않은 값의 진입을 방지
- 내부적으로 정수형(Integer)으로 값을 매핑하여 메모리 사용량을 최적화한 저장 구조 채택
- Swift의 Type Inference를 활용해 중복된 타입 선언을 제거하고 .case 형태의 간결한 구문 설계
- IDE의 Autocomplete 기능을 통해 개발자가 정의된 Case 목록을 즉시 확인하도록 유도하여 휴먼 에러 제거
실천 포인트
- 제한된 선택지를 가진 상태 값 정의 시 String 대신 Enum 적용 검토 - 매직 넘버(Magic Number) 사용을 지양하고 가독성이 확보된 Enum Case로 대체 - 런타임 예외 처리보다 컴파일 타임의 타입 제약을 통한 안정성 확보 우선 고려