Hash Code (해시 코드)

2025. 5. 26. 21:38·Software Engineering/Software Development Principles

해시 코드란 객체의 주소 값을 이용해서 해싱(hashing) 기법을 통해 해시 코드라는것을 만들며 주소값으로 만든 고유한 숫자값이라고 볼 수 있습니다. 해시 코드는 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위해 컴퓨터 소프트웨어에 널리 사용됩니다. 해시 코드는 큰 파일에서 중복되는 값을 빠르게 찾을 수 있기 때문에 자주 사용됩니다.

Hash Table (해시 테이블)

해시 테이블은 키(key)를 값(Value)에 매핑하여 사용하는 자료 구조중 하나 입니다. 즉, 키에 해당 하는 값을 찾기 위해 빠른 속도로 키를 검색할 수 있는 자료구조를 의미합니다. 사용할 값에 대해 중복되지 않는 유일한 키 값과 매핑을 시켜 후에 해당 값을 사용할때에 해시 테이블을 1번만 수행하면 되므로 빠르게 데이터를 저장 및 삭제, 조회를 할 수 있습니다.

 

해시의 충돌

해시 테이블의 키 값에 대해서 유일한 값을 준다고 하지만 다른 값에 대해서 동일한 키 값이 발생할 수 있습니다. 이 때에 충돌을 해결하는 방법은 크게 다음과 같습니다.

  1. 충돌이 일어난 인덱스를 뛰어넘어서 빈 공간이 있는지 탐색 후 삽입 후 인덱스를 증가
    개방 주소법 (Open addressing)
  2. 충돌이 일어난 지점을 사용하되, 연결 리스트로 묶고 때로는 해시테이블 이외의 주소를 할당하여 확장
    체이닝 (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
'Software Engineering/Software Development Principles' 카테고리의 다른 글
  • Dead Lock ( 교착 상태 )
  • Process & Thread(프로세스 & 스레드)
  • Callback Function (콜백 함수)
  • 큐 (Queue)
Mr.Vulpes
Mr.Vulpes
여우비가 내리는 시간입니다.
  • Mr.Vulpes
    여우비 개발실
    Mr.Vulpes
  • 전체
    오늘
    어제
    • Browse All Categories (42) N
      • Unreal (10)
        • Core Concepts (7)
        • Unreal For C++ (3)
      • C++ Programming (3) N
        • C Basic (3) N
      • DirectX (4) N
        • Basic (2) N
        • DirectX - Class (1) N
      • Math & Physics (3)
        • Vectors (3)
      • Software Engineering (22) N
        • Software Development Princi.. (18) N
        • Design Pattern (3)
  • hELLO· Designed By정상우.v4.10.3
Mr.Vulpes
Hash Code (해시 코드)
상단으로

티스토리툴바