공백 하나 확인하는 데 Guava가 완벽 해시 함수를 쓴 이유
How hard is it to check for whitespace?

Guava의 isWhitespace 메서드가 단순한 비교가 아닌 완벽 해시 함수로 구현된 이유를 파고든다. Unicode는 25개의 공백 문자를 정의하지만 Java, Python, JavaScript는 각기 다른 집합을 인정한다. 예를 들어 Java는 U+00A0을 제외하고, Python은 U+001C를 포함하며, JavaScript는 U+FEFF를 포함한다. 또한 Unicode 버전 업데이트로 공백 집합이 바뀌면 하위 호환성 유지가 어려워진다. Guava는 곱셈과 시프트로 32개 슬롯 테이블을 인덱싱해 충돌 없이 빠르게 검사한다.
AI가 우선인 세상에서 isWhitespace처럼 단순한 함수의 내부를 들여다볼 이유가 거의 없어지면서, 이런 글은 점점 보기 드물어지는 것 같다.