해시 코드란 객체의 주소 값을 이용해서 해싱(hashing) 기법을 통해 해시 코드라는것을 만들며 주소값으로 만든 고유한 숫자값이라고 볼 수 있습니다. 해시 코드는 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위해 컴퓨터 소프트웨어에 널리 사용됩니다. 해시 코드는 큰 파일에서 중복되는 값을 빠르게 찾을 수 있기 때문에 자주 사용됩니다.
Hash Table (해시 테이블)
해시 테이블은 키(key)를 값(Value)에 매핑하여 사용하는 자료 구조중 하나 입니다. 즉, 키에 해당 하는 값을 찾기 위해 빠른 속도로 키를 검색할 수 있는 자료구조를 의미합니다. 사용할 값에 대해 중복되지 않는 유일한 키 값과 매핑을 시켜 후에 해당 값을 사용할때에 해시 테이블을 1번만 수행하면 되므로 빠르게 데이터를 저장 및 삭제, 조회를 할 수 있습니다.
해시의 충돌
해시 테이블의 키 값에 대해서 유일한 값을 준다고 하지만 다른 값에 대해서 동일한 키 값이 발생할 수 있습니다. 이 때에 충돌을 해결하는 방법은 크게 다음과 같습니다.
- 충돌이 일어난 인덱스를 뛰어넘어서 빈 공간이 있는지 탐색 후 삽입 후 인덱스를 증가
개방 주소법 (Open addressing) - 충돌이 일어난 지점을 사용하되, 연결 리스트로 묶고 때로는 해시테이블 이외의 주소를 할당하여 확장
체이닝 (Chaning)
'Software Engineering > Software Development Principles' 카테고리의 다른 글
Dead Lock ( 교착 상태 ) (0) | 2025.05.27 |
---|---|
Process & Thread(프로세스 & 스레드) (0) | 2025.05.22 |
Callback Function (콜백 함수) (0) | 2025.05.21 |
큐 (Queue) (0) | 2025.05.19 |
Virtual Memory ( 가상 메모리 ) (0) | 2025.05.16 |