특정 역할을 하기 위한 메소드, 프로퍼티, 기타 요구사항 등의 청사진(자세한 계획을 일컫는다) 프로토콜은 class나 struct의 행동을 정의하는 역할을 합니다.프로토콜은 행동을 정의하기만 할 뿐 구현하지 않습니다. 어떠한 클래스나 구조체가 해당 프로토콜을 따른다는 것은 프로토콜에 정의된 행동들을 구현해야함을 의미합니다.