Hash defense

해시 성능 판단 기준

외부 입력이 해시 테이블로 들어오면 충돌 집중 입력이 평균 성능 가정을 깨뜨릴 수 있다. 방어 수준은 해시 함수 이름이 아니라 관측 지표와 운영 예산으로 정해야 한다.

충돌 집중 입력에서 볼 지표

1

최대 버킷 길이

버킷 수 8에서 키 100개가 한쪽으로 몰리면 조회가 체인 길이에 끌려간다.

2

로드 팩터

로드 팩터가 높으면 충돌 밀도와 재해시를 함께 본다.

3

tail latency

평균 삽입 시간이 정상이어도 꼬리 지연이 길어지면 충돌 공격이나 편향 입력을 의심한다.

완화 흐름

A

입력 정규화

공백과 대소문자를 통일해 같은 의미 키가 불필요하게 분산되거나 중복 저장되지 않게 한다.

B

솔트 해시

같은 키라도 버킷 위치 예측을 어렵게 만들어 의도적 충돌 설계를 방해한다.

C

임계치 기반 재해시

버킷을 늘려 체인을 다시 분산하지만, 단일 재해시 이벤트는 `O(N)`일 수 있다.