티스토리 뷰

JAVA

[java] UUID(Universally Unique Identifier)

페루나쵸 2023. 11. 14. 14:19

🩵UUID

- 범용적으로 고유 식별자를 나타냅니다.

- UUID는 중복될 가능성이 극히 낮아서 전 세계에서 유니크하게 식별되는데 사용되며, 
  분산 시스템이나 세션 식별자, 쿠키 값, 대규모 데이터베이스에서 자주 활용됩니다.

 

- UUID는 128비트(16바이트)의 수로 표현되며, 16진수로 표현될 때 32개의 문자와 4개의 하이픈으로 이루어집니다.

 


 

1. 버전

 

버전 특징 설명
UUIDv1  시간 기반 시간과 노드 식별자를 사용하여 생성되며, 보통 1초 이상의 간격이 있을 때 중복이 발생하지 않습니다. 이 버전은 MAC 주소와 현재 시간을 기반으로 생성됩니다.
UUIDv2  DCE 보안 시간 기반(UUIDv1)의 확장이며, POSIX UID/GID를 추가한 것입니다. 거의 사용되지 않습니다.
UUIDv3  이름 기반 - MD5 해시 명시적으로 지정된 이름과 네임스페이스 식별자를 MD5 해시 함수를 사용하여 생성합니다.
UUIDv4  랜덤 완전히 무작위로 생성되며, 안전한 난수 생성기에 기반합니다. 이 버전은 랜덤성을 강조하고 중복될 가능성이 극히 낮습니다.
UUIDv5 
이름 기반 - SHA-1 해시 UUIDv3와 유사하지만 SHA-1 해시 함수를 사용하여 생성됩니다.

 

 

 

 

2. import java.util.UUID 메서드 종류

 

randomUUID() 메서드

- static UUID randomUUID(): 무작위 UUID를 생성합니다. 주로 UUIDv4를 생성하는 데 사용됩니다.

UUID randomUUID = UUID.randomUUID();

 

nameUUIDFromBytes(byte[] name) 메서드

- static UUID nameUUIDFromBytes(byte[] name): 
  주어진 바이트 배열을 기반으로 하는 이름 기반(UUIDv3 또는 UUIDv5)의 UUID를 생성합니다.

byte[] nameBytes = "example".getBytes();
UUID nameUUID = UUID.nameUUIDFromBytes(nameBytes);

 

 


 

toString() 메서드

- String toString(): UUID를 문자열로 반환합니다.

UUID uuid = UUID.randomUUID();
String uuidString = uuid.toString();

 


 

fromString(String name) 메서드

- static UUID fromString(String name): 주어진 문자열에서 UUID를 생성합니다.

String uuidString = "550e8400-e29b-41d4-a716-446655440000";
UUID uuid = UUID.fromString(uuidString);

 


 

getLeastSignificantBits() 및 getMostSignificantBits() 메서드

- long getLeastSignificantBits(): UUID의 가장 작은 부분을 반환합니다. 

- long getMostSignificantBits(): UUID의 가장 큰 부분을 반환합니다.

UUID uuid = UUID.randomUUID();
long leastSignificantBits = uuid.getLeastSignificantBits();
long mostSignificantBits = uuid.getMostSignificantBits();

 

 

'JAVA' 카테고리의 다른 글

[JAVA 1.8] 컨트롤러 파일 다운로드  (0) 2024.03.22
Java 객체 (mapper.convertValue)  (0) 2023.10.26