ํด์ํจ์๋ key๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ hash๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์ญํ ์ ํ๋ฉฐ, ์ด ๊ณผ์ ์ Hashing์ด๋ผ๊ณ ํ๋ค.
์ด ํด์ํจ์์ key๊ฐ์ input์ผ๋ก ๋ฃ์ผ๋ฉด output์ผ๋ก ๋์ค๋ ๊ฒ์ด ๋ฐ๋ก Hash์ด๋ฉฐ, ์ด ํด์๊ฐ ์ ์ฅ ์์น๊ฐ ๋๋ค.
์ฆ, ํด์ ํจ์๋ key๋ก ํด์๋ฅผ ๋ง๋ค์ด๋ด๋ ํจ์์ด๋ค.
๊ณ ์ ํ ๊ฐ, hash function์ Input์ด๋ค.
key๊ฐ์ ๊ทธ๋๋ก ์ ์ฅ์์ ์์ธ์ผ๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ key์ ๊ธธ์ด๋งํผ ์ ๋ณด๋ฅผ ์ ์ฅํ ๊ณต๊ฐ๋ ๋ฐ๋ก ๋ง๋ จํด์ผํ๊ธฐ ๋๋ฌธ์ key์ ๊ธธ์ด๊ฐ ์ ๊ฐ๊ฐ์ผ ์ ์๋ค. ๋๋ฌธ์ ๊ณ ์ ๋ ๊ธธ์ด์ ํด์๋ก ๋ณ๊ฒฝํด์ค๋ค.
Key๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ Hash๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์ญํ
์๋ก ๋ค๋ฅธ key๊ฐ hashing ํ ๊ฐ์ hash๊ฐ์ด ๋์ค๋ ๊ฒฝ์ฐ๋ฅผ ํด์ ์ถฉ๋์ด๋ผ๊ณ ํ๋ค. ์ด๋ฐ ํด์ ์ถฉ๋์ ๋ฐ์ ํ๋ฅ ์ด ์ ์ ์๋ก ์ข๋ค.
๋ํ ํด์ ์ถฉ๋์ด ๊ท ๋ฑํ๊ฒ ๋ฐ์ํ๋ ๊ฒ๋ ์ค์ํ๋ค. ๋ชจ๋ ํค๊ฐ ๊ฐ์ ํด์๊ฐ์ด ๋์ค๊ฒ ๋๋ฉด, ๋ฐ์ดํฐ ์ ์ฅ ์ ๋นํจ์จ์ฑ์ด ์ปค์ง๊ณ ๋ณด์์ด ์ทจ์ฝํด์ ธ์ ์ข์ง ์๋ค.
์ ์ฅ์(๋ฒํท, ์ฌ๋กฏ)์ ์ต์ข ์ ์ผ๋ก ์ ์ฅ๋๋ ๊ฐ์ผ๋ก, hash์ ๋งค์นญ๋์ด ์ ์ฅ๋๋ค.
ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ํด์ ๊ฐ์ผ๋ก ๋งคํํ๊ณ , ์ด ํด์ ๊ฐ์ ์ฃผ์ ๋๋ ์์ธ ์ผ์ ๋ฐ์ดํฐ(Value)๋ฅผ Key์ ํจ๊ป ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
๋จผ์ ๋ฐ์ดํฐ๋ฅผ Hash Function์ ์ด์ฉํ์ฌ key ๊ฐ์ hash๋ก ๋ณ๊ฒฝํ๋ค.
์ดํ ๋ฏธ๋ฆฌ ์ค๋นํด๋ ์ ์ฅ์(bucket, slot) ์ค์ ์๋ง์ hash ๊ฐ์ ์ฐพ์ value๋ฅผ ์ ์ฅํ๋ค.
๋ฐ๋ผ์ ํด์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์
(์ ์ฅ)๊ณผ์ ์ ์๊ฐ ๋ณต์ก๋๋ O(1)์ด๋ค.
์ ์ฅ๋ ๊ฐ์ ์ญ์ ํ๊ธฐ ์ํด์๋ bucket์ ์ญ์ ํ key์ ๋งค์นญ๋๋ value ๊ฐ์ ์ฐพ์์ ์ญ์ ํ๋ค.
๋ฐ๋ผ์ ํด์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ญ์ ๊ณผ์ ์ ์๊ฐ ๋ณต์ก๋๋ O(1)์ด๋ค.
key๋ฅผ ์ด์ฉํด value๋ฅผ ์ฐพ์๋ด๋ ๊ณผ์ ์ด๋ค. key๊ฐ๊ณผ HashFunction์ ์ด์ฉํด hash๋ฅผ ์ฐพ๊ณ , ์ด hash๋ก value๋ฅผ ์ฐพ์ ์ ์๋ค.
ํด์ ์ถฉ๋์ด ์ผ์ด๋์ง ์๋๋ค๋ ๊ฐ์ ํ์ ๋ฐ์ดํฐ ๊ฒ์์ ์๊ฐ ๋ณต์ก๋๋ O(1)์ด๋ค.
ํด์ ํ ์ด๋ธ์ key - value๊ฐ 1:1๋ก ๋งคํ๋์ด์๊ธฐ ๋๋ฌธ์ ์ฝ์ , ์ญ์ , ๊ฒ์์ ๊ณผ์ ์์ ๋ชจ๋ ํ๊ท ์ ์ผ๋ก O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐฉ ์ฃผ์๋ฒ, ์ฒด์ด๋๊ณผ ๊ฐ์ ๊ธฐ๋ฒ์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ค.
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ์ ์ฅ ๊ณต๊ฐ์ ๋ง๋ค์ด๋์ผํด์ ๋ง๋ค์ด๋ ๊ณต๊ฐ์ด ๋ค ์ฐจ์ง ์์์ ๋๋ ํจ์จ์ฑ์ด ๋จ์ด์ง๋ค.
ํด์ ํจ์๊ฐ ๋ณต์กํ๋ฉด hash๋ฅผ ๋ง๋๋ ๋ฐ์ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
A์ B๋ฅผ Hash Function์ผ๋ก ํด์ ๊ฐ์ ์ป์๋๋ฐ, ๊ฐ์ด ๋๊ฐ์ ๊ฒฝ์ฐ

์ ์ฅ์(Bucket)์์ ์ถฉ๋์ด ์ผ์ด๋๋ฉด ๊ธฐ์กด ๊ฐ๊ณผ ์๋ก์ด ๊ฐ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ

์ถฉ๋์ ๋๋นํ์ฌ ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ๋ง์ด ๋ง๋ค ํ์๊ฐ ์๋ค. ์ถฉ๋์ด ์๊ธฐ๋ฉด ๊ทธ ๋ ๊ณต๊ฐ์ ๋ง๋ค์ด์ ์ฐ๊ฒฐํด์ฃผ๋ ํ์.
์ฐ๊ฒฐ ๋ฆฌ์คํธ์ด๊ธฐ ๋๋ฌธ์, ๊ฐ์ hash์ ์๋ฃ๋ค์ด ๋ง์ด ์ฐ๊ฒฐ๋๋ฉด ๊ฒ์ ์ ํจ์จ์ด ๋ฎ์์ง๋ค.
์ถฉ๋์ด ์ผ์ด๋๋ฉด ๋น์ด์๋ hash์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
๊ฐ๋ฐฉ ์ฃผ์๋ฒ์ ํด์ํ
์ด๋ธ์ hash์ value๊ฐ 1:1 ๊ด๊ณ๋ฅผ ์ ์งํ๋ค.

์์ ๊ฐ์ ์์์์ John๊ณผ Sandra์ ํด์ ์ถฉ๋์ด ๋ฐ์ํ๊ณ , ์ฐ๋๋ผ๊ฐ ๋น์ด์๋ 153 hash์ ๊ฐ์ ์ ์ฅํ๋ค. ์ดํ Ted๊ฐ 153๋ฒ hash์ ์ ์ฅ์ ํ๋ ค๊ณ ๋ดค๋๋ ์ด๋ฏธ ์ฐ๋๋ผ๊ฐ ์ ์ฅ๋์๊ธฐ ๋๋ฌธ์ ๋ค์ ๋ฒํธ์ธ 154๋ฒ์ ์ ์ฅํ๋ค.

ํด์ ๊ฐ์์ ๊ณ ์ ๊ฐ ๋งํผ ๊ฑด๋๋ฐ๋ฉด์ ๋น์ด์๋ ํด์๊ฐ ๋์ค๋ฉด ์ ์ฅํ๋ค.
์ด ๋ฐฉ๋ฒ์ ํน์ ํด์ ๊ฐ ์ฃผ๋ณ ๋ฒํท์ด ๋ชจ๋ ์ฑ์์ ธ์๋ primary clustring ๋ฌธ์ ์ ์ทจ์ฝํ๋ค๋ ๋จ์ ์ด ์๋ค.
๊ณ ์ ๊ฐ์ด ์๋ 1์นธ -> 4์นธ -> 9์นธ -> 16์นธ ... ์ฒ๋ผ ์ ๊ณฑ์๋งํผ ๊ฑด๋ ๋ฐ๋ฉด์ ๋น ์นธ์ ์ฐพ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ๊ณต๊ฐ์ ๋ง์ด ํ๋ณดํด์ผํ๋ค๋ ๋จ์ ์ด ์๋ค.