모바일 개발 · 기초
Swift의 Optional이 무엇이며, 왜 필요한지 설명해주세요. 또한, Optional 값을 안전하게 언래핑하는 기본적인 방법 두 가지를 설명해주세요.
힌트 · `Optional`은 값이 있을 수도 있고 없을 수도 있음을 나타내는 타입입니다. `if let`과 `guard let`을 사용하여 안전하게 값을 추출할 수 있습니다.
옵셔널nil안전성강제 언래핑옵셔널 바인딩
모범답안
Swift의 Optional은 변수나 상수가 값을 가질 수도 있고, nil (값이 없음)을 가질 수도 있다는 것을 나타내는 타입입니다. Optional이 필요한 이유는 프로그램의 안정성을 높이기 위해서입니다. 값이 없을 수 있는 상황을 명시적으로 처리하도록 강제함으로써, 예기치 않은 런타임 에러 (특히 nil 포인터 에러)를 방지할 수 있습니다.
Optional 값을 안전하게 언래핑하는 기본적인 방법 두 가지는 다음과 같습니다.
if let바인딩: Optional 값이 있는지 확인하고, 있다면 그 값을 새로운 상수에 할당하여 블록 내에서 사용합니다. 값이nil이면 블록은 실행되지 않습니다.if let unwrappedValue = optionalValue { print("값이 있습니다: \(unwrappedValue)") } else { print("값이 없습니다.") }guard let바인딩: 함수나 메서드 내에서 Optional 값이 있는지 확인하고, 없다면else블록에서 함수를 종료합니다. 값이 있다면 언래핑된 값을 함수 내에서 계속 사용할 수 있습니다.func processValue(optionalValue: Int?) { guard let unwrappedValue = optionalValue else { print("값이 없습니다. 종료합니다.") return } print("값이 있습니다: \(unwrappedValue)") }
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 iOS / Swift 면접 질문
- Swift에서 `var`와 `let`의 차이점을 설명하고, 각각 어떤 경우에 사용하는 것이 적절한지 예시와 함께 설명해주세요.
- Swift에서 `Struct`와 `Class`의 주요 차이점은 무엇인가요? 값 타입(Value Type)과 참조 타입(Reference Type)의 관점에서 설명해주세요.
- iOS 앱 개발에서 `Delegate` 패턴은 어떤 목적으로 사용되며, 어떻게 구현하는지 기본적인 원리를 설명해주세요.
- Swift의 `Protocol`이 무엇이며, 어떤 상황에서 유용하게 사용될 수 있는지 구체적인 예를 들어 설명해주세요.