[Swift] @unknown 키워드

어흥·2024년 5월 8일

Swift

목록 보기
9/28

안녕하세요! 오늘은 @unknown 키워드에 대해서 알아보겠습니다. @unkown은 Swift 5.0 이상부터 사용할 수 있는 키워드입니다.

@unknown 키워드

@unkown은 enum타입을 접근하는 switch-case문에서 사용되는 키워드입니다.

프로젝트를 진행하면서 열거형을 사용할 때, 열거형의 케이스가 늘어날 수 있습니다. 이렇게 케이스가 추가될 때, 항상 모든 케이스에 대해서 올바르게 처리가 되고 있다고 말할 수 있을까요?

예를 들어, 소셜 로그인 기능에서 kakaotalk 소셜 로그인을 추가했다고 가정해봅시다.

enum LoginProvider: String {      // 3가지 케이스 ===> 4가지 케이스
    case email
    case apple
    case google
    case kakaotalk // 새로 추가 
}

위 소셜로그인 열거형에 대한 처리를 switch문으로 처리할 때, kakotalk인 경우 default 안에 있는 내용이 실행됩니다. 사용하는 쪽에서 default로 처리하면 컴파일 에러가 발생하지 않는 상태여서 switch 문에서 case를 추가해야 하는지 찾기 힘들 수 있습니다.

warning 메시지를 받아볼 수 없어 사용하는쪽에서 새로 생겨난 case를 인지하지 못하는 상황이 발생하게 됩니다.

switch userLogin {
case .email:
    print("이메일 로그인")
case .apple:
    print("애플 로그인")
case .google:
    print("구글 로그인")
@unknown default:
    print("그 외의 모든 경우")
}

위 처럼 default 앞에 @unkown 키워드를 추가해 보겠습니다.
키워드를 추가하면 switch문에서 열거형의 모든 케이스를 다루지 않는 경우, 스위치문에서 모든 열거형의 케이스를 다루지 않았다고 경고를 통해 알려줌 컴파일러가 경고문을 띄웁니다. 아래 사진처럼요:)

열거형, switch 문을 사용할 때 @unkown 키워드를 사용한다면 케이스가 추가되더라도 모든 케이스에 대한 분기 처리가 되어있는지 경고창으로 확인할 수 있어 개발자에게 매우 편리하게 사용될 수 있습니다!

0개의 댓글