[자료구조] 7. 해쉬(Hash)
카테고리: Data Structure
태그: Data Structure, Unity
해시(Hash)
해시(Hash)
해시(Hash) - Dictionary
특징, 장단점
특징
1. 해시 함수: 키, 해시테이블의 주소로 변환
2. key, value 쌍 구조
3. 해시충돌 : 두개이상의 같은 해시 값을 가질 때 충돌이 발생함, 해결하기 위한 여러 방법이 존재함
장점
1. 빠른 검색 속도, 0(1)
2. 데이터의 삽입과 삭제도 빠름
3. 직관적인 키- 값
4. 데이터 확장성이 뛰어남
단점
1. 해시 충돌로 인한 성능 저하
2. 해시 테이블은 순서가 없음
3. 좋은 해시 함수의 필요성
게임 개발 활용
활용 상황
1. 대량 데이터를 빠르게 접근, 수정해야할 때
2. 리소스를 관리할 때
3. 서버와 클라이언트 간에 데이터를 주고받을 때 데이터의 무결성을 보장받아야할 때
4. 게임 내에서 중요한 정보를 암호화 할 때
5. 무작위 수를 생성할 때
활용 예시
1. 아이템 관리 - 대형 아이템 DB를 다룰 때, 관리, 검색하기 위한 시스템
2. 리소스 관리 - 맵 유닛 등의 여러 데이터를 해시값으로 변환, 로딩
3. 멀티 플레이어 시 데이터 동기화(해시값 주기적 변환, 클라이언트와 비교)
Animator.StringToHash
using UnityEngine;
public class PlayerController : MonoBehaviour
{
Animator animator;
int jumpHash;
void Start()
{
animator = GetComponent<Animator>();
// "Jump" 애니메이션 상태의 해시 값을 얻음
jumpHash = Animator.StringToHash("Jump");
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
// 스페이스 바를 누르면 점프 애니메이션 실행
animator.SetTrigger(jumpHash);
}
}
}
댓글남기기