안전한 코드는 크래시가 안난다는 말이 아니다.
"안전한 API란 모든 가능한 입력값에 대해 일관된 결과를 낸다는 뜻이지, 크래시가 안난다는 뜻이 아니다." nil인 옵셔널 변수를 강제로 언래핑 하면 크래시가 납니다. 항상 같은 결과를 내기 때문에 이 API는 안전하다고 볼 수 있는 것이고, 이와 다르게 unsafelyUnwrapped는 리시버가 nil인 경우 크래시가 날 수도 있고, 쓰레기 값이 반환될수도 있습니다. 명확히 정의된 결과가 없기 때문에 안전하지 않은 API 인 것이죠. 하지만 이걸 앱에도 적용할 수 있을까요? API 개발자가 아니라 앱 개발자라면 크래시는 무조건 피해야 하는 결과라고 생각합니다. 앱 크래시는 API의 크래시와 다르게 당하는 사람(?)이 왜 이런 결과가 나왔는지 알 수 없기 때문입니다. 그래서 결코 "의도한 크래시"라는건 있을 수 없습니다. 개발자가 처리하지 못한 에러 만 있을 뿐이죠. 앱은 크래시를 내는 대신 에러 화면으로 최종 사용자에게 에러를 보여주고 다음 행동을 추천해줘야 합니다. 여러분들의 생각은 어떤가요? https://developer.apple.com/videos/play/wwdc2020/10648/