반응형
java.util.UUID.randomUUID(); 는 강력한 암호화 난수 발생기입니다.
이 함수를 실행하면 아래와 같은 결과가 return 됩니다.
4178b983-01f8-11eb-8cd2-47e9de425ea4
결과는 16진수 32자리 문자열입니다. 이는 256 bit라는 의미이며, 이 값의 경우의 수를 표현하면 아래와 같습니다.
" 1 / 115792089237316195423570985008687907853269984665640564039457584007913129639936 "
읽을수도 없을 만큼 엄청난 경우의 수 이지만, 말 그대로 "랜덤" 이기 때문에 서버시스템의 경우 값이 중복되는 경우가 있을 수도 있습니다.
그래서 대안을 생각 하던 중, 시간 기반으로 UUID를 생성하면 중복이 발생하지 않을 것이라 판단하여 com.fasterxml.uuid:java-uuid-generator 를 사용하여 UUID를 생성했습니다.
아래와 같이 사용할 수 있습니다.
import com.fasterxml.uuid.Generators;
public static void main(String [] args) {
UUID uuid = Generators.timeBasedGenerator().generate();
}
[참고 사이트]
search.maven.org/artifact/com.fasterxml.uuid/java-uuid-generator
stackoverflow.com/questions/18244897/how-to-generate-time-based-uuids
728x90
반응형
'웹 개발' 카테고리의 다른 글
Spring lazy Initialization (0) | 2020.10.13 |
---|---|
javascript ajax 크로스 도메인 요청하기(CORS) (0) | 2020.09.30 |
Lombok Annotation (0) | 2020.09.28 |
Annotation을 활용한 Spring AOP 활용 (0) | 2020.09.24 |
Java에서 날짜, 시간 제대로 사용하기(LocalDate, LocalTime, LocalDateTime) (0) | 2020.09.22 |