왜 프로토콜 타입은 프로토콜을 따르지 않는가
Why A Protocol Type Doesn’t Conform to The Protocol Itself?
프로토콜은 사실 타입은 아니고, 실제 타입이 구현해야 할 어떤 ‘요구사항’을 정의한 것입니다. 그리고 실제 타입을 정의할 때 프로토콜이 요구하는 메소드와 멤버를 구현하면 해당 타입이 프로토콜을 준수한다(혹은 프로토콜을 채택한다)고 표현하죠. 프로토콜은 타입이 아니지만, 특정 객체에 대해서 프로토콜이 정의한 인터페이스를 사용하는 것에만 관심이 있는 상황을 가정해보겠습니다. 이 경우에 우리는 해당 객체에 대해서 이미 알고있는(프로토콜이 정의한) 메소드나 프로퍼티만 사용하고, 실제의 타입은 알 수 없거나 정해지지 않았다고 간주해야 합니다. 그렇다면 이러한 객체는 구체적인 타입을 확정할 수는 없지만 그 프로토콜을 준수하고 있다는 것만 보장하기 때문에, 프로토콜을 변수의 타입처럼 사용하는 것이 가능합니다.
더 보기 »왜 프로토콜 타입은 프로토콜을 따르지 않는가