내 생각 정리
옵셔널은 iOS 에서 앱을 구동할 때 안전하게 구동될 수 있도록 만들어진 타입입니다. 보통 값이 없다라는 표현이 되는 nil을 관리하기 위해서 사용하고, 구동에 필요한 데이터가 없을 경우 앱이 크래시가 날 상황이 생기는데, 이를 막고자 도입된 Swift 만의 고유 안전처리 방식입니다.
- 옵셔널 바인딩과 강제 언래핑의 차이점은 무엇인가요?
- 옵셔널 바인딩은 값이 없을 경우도 안전하게 처리할 수 있는 옵션이고, 강제 언래핑은 nil 값이 나오는 것을 감수하고서라도 바로 접근하는 차이점이 존재합니다.
- 옵셔널 바인딩은 기본적으로 guard 문 혹은 if 문으로 처리하여 혹시나의 상황을 막을 수 있는 반면에, 강제 언래핑은 느낌표를 사용하여 강제로 언래핑을 하여 앱의 강제 종료를 막을 수 없습니다.
- 옵셔널 체이닝의 동작 원리는 무엇이며, 어떻게 사용하나요?
- 옵셔널 체이닝은 옵셔널값으로 생성된 데이터가 해당주소에 없거나 nil일 경우, 체이닝으로 이어진 데이터나 액션이 더이상 수행되지 않고 마무리되는 동작입니다. 보통 nil 값이 들어올수도 있는 데이터에 사용하게 됩니다.
- 암시적 언래핑 옵셔널(Implicitly Unwrapped Optional)은 어떤 경우에 사용해야 하나요?
- 반드시 초기화가 보장되어있는 곳에 사용합니다. 예를 들어 클래스의 초기화에 필요한 필수 데이터에 사용하거나, 안전한 필수 데이터 사용을 위해 체크하는 용도로도 사용합니다.