본문 바로가기
자바,스프링 - Java,Spring Framework

Java UUID란, Java UUID 중복, Java UUID 자리수, Java UUID 길이 줄이기

by devscb 2023. 10. 15.
반응형

Java UUID란, Java UUID 중복, Java UUID 자리수, Java UUID 길이 줄이기

Java UUID란?

Java UUID란 Universally Unique Identifier의 약어로, 고유 식별자를 나타내는 값입니다.

  • 중복않는 유일한 값을 사용할때 활용합니다.
  • 세션 식별자, 쿠키 값, 무작위 데이터베이스 키 등에 활용가능합니다.

Java UUID 활용하기, UUID 사용하기

UUID 생성방식은 아래와 같이 세가지가 있습니다.

// 1) 랜덤으로 생성
UUID uuid = UUID.randomUUID();

// 2) string 기반으로 생성
String test = "test";
UUID uuid = UUID.fromString(test);;

// 3) byte array 기반으로 생성
byte[] bytes = new byte[10];
UUID uuid = UUID.nameUUIDFromBytes(bytes);

 

 

아래와 같이 uuid값 확인도 가능합니다.

System.out.println(uuid.toString());

 

 

아래는 UUID.randomUUID()를 출력해본 값에 대한 예시 값입니다

 
cb3178ff-f3c8-4ca8-8671-9f7c41221d75
 

 

UUID 중복발생확률, Java UUID 중복 확률

결론적으로는 중복은 가능하나, 확률은 매우 희박합니다.
매 초 10억개의 uuid를 100년에 걸쳐서 생성할 때 단 하나의 uuid가 중복될 확률은 50% 입니다.

Java UUID는 총 36자로 되어 있습니다(4개 하이픈 포함)
a~f까지(대소문자 구별않음)와 숫자로 UUID를 구성할 수 있는데,
총 340,282,366,920,938,463,463,374,607,431,768,211,456 개의 UUID가 생성가능합니다.
딱 봐도 굉장히 확률이 희박한 값입니다.
그럼에도 중복이 염려스러운 경우에는, 저의 경우에 UUID+timestamp 값을 사용하기도 합니다.

Java UUID 길이 줄이기

UUID는 총 36자로, 너무 길어보일 수 있습니다.
그래서 랜덤한 짧은 길이의 문자열을 만들고 싶다면, 아래 함수를 활용할 수 있습니다.
단, 원래의 randomUUID방식에 비해 중복될 확률은 높아집니다.

public static String uniqueString(int digit) {
 if(digit < 1) throw new Exception("can't generate");
 String random = UUID.randomUUID().toString();
 random = random.replaceAll("-", "");
 random = random.substring(0, digit);

 return random;
}

// 16글자 랜덤한 문자열에 대한 예시값 : ac3ba51e0d504740
System.out.println(uniqueString(16));

 

 

#Java,#UUID,#자바,#중복,#길이

 

https://devscb.com/post/181

 

What is Java UUID, Java UUID duplication, Java UUID digits, Java UUID length reduction

What is Java UUID, Java UUID duplication, Java UUID digits, Java UUID length reduction What is Java UUID?Java UUID is an abbreviation for Universally Unique Identifier, and is a value representing a

devscb.com

 

728x90
반응형

댓글