패스잇
모바일 개발 · 기초

Swift의 Optional이 무엇이며, 왜 필요한지 설명해주세요. 또한, Optional 값을 안전하게 언래핑하는 기본적인 방법 두 가지를 설명해주세요.

힌트 · `Optional`은 값이 있을 수도 있고 없을 수도 있음을 나타내는 타입입니다. `if let`과 `guard let`을 사용하여 안전하게 값을 추출할 수 있습니다.

옵셔널nil안전성강제 언래핑옵셔널 바인딩

모범답안

Swift의 Optional은 변수나 상수가 값을 가질 수도 있고, nil (값이 없음)을 가질 수도 있다는 것을 나타내는 타입입니다. Optional이 필요한 이유는 프로그램의 안정성을 높이기 위해서입니다. 값이 없을 수 있는 상황을 명시적으로 처리하도록 강제함으로써, 예기치 않은 런타임 에러 (특히 nil 포인터 에러)를 방지할 수 있습니다.

Optional 값을 안전하게 언래핑하는 기본적인 방법 두 가지는 다음과 같습니다.

  1. if let 바인딩: Optional 값이 있는지 확인하고, 있다면 그 값을 새로운 상수에 할당하여 블록 내에서 사용합니다. 값이 nil이면 블록은 실행되지 않습니다.

    if let unwrappedValue = optionalValue {
        print("값이 있습니다: \(unwrappedValue)")
    } else {
        print("값이 없습니다.")
    }
    
  2. guard let 바인딩: 함수나 메서드 내에서 Optional 값이 있는지 확인하고, 없다면 else 블록에서 함수를 종료합니다. 값이 있다면 언래핑된 값을 함수 내에서 계속 사용할 수 있습니다.

    func processValue(optionalValue: Int?) {
        guard let unwrappedValue = optionalValue else {
            print("값이 없습니다. 종료합니다.")
            return
        }
        print("값이 있습니다: \(unwrappedValue)")
    }
    

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 iOS / Swift 면접 질문

← iOS / Swift 면접 질문 전체 보기