hashable은 hasher를 통해서 Int타입의 해쉬 값을 만들어주는 프로토콜입니다. hash란 해시함수에 의해 얻어지는 값으로 hash함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다. 예를 들어 김지훈이라는 스트링을 해시함수를 통해 정수인 해쉬값으로 변환할 수 있습니다. 해쉬값은 고유값이어야 하므로 고유값인지 식별해 줄 수 있는 "=="함수가 필요합니다. 이 함수는 Equatable 프로토콜 안에 정의되어 있으니 hashable은 equatable프로토콜을 따라야합니다. 기본 데이터 타입도 ==을 통해 비교가 가능하므로 equatable프로토콜을 따릅니다.