해시 편집하기
최신판 | 당신의 편집 | ||
28번째 줄: | 28번째 줄: | ||
=== 해싱 === | === 해싱 === | ||
− | [[해싱]](hashing)이란 해시함수를 사용하여 주어진 값을 변환한 뒤, 해시 테이블에 저장하고 검색하는 기법을 말한다. 해싱에 사용되는 [[자료구조]]는 [[배열]](array)과 [[ | + | [[해싱]](hashing)이란 해시함수를 사용하여 주어진 값을 변환한 뒤, 해시 테이블에 저장하고 검색하는 기법을 말한다. 해싱에 사용되는 [[자료구조]]는 [[배열]](array)과 [[연결 리스트]](linked list)가 조합된 형태이다. 짧은 해시 키를 사용하여 항목을 찾으면, 원래의 값을 이용하여 찾는 것보다 더 빠르기 때문에, 해싱은 [[데이터베이스]] 내의 항목들을 색인하고 검색하는데 사용된다. <ref>Vangie Beal, 〈[https://www.webopedia.com/TERM/H/hashing.html hashing]〉, 《웨보피디아》</ref> 해싱은 데이터들을 저장하거나 찾을 때 인덱스(index)라는 또다른 데이터 스트럭쳐를 이용하는 대신, 각 데이터들이 테이블의 어느 영역에 위치할 것인가를 결정해주는 해시함수를 사용하여 일정한 시간 내에 데이터들을 효과적으로 찾을 수 있도록 해주는 것이다. 따라서 데이터들은 순차적으로 저장되는 것이 아니라 테이블 전 영역에 걸쳐서 골고루 분포하게 되며, 저장된 데이터를 찾을 때에도 해시함수를 사용하면 곧바로 그 위치를 알아내는 것이 가능하기 때문에 매우 빠른 속도로 데이터를 검색할 수가 있게 된다. <ref>Omnis, 〈[https://omnis.tistory.com/entry/Hashing-%EC%9D%B4%EB%9E%80 Hashing 이란?]〉, 《티스토리》, 2012-04-09</ref> |
== 해시 방법 == | == 해시 방법 == |