Go 1.24 맵 내부: Swiss Table 기반 새 구현 살펴보기
How Swiss tables work in Go built-in map

Go 1.24부터 맵의 내부 구현이 Swiss Table로 교체되었습니다. 이 글은 기존 해시 테이블 구조를 시각적으로 설명하며, 그룹과 테이블의 개념, 제어 바이트와 SIMD를 활용한 빠른 검색, 삽입·삭제·성장 과정을 자세히 다룹니다. 또한 분할 그룹 레이아웃 등 새로운 최적화 기법도 소개합니다.
SIMD를 사용하면 CPU가 여러 바이트 값을 병렬로 비교할 수 있어, Go는 8개의 제어 바이트를 한 번에 비교해 후보 슬롯을 빠르게 찾아냅니다.
- nasso_dev
스위스 테이블은 구글의 취리히 사무소에서 일하는 엔지니어들이 발명했기 때문에 그런 이름이 붙었습니다. 같은 구글에서 나온 프로그래밍 언어인 Go가 이걸 안 쓰고 있었다니 놀랍네요! 스위스 테이블 개발에 관한 훌륭한 강연으로 Matt Kulukundis가 CppCon 2017에서 한 이 강연을 강력히 추천합니다: "빠르고 효율적이며 캐시 친화적인 해시 테이블을 단계별로 설계하기" https://youtu.be/ncHmEUmJZf4