HashDict
HashDict
튜플 기반의 HashDict 구현 모듈이에요. 이 모듈은 deprecated(더 이상 사용 권장되지 않음) 상태예요. Map 모듈을 대신 사용하세요.
출처: HashDict
본문
HashDict는 과거 Elixir에서 키-값 쌍을 저장하는 해시 기반 사전(dictionary) 자료 구조로 쓰이던 모듈이에요. Elixir 1.2부터 Map이 그 역할을 대체하면서 더 이상 쓰이지 않게 됐어요.
지금은 어떤 코드에서도 이 모듈을 새로 사용할 필요가 없어요. 키-값 데이터를 다루려면 Map을 쓰고, 맵의 함수들이 필요하면 Map 모듈의 함수들을 사용하면 돼요. HashDict가 제공하던 대부분의 동작은 Map과 Enum에서 이미 지원되고 있죠. 기존 코드에서 HashDict가 보인다면, Map으로의 마이그레이션이 거의 항상 옳은 선택이에요.
메모리·성능 특성이 다르다는 오래된 지식 때문에 여전히 HashDict를 떠올리는 경우가 있지만, 현대 Elixir에서 맵은 일반적인 키-값 저장에 최적화되어 있고 권장되는 선택이에요.
이 모듈이 떠 있긴 해도, 실제로는 이 모듈의 함수들을 직접 호출할 일이 사실상 없어요. 대부분의 동작은 Map의 Map.get/3, Map.put/3, Map.delete/2, Map.new/1 같은 함수와 겹치고, 순회가 필요하면 Enum 함수로 충분하죠. 특히 Dict처럼 더 일반적인 사전 추상화가 있던 시절의 코드를 옮길 때는, 해당 호출을 똑같은 의미의 맵 연산으로 바꾸는 것만으로도 충분해요.
한 가지 분명히 해둘 점은, HashDict 모듈은 API를 유지하기 위해 구현만 남아 있을 뿐 성능상의 이점을 제공하지 않는다는 거예요. 새로 작성하는 코드는 물론, 유지 보수 중인 기존 코드도 맵으로 통일하는 게 가장 깔끔한 방향이에요.