왜 배열이 linked list를 이기는가, 왜 분기가 10배 느려지는가, M1이 Intel을 어떻게 이겼는가. CPU 파이프라인·Out-of-Order·L1~L3 캐시·브랜치 예측·Meltdown/Spectre·Apple Silicon·ARM/x86/RISC-V·SIMD·GPU SM/Warp·HBM/CXL까지 — 소프트웨어 엔지니어가 알아야 할 2025년 하드웨어 전부.
모든 언어와 시스템에 들어있는 기본 자료구조지만 현대 구현의 내부는 잘 알려지지 않은 해시맵. 이 글은 해시맵을 처음부터 해부합니다. 체이닝 vs 개방 주소법, Linear/Quadratic/Double probing, Robin Hood의 분산 감소 전략, Hopscotch와 Cuckoo, Google Swiss Table이 SIMD로 16개 슬롯을 한 번에 비교하는 방법, Facebook F14, Rust hashbrown, Python dict의 perturbation, Java HashMap의 tree 전환, 해시 함수 선택(SipHash vs xxHash vs FNV), hash flooding DDoS, 그리고 벤치마크와 실무 튜닝까지 — 현대 해시맵의 성능 비결을 제대로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.
파이썬 `dict`, 자바 `HashMap`, 러스트 `HashMap`, C++ `unordered_map`, Go `map` — 매일 쓰는 이 자료구조들이 왜 전혀 다르게 구현됐는가. 80년대 체이닝부터 2017년 Google Swiss Table까지, 해시 테이블이 30배 빨라진 진화 과정. Java가 8.0에서 Red-Black Tree로 떨어지는 이유, Rust가 왜 느린 SipHash를 기본으로 쓰는지, Robin Hood hashing의 공평함, SIMD로 16개 버킷을 병렬 비교하는 Swiss Table의 마법까지. 매일 쓰는 Map 뒤의 수십 년 엔지니어링.
모든 현대 CPU의 숨은 병렬성 SIMD. 이 글은 CPU 벡터화를 처음부터 해부합니다. 1996년 MMX부터 AVX-512, ARM NEON, SVE2까지의 진화, 128/256/512 bit 레지스터와 대표 명령어, horizontal/vertical 연산 패턴, SoA vs AoS 데이터 레이아웃, 자동 벡터화의 한계, C/C++ intrinsics 직접 사용, simdjson이 4 GB/s JSON 파싱을 달성한 방법, Highway와 std::simd로 포터블 SIMD 작성, Apple Silicon과 WebAssembly SIMD, 그리고 ML 추론/압축/암호화에서의 실전 활용까지 — 현대 고성능 시스템의 핵심 기법을 제대로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.