컴퓨터 과학

[자료구조] 해시 테이블

Data Jun 2025. 12. 7. 13:19

해시(Hash)는 데이터를 빠르게 저장하고 조회하기 위해 사용하는 핵심 개념입니다.
특히 파이썬의 dict나 set 같은 자료형도 내부적으로 이 해시 테이블(Hash Table) 구조를 사용합니다.
이 글에서는 해시의 기본 구성 요소인 해시 함수, 해시 값, 해시 테이블을 간단하게 정리해보겠습니다.

 

 

1. 해시 함수(Hash Function)란?

 

해시 함수는 임의의 값을 고정된 크기의 숫자로 변환하는 함수입니다.

 

예를 들어,

hash("Apple") → 7   (예시)

문자열 “Apple”을 어떤 규칙에 따라 숫자 7로 바꿔주는 역할을 합니다.
이 숫자를 바로 배열의 인덱스처럼 사용할 수 있게 되는 것이 해시의 핵심입니다.

 

2. 해시 값(Hash Value)이란?

해시 값은 해시 함수의 결과로 나온 숫자를 의미합니다.

즉,

  • “Apple”이라는 키 → 해시 함수 → 7이라는 숫자(해시 값)
    이렇게 변환된 수는 나중에 데이터를 빠르게 찾기 위한 주소 역할을 합니다.

 

3. 해시 테이블(Hash Table)이란?

 

해시 테이블은 해시 값을 인덱스로 사용해 데이터를 저장하는 자료구조입니다.

 

예를 들어 저장하려는 데이터가:

Key: "Apple"
Value: 20

이고 해시 값이 7이라면,

[ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ... ]
                              ↑
                   Apple: 20 저장

이렇게 배열의 7번 칸에 Apple:20을 저장합니다.

 

나중에 “Apple” 값을 찾을 때도:

  • "Apple" → 해시 함수 적용 → 7
  • 배열 7번으로 바로 이동 → 값 조회

이 과정만으로 값을 찾기 때문에 평균적으로 O(1)의 매우 빠른 탐색 속도를 가지게 됩니다.

 

 

정리하면

개념 설명
해시 함수 키를 고정된 숫자로 바꾸는 함수
해시 값 해시 함수의 결과 숫자
해시 테이블 해시 값을 인덱스로 사용해 데이터를 저장하는 배열 기반 구

즉,

해시 테이블은 “해시 값”을 이용해 데이터를 빠르게 저장하고 조회할 수 있게 만든 자료구조이다.

파이썬의 dict, set, 캐시 시스템, DB 인덱스 등 다양한 곳에서 사용되는 이유가 바로 이 빠른 조회 성능 덕분입니다.