1. 해시 테이블(Hash Table) 정의

  • 정의:

    • 해시 테이블은 키(Key)값(Value) 쌍으로 이루어진 데이터 구조입니다.
    • 대량의 데이터를 빠르게 탐색하거나 저장하기 위해 사용됩니다.
  • 특징:

    • 일반적인 배열보다 더 많은 메모리를 사용.
    • 키(Key)를 사용하여 값을 조회하기 때문에 빠른 탐색 속도를 제공합니다.
  • 예시:

    • 전화번호부:
      • Key: 이름
      • Value: 전화번호
      • 이름(Key)을 통해 전화번호(Value)를 즉시 찾아냄.

2. 해시 함수(Hash Function)

  • 역할:
    • 데이터를 단순화하고 특정 위치로 변환하는 공식.
    • 키(Key)를 숫자 등의 형태로 변환하여 해시 테이블의 인덱스를 결정.
  • 특징:
    • 데이터가 고르게 분산되도록 설계.
    • 동일한 입력(Key)은 항상 동일한 출력(Index)을 반환.
  • 필요성:
    • 키 값을 효율적으로 저장하고, 탐색할 때 빠르게 조회.

3. 해시 테이블의 구성 요소

키(Key)

  • 데이터의 고유 식별자.
  • 예: 이름, ID, ISBN 번호 등.

값(Value)

  • 키와 연결된 데이터.
  • 예: 전화번호, 상품 정보 등.

해시 함수

  • 키를 인덱스(주소)로 변환하는 함수.
  • 충돌을 최소화하도록 설계.

4. Unreal Engine에서의 맵(Map)

  • Unreal Engine에서 맵(Map) 변수는 해시 테이블과 유사하게 작동합니다.
  • 구조:
    • Key: 데이터의 고유 식별자 (예: 이름, ID 등).
    • Value: 키와 연결된 데이터 (예: 전화번호, 객체 정보 등).
  • 사용 방법:
    • 블루프린트에서 변수 타입을 Map으로 설정.
    • Key와 Value의 데이터 타입을 선택.
    • 예: String (Key)와 Integer (Value).

5. 맵(Map)의 장점

  • 빠른 탐색 속도:
    • Key를 통해 Value를 즉시 조회.
  • 효율적인 데이터 관리:
    • 중복 키를 허용하지 않아 데이터 무결성 보장.
  • 직관적인 데이터 연결:
    • 키와 값의 쌍을 통해 직관적인 데이터 구조 제공.

6. 전화번호부 예시

설명

  • 키(Key): 이름
  • 값(Value): 전화번호
  • 키를 통해 값에 접근:
    • Key: "ho"
    • Value: "010-214-1244"

구현 과정

  1. Map 변수 설정:

    • Variable TypeMap으로 변경.
    • Key 타입: String.
    • Value 타입: String.
  2. 데이터 추가:

    • Key: "ho".
    • Value: "010-214-1244".
  3. 데이터 조회:

    • Key를 입력하여 연결된 Value를 출력.

7. 해시 테이블의 장단점

장점

  • 탐색 속도: Key를 사용하여 값을 빠르게 조회.
  • 유연성: 다양한 크기의 데이터 관리 가능.
  • 중복 방지: 동일한 Key는 하나의 Value만 저장.

단점

  • 메모리 사용량: 데이터 분산을 위해 많은 메모리를 사용.
  • 충돌 관리 필요: 동일한 해시 값(Index)을 가지는 데이터가 발생할 수 있음.
  • 복잡한 해시 함수 설계: 고르게 분산되도록 설계가 중요.

8. 활용 사례

  • 전화번호부: 이름(Key) → 전화번호(Value).
  • 게임 데이터 관리:
    • 캐릭터 ID(Key) → 상태(Value).
    • 아이템 ID(Key) → 속성(Value).

profile
李家네_공부방

0개의 댓글