본문 바로가기

IT/Java

java.util.UUID API를 활용한 랜덤아이디 만들기.


UUID(Universally unique identifier), 범용 고유 식별자.


소프트웨어 구축에 쓰이는 식별자 표준으로,

개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화..

같은 내용은 궁금한 사람만 위키피디아에서 살펴보도록 하고 (링크)


프로젝트에서 사용자에게 임시비밀번호를 부여하는 로직에서

Java에서 지원하는 UUID 기능을 사용해 볼 기회가 있었다.


관리자가 기존 회원의 비밀번호를 임시비밀번호로 교체하는 로직을 호출하면

해당 사용자의 비밀번호를 UUID로 변경하고, 사용자의 이메일로

임시비밀번호 변경페이지로 이동가능한 HTML링크를 전송해주는 방식이다.

메일발송기능도 충분히 재미있지만, UUID도 충분히 중요하고 짧으니까 먼저 기록해두려한다.


기본적인 UUID의 생성은 간단하다.


Java 1.5버전부터 지원되는 UUID 클래스를 import하고

randomUUID() 메서드를 통해 생성하면 된다.


다음과 같은 코드를 실행하면


이런식으로 32개의 십진수와 4개의 '-'로 된 36자리의 문자열을 리턴한다.


기본적으로 UUID로 오브젝트타입이 정의되어있으며,

이를 String형으로 쓰기 위히선 .toString() 메서드로 형변환해준다.


요러케.


보통은 여기까지 해서 쓸 수 있겠지만,

과장님께서 '-'을 제거한 깔끔한 UUID를 주문하셨는지라.

마지막으로 코드와 console값을 올리고 글을 마치겠다.



간단하게 .replace() 메서드로 하이픈('-')을 빈 문자열로 치환해준다.


깔-.-끔해졌음.


..


사실 UUID객체를 생성하면서 옵션값을 줘서 UUID 생성에 다양한 옵션을 부여할 수 있는것같지만

그냥 UUID도 당장 쓰는데엔 문제없어 이 정도만 알면 써먹기엔 충분할것같다. : )


제한된 범위 내에서 임의로 생성하는 값이지만, 하이픈을 제외한 32자리의 십진수니

이론상으론 340,282,366,920,938,463,463,374,607,431,768,211,456개의 UUID값이 존재한다.

UUID 써먹다 키중복예외라도 발생하면 당장 로또라도 긁으러 가보시길.ㅋㅋ




끝!