Any는 함수 타입을 포함하여 모든 타입의 인스턴스를 나타낼 수 있다.
Value 타입(구조체, 열거형), Reference 타입(클래스, 클로저)이건 상관 없이 저장 가능
모든 클래스가 암시적으로 준수하는 프로토콜 (타입이라기보다 프로토콜)
AnyObject는 모든 클래스 타입의 인스턴스를 나타낼 수 있다.
Int, Strint, Bool, Float, Double 등 모두 구조체로 구현되어있는데, 이런 자료형들은 class형이 아니기때문에 AnyObject 타입에 해당되지 않는다.
Any는 모든 타입을 포함할 수 있는 범용 타입
AnyObject는 모든 클래스 타입을 포함할 수 있는 타입
둘 모두 특징으로는 변수에 nil을 할당하지 못한다.
Any나 AnyObject는 런타임 시점에 타입이 결정되기 때문에 컴파일 시점에 해당 타입에 대해 알 수 없다
때문에 다운 캐스팅을 하지 않는다면, 타입별로 가지고 있는 메서드 혹은 프로퍼티에 접근할 수 없다.
Any, AnyObject는 런타임시 타입이 결정되기 때문에 오류가 발생하게 된다면 런타임 에러가 발생하게 되어 오류 수정이 힘들어질 가능성이 존재하기 때문에 잘 사용해야한다!