1. ํด์ํ ์ด๋ธ ๊ฐ๋ ๊ณผ ์๋ ์๋ฆฌ
ํด์ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด ์๋ฃ๊ตฌ์กฐ๋ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํด์ ๊ฐ์ผ๋ก ๋ณํํ ๋ค, ์ด ๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๊ฒ์ํ๋ค. ํด์ํ ์ด๋ธ์ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค๋ฅผ ์ํด O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
ํด์ํ ์ด๋ธ์ ๋ฐฐ์ด๊ณผ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ๊ตฌ์ฑ๋๋ค. ๋ฐฐ์ด์ ๊ฐ ์ธ๋ฑ์ค์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ํ๋ ๊ฐ์ ํด์๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ค. ์ด๋ ๊ฒ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ํตํด ๊ฐ์ ํด์๊ฐ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ค๊ณผ ์ฐ๊ฒฐํ์ฌ ์ถฉ๋์ ํด๊ฒฐํ๋ค. ์ฆ, ๊ฐ์ ํด์๊ฐ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ค์ ๋งํฌ๋ ๋ฆฌ์คํธ์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋๋ฉฐ, ๊ฐ ์์๋ ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํด์ํ ์ด๋ธ์ ์๋ ์๋ฆฌ๋ ๋ฐ์ดํฐ์ ์ฝ์ , ์ญ์ , ๊ฒ์๊ณผ์ ์ ํตํด ์ค๋ช ํ ์ ์๋ค. ์ฐ์ ๋ฐ์ดํฐ ์ฝ์ ์ ๊ฒฝ์ฐ, ํด์ ํจ์๋ฅผ ํตํด ๋ฐ์ดํฐ์ ํด์๊ฐ์ ์ป์ ๋ค, ํด๋น ํด์๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ์ด ๊ณผ์ ์์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋๋ฐ, ์ด ๋์๋ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ค์ ์ฐ๊ฒฐํ๋ค.
๋ฐ์ดํฐ ์ญ์ ์ ๊ฒฝ์ฐ์๋ ๊ฒ์๊ณผ ๋์ผํ ๊ณผ์ ์ ํตํด ์ญ์ ๋์์ ์ฐพ์ ๋ค, ํด๋น ๋ ธ๋๋ฅผ ๋งํฌ๋ ๋ฆฌ์คํธ์์ ์ ๊ฑฐํ๋ค. ๊ฒ์์ ๊ฒฝ์ฐ, ์ฃผ์ด์ง ํค๋ฅผ ํด์ํจ์๋ฅผ ํตํด ํด์๊ฐ์ผ๋ก ๋ณํํ ๋ค, ํด๋น ํด์๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค. ์ด๋ ํด์๊ฐ์ผ๋ก ์ ์ฅ๋ ๋งํฌ๋ ๋ฆฌ์คํธ์์ ๊ฒ์์ ์ํํด์ผ ํ๋ค.
ํด์ํ ์ด๋ธ์ ํด์ ํจ์์ ์ฑ๋ฅ๊ณผ ์ถฉ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์๋ ํจ์จ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค. ํจ๊ณผ์ ์ธ ํด์ ํจ์ ์ ํ๊ณผ ์ถฉ๋ ํด๊ฒฐ์ ์ํ ์ฒด์ด๋ ๋๋ ๊ฐ๋ฐฉ ์ฃผ์๋ฒ ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ํด์ํ ์ด๋ธ์ ๊ตฌํํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์ก์ธ์ค ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ค.
2. ํด์ํจ์์ ์ญํ ๊ณผ ์ข ๋ฅ
ํด์ํจ์๋ ํด์ํ ์ด๋ธ์์ ๋ฐ์ดํฐ์ ํค๋ฅผ ํด์๊ฐ์ผ๋ก ๋ณํํ๋ ์ญํ ์ ํ๋ค. ํด์ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ํด์๊ฐ์ผ๋ก ๋ณํํ๋ฉด, ์ด๋ฅผ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๊ฒ์ํ๋ ๊ณผ์ ์ ๋น ๋ฅด๊ฒ ์ํํ ์ ์๋ค. ํด์ํจ์๋ ๋ฐ๋์ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํ๋ฉฐ, ๊ฐ๋ฅํ ํ ์ถฉ๋์ ์ต์ํํ๋ ๊ฒ์ด ์ข๋ค.
์ผ๋ฐ์ ์ผ๋ก ํด์ํจ์์ ์ ๋ ฅ์ ์์์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ์ด๊ณ , ์ถ๋ ฅ์ ๊ณ ์ ๋ ๊ธธ์ด์ ํด์ ๊ฐ์ ๋ฐํํ๋ค. ์ด๋, ํด์ํจ์๋ ์ฃผ์ํ ์ฑ์ง์ ๊ฐ์ ธ์ผ ํ๋ค. ์ฒซ์งธ, ๋์ผํ ์ ๋ ฅ์ ๋ํด ํญ์ ๋์ผํ ํด์๊ฐ์ ๋ฐํํด์ผ ํ๋ค. ๋์งธ, ์ ๋ ฅ์ด ๋ฌ๋ผ์ง๋ฉด ํด์๊ฐ ์ญ์ ๋ฌ๋ผ์ ธ์ผ ํ๋ค. ์ ์งธ, ํด์๊ฐ์ผ๋ก๋ถํฐ ์๋ ์ ๋ ฅ์ ์ด๋ ต๊ฒ ์ญ์ถ์ ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์ฆ, ํด์ํจ์๋ ๊ฐ์ฅ ํต์ฌ์ ์ธ ์ฑ์ง์ธ ์ผ๋ฐฉํฅ์ฑ์ ๊ฐ์ ธ์ผ ํ๋ค.
ํด์ํจ์์ ์ข ๋ฅ๋ ๋ค์ํ๋ฉฐ, ๊ฐ๊ฐ์ ์ข ๋ฅ๋ ๋ค๋ฅธ ์ฉ๋์ ์ ํฉํ๋ค. ๋ํ์ ์ธ ํด์ํจ์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค.
2.1. Division Method
๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๊ธฐ๋ณธ์ ์ธ ํด์ํจ์๋ก, ์ ๋ ฅ ๊ฐ์ ํด์ ํ ์ด๋ธ ํฌ๊ธฐ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ํด์๊ฐ์ผ๋ก ์ฌ์ฉํ๋ค. ๋จ์ ์ ํด์ ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์์(prime number)์ฌ์ผ ์ต์ ์ ํด์ํจ์๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
2.2. Multiplication Method
๊ณฑ์ ๋ฉ์๋๋ ์ ๋ ฅ๊ฐ์ ๊ณ ์ ๋ ์ค์ A๋ฅผ ๊ณฑํ ๋ค, ์์ ๋ถ๋ถ๋ง ์ทจํ ํ ํด์ ํ ์ด๋ธ์ ํฌ๊ธฐ๋ฅผ ๊ณฑํ๋ค. ์์ ๋ถ๋ถ๋ง ์ทจํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ 0๊ณผ 1 ์ฌ์ด๊ฐ์ด์ด์ผ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก A๋ (sqrt(5)-1)/2์ ๊ฐ์ ๊ฐ์ ์ฌ์ฉํ๋ค.
2.3. Folding Method
์ ๋ ฅ๊ฐ์ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋์ด ํฉ์ฐํ ๋ค, ํด์ ํ ์ด๋ธ ํฌ๊ธฐ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ํด์๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ฅ ๊ฐ์ด 1234567์ด๊ณ ํด์ ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ 1000์ธ ๊ฒฝ์ฐ, 12+34+56+7 = 109์ ํด์๊ฐ์ผ๋ก ์ฌ์ฉํ๋ค.
2.4. Universal Hashing
์ผ๋ จ์ ํด์ํจ์ ์งํฉ์ ์ฌ์ฉํ์ฌ ์ถฉ๋์ ์ต์ํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ฐ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ํด ๋ฌด์์๋ก ์ ํ๋ ํด์ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ํตํด ์ด๋ค ์ ๋ ฅ๊ฐ์ด ์ฃผ์ด์ ธ๋ ์ถฉ๋์ ์ต์ํํ ์ ์๋ค. ํ์ง๋ง ์ด๋ ๋ฌด์์ ์ ํ ํ๋ก์ธ์ค๋ฅผ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ๊ณ์ฐ์ด ํ์ํ๋ค.
๊ฐ๊ฐ์ ํด์ํจ์ ์ข ๋ฅ๋ ํน๋ณํ ์ํฉ์์ ์ต์ ์ ์ฑ๋ฅ์ ๋ฐํํ๋ค. ํด์ํจ์๋ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค์ ํฐ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ์ ์ ํ ํด์ํจ์๋ฅผ ์ ํํ๊ณ ์ ์ฉํด์ผ ํ๋ค.
3. ํด์ํ ์ด๋ธ์ ์ฅ์ ๊ณผ ํ์ฉ ์์
ํด์ํ ์ด๋ธ์ ๋ค์ํ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ด์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์ฉ๋๊ณ ์๋ค. ์ด ์ฅ์ ๋ค์ ํด์ํ ์ด๋ธ์ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค์ ๊ด๋ จ์ด ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ๋ค.
3.1. ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค
ํด์ํ ์ด๋ธ์ ํด์ํจ์๋ฅผ ์ฌ์ฉํ์ฌ O(1)์ ์๊ฐ ๋ณต์ก๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ , ์ญ์ , ๊ฒ์ํ ์ ์๋ค. ํด์ํจ์๋ฅผ ํตํด ๋ฐ์ดํฐ์ ํด์๊ฐ์ ์ป๊ณ , ์ด ๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅธ ์ก์ธ์ค ์ฑ๋ฅ์ ์ ๊ณตํ๋ค. ๋ง์ฝ ์ถฉ๋์ด ๋ฐ์ํ๋ค๋ฉด ์ถฉ๋ ํด๊ฒฐ ๋ฉ์ปค๋์ฆ์ ํตํด ๋น ๋ฅธ ๊ฒ์์ ์ ์งํ ์ ์๋ค.
3.2. ์ ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ
ํด์ํ ์ด๋ธ์ ํค์ ๊ฐ์ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ํค-๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋ ์ฌ์ฉ์ ์ ๋ณด, ์ ํ ์ ๋ณด ๋ฑ์ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค. ๋ํ, ๋ฐ์ดํฐ์ ์ฝ์ , ์ญ์ , ์์ , ๊ฒ์ ๋ฑ์ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์ ์์คํ ๋ฑ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉ๋๋ค.
3.3. ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ
ํด์ํ ์ด๋ธ์ ํด์๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ๊ฐ ๊ณ ๋ฅด๊ฒ ๋ถํฌ๋์ด ์ ์ฅ๋๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๊ฐ๊ฐ์ ํด์๊ฐ์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ์ ๋ญ๋น๋ฅผ ์ต์ํํ ์ ์๋ค. ๋ํ, ํด์ํจ์์ ์ ํ๊ณผ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์กฐ์ ํ ์ ์๋ค.
3.4. ์ถฉ๋ ์ฒ๋ฆฌ
์ถฉ๋์ ํด์ํ ์ด๋ธ์์ ๋ฐ๋์ ๋ฐ์ํ ์๋ฐ์ ์๋ ํ์์ด๋ค. ํด์ํจ์๊ฐ ์ ๋ ฅ์ ๋ฒ์๋ฅผ ํด์ ํ ์ด๋ธ์ ํฌ๊ธฐ๋ก ์์ถํ๊ธฐ ๋๋ฌธ์, ์ ๋ ฅ๊ฐ์ ๊ฐ์๋ ํด์ํ ์ด๋ธ ํฌ๊ธฐ๋ณด๋ค ํจ์ฌ ๋ง์ ์ ์๋ค. ๋ฐ๋ผ์, ํจ์ถ๋ ๋ฒ์์์ ๋์ผํ ํด์๊ฐ์ ๊ฐ์ง๋ ์ ๋ ฅ๊ฐ์ด ๋ฐ์ํ ์ ์๋ค. ์ด๋ฅผ ์ถฉ๋์ด๋ผ๊ณ ํ๋ฉฐ, ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฉ์ปค๋์ฆ(์ฒด์ด๋, ๊ฐ๋ฐฉ ์ฃผ์๋ฒ ๋ฑ)์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ์ ์งํ ์ ์๋ค.
ํด์ํ ์ด๋ธ์ ํ์ฉ ์์๋ก๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค: ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ํด์ํ ์ด๋ธ์ ํ์ฉํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ํน์ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ๊ณ ๊ฐ๋ฒํธ๋ฅผ ํค๋ก ํด์ํ ์ด๋ธ์ ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๋ค.
- ์บ์ ์์คํ : ์บ์๋ ์์ฃผ ์ก์ธ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ฅํ์ฌ ์ก์ธ์ค์ ์ง์ฐ ์๊ฐ์ ์ค์ด๋ ๋ฐ ์ฌ์ฉ๋๋ค. ํด์ํ ์ด๋ธ์ ์ฌ์ฉํ๋ฉด ์บ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ํ ์ ์๋ค.
- ์ธ์ฆ ์์คํ : ํด์ํ ์ด๋ธ์ ์ฌ์ฉ์ ์ ๋ณด๋ ์ ๊ทผ ๊ถํ์ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ด๋ฆ์ ํค๋ก ํ๊ณ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ผ๋ก ํ๋ ํด์ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์ธ์ฆ ์์ ์ ์ํํ ์ ์๋ค.
ํด์ํ ์ด๋ธ์ ์ ํํ ํด์ํจ์์ ์ ํ๊ณผ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ์ ๋ฐ๋ผ ๋งค์ฐ ์ ์ฉํ๋ฉฐ, ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋ ์ ์๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค.
4. ํด์์ถฉ๋์ ๋ฌธ์ ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
ํด์์ถฉ๋์ ํด์ํ ์ด๋ธ์์ ํด์๊ฐ์ด ์ค๋ณต๋์ด ๋ฐ์ํ๋ ํ์์ ๋งํ๋ค. ํด์ํจ์๋ ์ ๋ ฅ๊ฐ์ ํด์๊ฐ์ผ๋ก ์์ถํ๋ ๊ณผ์ ์์ ์ ๋ ฅ๊ฐ๋ค์ด ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ๋ณด๋ค ๋ง์ ๊ฒฝ์ฐ, ๋์ผํ ํด์๊ฐ์ ๊ฐ์ง๋ ์ ๋ ฅ๊ฐ๋ค์ด ์กด์ฌํ ์ ์๋ค. ์ด๋ฌํ ์ถฉ๋์ ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ์ ์ ํ์ํค๊ณ , ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ํด์น๋ ์์ธ์ด ๋ ์ ์๋ค.
4.1. ํด์์ถฉ๋ ๋ฐ์ ์์ธ
ํด์์ถฉ๋์ ํด์ํจ์์ ํน์ฑ์ ๊ธฐ์ธํ ๊ฒ์ผ๋ก, ํฌ๊ฒ ๋ ๊ฐ์ง ์์ธ์ด ์๋ค.
4.1.1. ํด์ํจ์ ์ถฉ๋ ๊ฐ๋ฅ์ฑ
ํด์ํจ์๋ ์ ๋ ฅ๊ฐ์ ๋ฒ์๋ฅผ ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ๋ก ์์ถํ๋ ๊ณผ์ ์ด๋ฏ๋ก, ์ ๋ ฅ๊ฐ๋ค์ด ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ๋ณด๋ค ๋ง์ ๊ฒฝ์ฐ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ํด์ํจ์๊ฐ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ํด์๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ ๋ ฅ๊ฐ๋ค์ด ๋ฐฐ์ด ํฌ๊ธฐ๋ณด๋ค ๋ง์์ง๋ฉด ๋ฐ๋์ ๋์ผํ ๋๋จธ์ง ๊ฐ์ ๊ฐ๊ฒ ๋์ด ์ถฉ๋์ด ๋ฐ์ํ๊ฒ ๋๋ค.
4.1.2. ๋ฐ์ดํฐ์ ๋ถ๊ท ํ
ํด์ํจ์๊ฐ ์๋ชป๋์๊ฑฐ๋ ์ ๋ ฅ๊ฐ๋ค์ด ๋ถ๊ท ์ผํ๊ฒ ๋ถํฌ๋์ด ์์ผ๋ฉด ์ถฉ๋์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค. ์๋ฅผ ๋ค์ด, ํด์ํจ์๊ฐ ๋จ์ํ ์ ๋ ฅ ๊ฐ์ ํด์ํ ์ด๋ธ ํฌ๊ธฐ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ ๋ ฅ ๊ฐ๋ค ๊ฐ์ ์์ฃผ ์ถฉ๋์ด ๋ฐ์ํ๊ฒ ๋๋ค.
4.2. ํด์์ถฉ๋ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
ํด์์ถฉ๋์ ํด์ํ ์ด๋ธ์ ์ ํ์ฑ๊ณผ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฏ๋ก, ํด๊ฒฐํด์ผ ํ๋ ๋ฌธ์ ์ด๋ค. ๋ค์์ ํด์์ถฉ๋์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
4.2.1. ์ฒด์ด๋ (Chaining)
์ฒด์ด๋์ ํด์ ํ ์ด๋ธ์ ๊ฐ ์ธ๋ฑ์ค์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ํด์๊ฐ์ ํด๋นํ๋ ์ธ๋ฑ์ค์ ์ด๋ฏธ ์กด์ฌํ๋ ๋ฐ์ดํฐ์ ๋งํฌ๋ ๋ฆฌ์คํธ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ด๋ค. ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ธํด ์ถฉ๋์ด ๋ฐ์ํด๋ ๋ฐ์ดํฐ๋ ํจ์จ์ ์ผ๋ก ์ ์ฅ๋๊ณ ๊ฒ์๋ ์ ์๋ค. ํ์ง๋ง ์ถฉ๋์ด ๋ฐ์ํ ๋๋ง๋ค ๋งํฌ๋ ๋ฆฌ์คํธ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ฏ๋ก, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
4.2.2. ๊ฐ๋ฐฉ ์ฃผ์๋ฒ (Open Addressing)
๊ฐ๋ฐฉ ์ฃผ์๋ฒ์ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ ํด์ ํ ์ด๋ธ ๋ด ๋ค๋ฅธ ๋น ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ํด์๊ฐ์ ํด๋นํ๋ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ง์ฝ ํด๋น ์ธ๋ฑ์ค๊ฐ ์ด๋ฏธ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์ํด ์ฌ์ฉ ์ค์ด๋ผ๋ฉด, ์ผ์ ํ ๊ท์น์ ๋ฐ๋ผ ์ฐจ๋ก๋ก ๋ค์ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๊ฐ๋ฐฉ ์ฃผ์๋ฒ์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ ์ ๊ณ , ์ ์ฅ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ท์น์ ๋ฐ๋ผ ๊ฒ์ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
4.2.3. ์ด์ค ํด์ฑ (Double Hashing)
์ด์ค ํด์ฑ์ ํด์์ถฉ๋์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๊ฐ์ ํด์ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฒซ ๋ฒ์งธ ํด์ํจ์๋ก ์ป์ ํด์๊ฐ์ด ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๋ ๋ฒ์งธ ํด์ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๋ค. ์ด์ค ํด์ฑ์ ํตํด ์ถฉ๋์ด ๋ฐ์ํด๋ ๋ค์ํ ์ธ๋ฑ์ค๋ฅผ ํ์ํ ์ ์์ด์, ์ถฉ๋์ด ์ต์ํ๋๊ณ ๊ฒ์ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์๋ค. ํ์ง๋ง ํด์ํจ์์ ์ ํ๊ณผ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ํจ์จ์ฑ์ด ๋ฌ๋ผ์ง ์ ์์ผ๋ฉฐ, ์ถฉ๋ ํด๊ฒฐ์ ์ํ ๊ณ์ฐ์ด ์ถ๊ฐ๋ก ํ์ํ๋ค.
ํด์์ถฉ๋์ ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ๊ณผ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก, ์ ์ ํ ์ถฉ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ค. ํด์์ถฉ๋์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๊ธฐ ์ํด ํด์ํจ์์ ์ ํ, ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ ์กฐ์ ๋ฑ์ ๊ณ ๋ คํด์ผ ํ๋ฉฐ, ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ ์ผ๋ก ๊ตฌํํ ํ์๊ฐ ์๋ค.
5. ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ ๋ถ์๊ณผ ์ต์ ํ ๋ฐฉ๋ฒ
ํด์ํ ์ด๋ธ์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค์ ์ ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ์ ์ ๊ณตํ๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง, ํด์์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค. ๋ฐ๋ผ์ ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ์ต์ ํํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
5.1. ํด์ํ ์ด๋ธ ์ฑ๋ฅ ๋ถ์
ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ์ ๋ถ์ํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ์งํ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
5.1.1. ๋ก๋ ํฉํฐ (Load Factor)
๋ก๋ ํฉํฐ๋ ํด์ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๊ฐ์์ ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ์ ๋น์จ์ ๋ํ๋ด๋ ๊ฐ์ด๋ค. ๋ก๋ ํฉํฐ๋ ํด์ํ ์ด๋ธ์ด ์ผ๋ง๋ ๊ฐ๋ ์ฐผ๋์ง๋ฅผ ๋ํ๋ด๋ฏ๋ก, ๋ก๋ ํฉํฐ๊ฐ ๋์์๋ก ์ถฉ๋์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
5.1.2. ์ถฉ๋ ๋ฐ์๋ฅ (Collision Rate)
์ถฉ๋ ๋ฐ์๋ฅ ์ ํด์ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค์์ ์ถฉ๋์ด ๋ฐ์ํ ๋ฐ์ดํฐ์ ๋น์จ์ ๋ํ๋ด๋ ๊ฐ์ด๋ค. ์ถฉ๋ ๋ฐ์๋ฅ ์ด ๋์์๋ก ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ์ด ์ ํ๋๋ฏ๋ก, ์ถฉ๋ ๋ฐ์๋ฅ ์ ๋ฎ์ถ๋ ๊ฒ์ด ์ค์ํ๋ค.
5.1.3. ๊ฒ์ ์๊ฐ
๊ฒ์ ์๊ฐ์ ํด์ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ํ๋ด๋ ๊ฐ์ด๋ค. ๊ฒ์ ์๊ฐ์ ํด์ํจ์์ ์ฑ๋ฅ๊ณผ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ์ํฅ์ ๋ฐ์ผ๋ฏ๋ก, ์ต์ ์ ํด์ํจ์์ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ์ฌ ๊ฒ์ ์๊ฐ์ ์ต์ํํด์ผ ํ๋ค.
5.2. ํด์ํ ์ด๋ธ ์ฑ๋ฅ ์ต์ ํ ๋ฐฉ๋ฒ
ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ด ์๋ค.
5.2.1. ํด์ํจ์ ์ต์ ํ
ํด์ํจ์๋ ์ถฉ๋์ ์ต์ํํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ท ์ผํ๊ฒ ๋ถํฌ์ํค๋ ์ญํ ์ ํ๋ค. ์ต์ ์ ํด์ํจ์๋ฅผ ์ ํํ๋ฉด ์ถฉ๋์ด ๋ฐ์ํ ํ๋ฅ ์ ์ค์ผ ์ ์์ผ๋ฉฐ, ์ข์ ํด์ํจ์๋ ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค. ๋ฐ๋ผ์, ํด์ํจ์์ ์ ํ๊ณผ ์ค๊ณ๋ ํด์ํ ์ด๋ธ ์ฑ๋ฅ ์ต์ ํ์ ์ค์ํ ์์์ด๋ค.
5.2.2. ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ ์ ํ
์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ์ถฉ๋์ด ๋ฐ์ํ์ ๋ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค. ์ฒด์ด๋, ๊ฐ๋ฐฉ ์ฃผ์๋ฒ, ์ด์ค ํด์ฑ ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ, ๊ฐ ๋ฐฉ๋ฒ๋ง๋ค ์ฅ๋จ์ ์ด ์๋ค. ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ํน์ฑ๊ณผ ์ฑ๋ฅ ์๊ตฌ์ฌํญ์ ๊ณ ๋ คํ์ฌ ๊ฐ์ฅ ์ ํฉํ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํ๋ค.
5.2.3. ํด์ํ ์ด๋ธ ํฌ๊ธฐ ์กฐ์
ํด์ํ ์ด๋ธ ํฌ๊ธฐ๋ ๋ฐ์ดํฐ์ ๊ฐ์์ ๋ก๋ ํฉํฐ์ ๋ฐ๋ผ ์ ์ ํ๊ฒ ์กฐ์ ๋์ด์ผ ํ๋ค. ํด์ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์์ผ๋ฉด ์ถฉ๋์ด ์์ฃผ ๋ฐ์ํ์ฌ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๊ณ , ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋ผ์, ๋ฐ์ดํฐ์ ๊ฐ์์ ๋ก๋ ํฉํฐ๋ฅผ ๊ณ ๋ คํ์ฌ ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ๋ฅผ ์ต์ ํํด์ผ ํ๋ค.
5.2.4. ์ถฉ๋ ์ต์ํ
์ถฉ๋์ ์ต์ํํ๊ธฐ ์ํด์๋ ๋ก๋ ํฉํฐ๋ฅผ ์ ์ ํ ์กฐ์ ํ๊ณ , ์ถฉ๋์ด ๋ฐ์ํ ํ๋ฅ ์ด ๋ฎ์ ํด์ํจ์๋ฅผ ์ ํํด์ผ ํ๋ค. ๋ํ, ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ๊ณ ๋ คํ์ฌ ํด์ํจ์๋ฅผ ์ค๊ณํ๊ณ ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํ๋ค.
ํด์ํ ์ด๋ธ์ ์ฑ๋ฅ ๋ถ์๊ณผ ์ต์ ํ๋ ํด์ํจ์์ ์ ํ๊ณผ ์ค๊ณ, ์ถฉ๋ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ํ, ํด์ํ ์ด๋ธ ํฌ๊ธฐ์ ์กฐ์ ๋ฑ์ ํตํด
๋๊ธ