-
24년 5월 28일 TIL공부 기록 2024. 5. 28. 21:21
StringToHash 메서드에 대해
StringToHash는 주어진 문자열을 해시 값으로 변환한다. 이 해시 값은 문자열을 직접 비교하는 것보다 훨씬 빠르게 비교할 수 있다. 게임 개발에서 특히 유용하다.
Unity에서 Animator.StringToHash 메서드는 애니메이션 상태나 파라미터 이름을 해쉬 값으로 변환한다. 이를 통해 애니메이션 상태 전환 시 성능을 향상시킬 수 있다.
StringToHash를 사용해야 하는 이유
- 성능 향상: 문자열 비교는 비용이 많이 들지만, 정수 값 비교는 훨씬 효율적이다.
- 일관성 유지: 해시 값을 사용하면 문자열 오타로 인한 버그를 줄일 수 있다.
- 메모리 절약: 해시 값을 사용하면 문자열을 직접 저장할 필요가 없어 메모리를 절약할 수 있다.
주의사항
StringToHash 메서드를 사용할 때 유의할 점:
- 해시 충돌: 해시 충돌 가능성은 매우 낮지만, 완전히 배제할 수는 없다. 중요한 로직에서는 추가적인 검증이 필요할 수 있다.
- 읽기 전용 사용: 해시 값은 읽기 전용으로 사용하고, 원본 문자열이 필요할 경우 별도로 저장해두는 것이 좋다.
결론
StringToHash 메서드는 게임 개발에서 성능 최적화의 중요한 도구다. 특히 애니메이션 상태 전환과 같은 빈번한 문자열 비교 작업에서 유용하게 사용될 수 있다. 이를 통해 성능을 향상시키고, 코드의 일관성을 유지할 수 있다. 문자열연산은 비용이 상당히 크다.
그리고 단방향 함수로써 문자열에서 해쉬값으로 바꿀 수만 있고 해쉬값에서 문자열로 다시 바꿀 수는 없다. 이로 인해 보안성이 좋다. 비밀번호 같은 것을 해쉬값으로 저장을 해서 안전성을 높일 수 있다.
'공부 기록' 카테고리의 다른 글
24년 5월 30일 TIL (0) 2024.05.30 24년 5월 29일 TIL (1) 2024.05.29 24년 5월 27일 TIL (0) 2024.05.27 24년 5월 25일 TIL (0) 2024.05.25 24년 5월 24일 TIL (0) 2024.05.24