UUID๋ Universally Unique Identifier์ ์ฝ์๋ก, ์ปดํจํฐ ์์คํ
์์ ์ ๋ณด๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ 128๋นํธ ๊ธธ์ด์ ๊ฐ์
๋๋ค. UUID ์์ฑ๊ธฐ์ ์ํด ์์ฑ๋ UUID๋ ๋ชจ๋ ์์คํ
์์ ํญ์ ๊ณ ์ ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. UUID์ ๊ธธ์ด๋ ํ์ดํ์ ํฌํจํ์ฌ 36์์ด๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก 16์ง์ ํ๊ธฐ๋ฒ์ผ๋ก ํ์๋ฉ๋๋ค.
Java์์ UUID๋ ๋ฌด์์ ๋๊น?
Java์ UUID ํด๋์ค๋ java.util ํจํค์ง ์ ์ผ๋ถ ์ด๋ฉฐ UUID๋ฅผ ์์ฑํ๊ณ ์กฐ์ํ๊ธฐ ์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ณ ์ ์๋ณ์๋ฅผ ์์ฑํ๊ธฐ ์ํด Java์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ํด๋์ค์ ๋๋ค. Java์ UUID ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์์์ UUID๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํธ ๋ฐฐ์ด, ๋ฌธ์์ด ๋ฐ ๊ธด ๊ฐ๊ณผ ๊ฐ์ ๋ค์ํ ์์ค์์ UUID๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์์ฑ๊ธฐ๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์์ฑ๋ ๋ค์ํ UUID๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์์ฑ๋ UUID๋ ๊ณ ์ ํ๋ฉฐ ์ ์ญ์ ์ผ๋ก ๊ณ ์ ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ฆ, ๋์ผํ UUID๊ฐ ๋ค๋ฅธ ์์คํ ์์ ๋ ๋ฒ ์์ฑ๋์ง ์์ต๋๋ค. ์ธ์ ID, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค, ๊ณ ์ ์ฑ์ด ์ค์ํ ๊ธฐํ ์๋๋ฆฌ์ค ๋ฑ ๋ค์ํ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ UUID๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.Java์์ UUID ์์ฑ
Java์์ UUID๋ฅผ ์์ฑํ๋ ค๋ฉด java.util.UUID ํด๋์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค . java.util.UUID ํด๋์ค๋ UUID ๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ ๊ฐ์ง ๋ฉ์๋( randomUUID() ๋ฐ nameUUIDFromBytes(byte[] name) ) ๋ฅผ ์ ๊ณตํฉ๋๋ค . RandomUUID () ๋ฉ์๋๋ ์์์ UUID๋ฅผ ์์ฑํฉ๋๋ค. ์ด ๋ฉ์๋์๋ ์ธ์๊ฐ ํ์ํ์ง ์์ผ๋ฉฐ ํธ์ถ๋ ๋๋ง๋ค ์์์ UUID๋ฅผ ์์ฑํฉ๋๋ค. ๋ค์์ randomUUID() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ ๋๋ค .import java.util.UUID;
public class UUIDExample {
public static void main(String[] args) {
// generating a random UUID
UUID uuid = UUID.randomUUID();
// print the UUID
System.out.println("Generated UUID: " + uuid);
}
}
์ฐ์ถ
์์ฑ๋ UUID: d3ee2929-212b-4077-af84-694a0e69b8e1
nameUUIDFromBytes (byte[] name) ๋ฉ์๋๋ ๋ฐ์ดํธ ๋ฐฐ์ด์์ UUID๋ฅผ ์์ฑํฉ๋๋ค. ์ด ๋ฉ์๋๋ ๋ฐ์ดํธ ๋ฐฐ์ด์ ์ธ์๋ก ์ฌ์ฉํ๊ณ ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก UUID๋ฅผ ์์ฑํฉ๋๋ค. ๋ค์์ nameUUIDFromBytes(byte[] name) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์
๋๋ค .
import java.util.UUID;
public class UUIDExample {
public static void main(String[] args) {
// generating a UUID from a byte array
byte[] name = { 1, 2, 3, 4, 5 };
UUID uuid = UUID.nameUUIDFromBytes(name);
// print the UUID
System.out.println("Generated UUID: " + uuid);
}
}
์ฐ์ถ
์์ฑ๋ UUID: 4d6579d4-c3e7-38a1-9246-017e903b2c33
UUID ์์ฑ
UUID์๋ ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ด ์์ต๋๋ค.- ๊ธธ์ด: UUID์ ๊ธธ์ด๋ 128๋นํธ์ ๋๋ค. ์ด๋ 16๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์ด ๊ธธ์ด๋ ํจ์จ์ ์ผ๋ก ์ ์ฅํ ์ ์์ผ๋ฏ๋ก ์ปดํจํฐ ์์คํ ์์ ์ฌ์ฉํ๊ธฐ์ ์ ํฉํฉ๋๋ค.
- ๊ณ ์ ์ฑ: ๋ UUID๊ฐ ๋์ผํ ํ๋ฅ ์ ๋งค์ฐ ๋ฎ์ต๋๋ค. ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ 2^128๋ถ์ 1 ์ ๋๋ก ๊ทนํ ์์ ์ซ์์ ๋๋ค.
- ๋ฌด์์์ฑ: UUID๋ ๋ฌด์์์ฑ์ ๋ณด์ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์์ฑ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฌด์์์ฑ์ ์์ฑ๋ UUID๋ฅผ ๋๊ตฌ๋ ์์ธกํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
- ๋ฒ์ : UUID๋ ์ฌ๋ฌ ๋ฒ์ ์ผ๋ก ๊ตฌ๋ถ๋๋ฉฐ ๊ฐ ๋ฒ์ ์ ์๋ก ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ UUID๋ฅผ ์์ฑํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฒ์ ์ ๋ฒ์ 1๊ณผ ๋ฒ์ 4์ ๋๋ค. ๋ฒ์ 1 UUID๋ ํ์ฌ ์๊ฐ๊ณผ UUID๋ฅผ ์์ฑํ๋ ์ปดํจํฐ์ MAC ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ฉ๋๋ค. ๋ฒ์ 4 UUID๋ ๋์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ฉ๋๋ค.
UUID์ ๊ธธ์ด
UUID๋ 36์์ ๋ฌธ์์ด๋ก ํํ๋๋ 128๋นํธ ๊ฐ์ ๋๋ค. ๋ฌธ์์ด์๋ ํ์ดํ์ผ๋ก ๊ตฌ๋ถ๋ 8, 4, 4, 4 ๋ฐ 12์๋ฆฌ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ๋ถ๋ 32๊ฐ์ 16์ง์ ์ซ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ค์์ UUID ๋ฌธ์์ด์ ์์ ๋๋ค.123e4567-e89b-12d3-a456-426655440000
UUID ์: ๋ค์์ randomUUID() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ UUID ์์
๋๋ค .
d3ee2929-212b-4077-af84-694a0e69b8e1
์ด UUID๋ ํ์ดํ์ผ๋ก ๊ตฌ๋ถ๋ 8, 4, 4, 4, 12์๋ฆฌ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ๋ถ๋ 32๊ฐ์ 16์ง์ ์ซ์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์์ UUID ์์์์ Java์ UUID ํด๋์ค์ ๋ํด ์ด์ผ๊ธฐํ ๋ UUID๋ฅผ ์์ฑํ๋ค๋ ์ฉ์ด๋ java.util.UUID ํด๋์ค ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด UUID๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค . ์ด ํ๋ก์ธ์ค์๋ randomUUID() ๋๋ nameUUIDFromBytes(byte[]) ์ ๊ฐ์ UUID ํด๋์ค์ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ค ํ๋๋ฅผ ํธ์ถํ๋ ์์
์ด ํฌํจ๋ฉ๋๋ค . ์ด๋ฌํ ๋ฉ์๋ ์ค ํ๋๋ฅผ ํธ์ถํ๋ฉด Java์ UUID ํด๋์ค๊ฐ ์ UUID๋ฅผ ์์ฑํ์ฌ ๋ฐํํฉ๋๋ค. ์ด๋ ๊ฒ ์์ฑ๋ UUID๋ ํ์์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
GO TO FULL VERSION