해시는 Key-value쌍으로 데이터를 저장하는 자료구조로, 데이터의 효율적인 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수다.
이 때 매핑 전 원래 데이터의 값을 키(Key), 매핑 후 데이터의 값을 해시값(Hash value) 또는 해시코드, 매핑하는 과정 자체를 해싱(hashing) 이라고 한다.
해시 함수의 가장 기본적인 성질은 두 해시 값이 다르면 원래의 데이터의 값도 다르다는 것이다.
하지만, 같은 해시값을 가지고 있더라도 원래의 데이터가 꼭 같은 것은 아니다.
파이썬에서는 딕셔너리(Dictionary) 타입이 해쉬 테이블과 같은 구조다.
기본적으로는, 배열로 미리 Hash Table 크기만큼 생성해서 사용한다.
검색이 많이 필요한 경우, 저장, 삭제, 읽기가 많은 경우, 캐쉬를 구현할 때 주로 사용된다.