스위프트에서 안전하지 않은 API에 대해서 이야기한다고 합니다.
타입 프로토콜 함수 프로퍼티들중 일부는 명백하게 안전하지 않다고 합니다.
표준라이브러리의 대부분의 작업은 작업전에 검증하는 코드가 있어서 안전하게 돌아가도록 하고 있습니다.
포스언레핑 오퍼레이터를 이용하여 스위프트 옵셔널타입에대해서 처리를 합니다.
그 값은 nil이 되면 안됩니다.
하지만 우리가 잘못해서 nil이라면 런타임 에러가 일어납니다.
안전한api의 목표는 크래시를 없애는게 아닙니다.
사실은 반대입니다.
외부의 입력을 받을때 제약조건을 가지고 안전하게 api를 사용하기위해 런타임오류를 발생시키는 것입니다.
외부에서 잘못된 입력이 들어왔을때 해결을 해야합니다. 크래시 리포트로 어떤일이 생겼는지 파악할 수 있습니다.
문제를 해결하고 바로 잡을 수 있습니다.
스위프트는 플랫한 메모리공간을 가지고 있습니다.
메모리를 선형구조로 처리합니다.
개별적으로는 8비트 공간입니다.
보통 16진수 정수 값으로 인쇄 됩니다.
메모리는 시간이 지남으로써 삭제되기도 하는데 우리는 일반적으로 메모리를 직접 관리할 일이 없습니다.
그리고 포인터를 잘못사용하면 댕글링 포인트, 사용자의 데이터가 날라갈수 도 있는 등의 이슈가 있고 런타임 에러가 날수 있습니다.
메모리 관리와 관련된 이슈는 아래 세션을 참고해주세요.
포인터를 사용하면 위험하다고 하는데 왜 써야하나요
•
안전하지 않은 언어와 상호 운용 (c언어, 옵씨)