UUID๋ ์ ์ธ๊ณ์์ ์ ์ผํ๋๋ก ์ค๊ณ๋ ์๋ณ์์ด๋ค. ์๋ก ๋ค๋ฅธ ์์คํ
์ด๋ ํ๊ฒฝ์์๋ ์ค์ ๊ด๋ฆฌ ์์ด ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋๋ก ์์ฑํ ์ ์๋ ID์ด๋ค.
UUID๋ 128๋นํธ(16๋ฐ์ดํธ) ๊ธธ์ด์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ์๋์ ๊ฐ์ ๋ฌธ์์ด ํํ๋ก ํํ๋๋ค.
550e8400-e29b-41d4-a716-446655440000
์ด๋ 32์๋ฆฌ 16์ง์ ์ซ์๋ฅผ 8-4-4-4-12 ํ์์ผ๋ก ๋๋ ๊ตฌ์กฐ์ด๋ค.
๊ธฐ์กด์ ์ซ์ ๊ธฐ๋ฐ ID(auto increment)๋ ๋จ์ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๊ฐ ์๋ค.
๋ฐ๋ฉด UUID๋ ์ถฉ๋ ํ๋ฅ ํ ๊ทนํ ๋ฎ๊ณ , ์ค์ ๊ด๋ฆฌ ์์ด ๋
๋ฆฝ์ ์ผ๋ก ์์ฑ์ด ๊ฐ๋ฅํ๋ฉฐ ์์ธก์ด ์ด๋ ค์ ๋ณด์ ์ธก๋ฉด์์ ์ ๋ฆฌํ๋ค. ๋ฐ๋ผ์ ๋ถ์ฐ ์์คํ
, ๋ง์ดํฌ๋ก์๋น์ค ํ๊ฒฝ์ ์ ํฉํ๋ค.
๋ค๋ง ๋จ์ ์ผ๋ก๋ ๊ธธ์ด๊ฐ ๊ธธ์ด ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๊ณ , ์ ์ฅ ๊ณต๊ฐ์ ๋ ๋ง์ด ์ฐจ์งํ๋ค๋ ์ ์ด ์๋ค. ๋ํ DB ์ธ๋ฑ์ค ์ฑ๋ฅ์ด ์ซ์ ID๋ณด๋ค ๋ถ๋ฆฌํ๋ค. (ํนํ ๋๋ค UUID)
UUID๋ ์์ฑ ๋ฐฉ์์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ฒ์ ์ผ๋ก ๋๋๋ค. ์ต์ ํ์ค์ RFC 9562์ด๋ค.
ํ์ฌ ์๊ฐ + MAC ์ฃผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ค.
์ฅ์
1) ์์ฑ ์์ ์ถ์ ๊ฐ๋ฅ
๋จ์
1) MAC ์ฃผ์ ๋
ธ์ถ ๊ฐ๋ฅ์ฑ
2) DB ์ธ๋ฑ์ค ๋ฐ ์ ๋ ฌ ์ฑ๋ฅ
v1 ๊ธฐ๋ฐ์ ์ฌ์ฉ์/๊ทธ๋ฃน ID๋ฅผ ํฌํจํ์ฌ ์์ฑ๋๋ค. ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ง์ํ์ง ์๋๋ค.
์
๋ ฅ๊ฐ(namespace + name)์ ํด์(MD5)ํด์ ์์ฑํ๋ค. ๋์ผ ์
๋ ฅ์ ๊ฒฝ์ฐ ํญ์ ๊ฐ์ UUID๋ฅผ ์์ฑํ๋ฏ๋ก URL, ํ์ผ ๊ฒฝ๋ก ๋ฑ์ ์ฌ์ฉ๋๋ค.
๋ค๋ง MD5๋ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก ๋ณด์์ ์ฃผ์ํด์ผ ํ๋ค.
์์ ํ ๋์๋ก ์์ฑ๋๋ค.
์ฅ์
1) ๊ตฌํ์ด ๊ฐ๋จ
2) ์ถฉ๋ ํ๋ฅ ์ด ๊ทนํ ๋ฎ์
3) ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ
๋จ์
1) ์ ๋ ฌ์ด ๋ถ๊ฐ๋ฅ
2) DB ์ธ๋ฑ์ค ์ฑ๋ฅ
v3์ ๋์ผํ ๊ตฌ์กฐ์ง๋ง SHA-1์ ์ฌ์ฉํ๋ค.
์ฅ์
1) v3๋ณด๋ค ๋ ์์
2) v3์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋์ผ ์
๋ ฅ์ ๋์ผ UUID
๋จ์
1) SHA-1๋ ์ด๋ก ์ ์ทจ์ฝ์ ์ด ์กด์ฌ
v1์ ๊ฐ์ ํ ๋ฒ์ ์ผ๋ก ์๊ฐ ์ ๋ณด๋ฅผ ์์ชฝ์ ๋ฐฐ์นํ์ฌ ์ ๋ ฌ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์๋ค.
์ฅ์
1) ์๊ฐ ์ ์ ๋ ฌ ๊ฐ๋ฅ
2) DB ์ธ๋ฑ์ค ์ฑ๋ฅ ๊ฐ์
๋จ์
1) ์์ง ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ง์ง ์๋ค.
Unix timestamp + ๋๋ค ๊ฐ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ฉฐ ์ต์ ํ์ค์์ ๊ฐ์ฅ ๊ถ์ฅ๋๋ ๋ฐฉ์์ด๋ค.
์ฅ์
1) ์๊ฐ ์ ์ ๋ ฌ ๊ฐ๋ฅ
2) ๋๋ค์ฑ ์ ์ง (์ถฉ๋ ์์ ์ฑ)
3) DB ์นํ์ (์์ฐจ ์ฝ์
๊ฐ๋ฅ)
ํ์ฌ ๊ฐ์ฅ ์ถ์ฒ๋๋ UUID ๋ฒ์ ์ด๋ค.
์ฌ์ฉ์ ์ ์ ๊ตฌ์กฐ๋ก ํน์ ์์คํ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ค๊ณ๊ฐ ๊ฐ๋ฅํ๋ค. ํ์ฌ ๋ด๋ถ ID ๊ท์น์ด๋ ํน์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ฐ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ค.
