hash 함수란
- 영단어로서의 hash는 감자나 고기를 잘게 썬 요리(해시 브라운!), 전화기의 #버튼 등을 의미함
- 아마 재료를 다질 때 가로로 여러번, 세로로 여러번 칼질을 하기 때문인 듯
- hash 함수는, 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수
이 과정에서 원래의 데이터가 '다져지기' 때문에 이런 이름이 붙었을까?
- 같은 데이터에서는 같은 hash 값이 리턴됨
- 서로 다른 데이터에서 같은 hash 값이 리턴될 수도 있음
- '다져진' 데이터만으로는 원형을 추적하기 어렵기 때문에 암호학에서도 활용됨
hash 테이블
- key-value 쌍의 key값을 hash값으로 저장하여, 정렬 없이도 빠른 검색이 가능하게 함
- 이진탐색 등의 빠른 검색방법은 자료가 정렬되어있음을 전제로 하기 때문
- 이것 때문에 헷갈렸지만, 아무튼 hash 그 자체로는 dictionary 등의 자료형과 관련 있는 개념은 아님
참고한곳