본문 바로가기

JAVA

UUID(Universally Unique Identifier, UUID)

[1] 범용 고유 식별자(UUID)
 - 소프트웨어 구축에 쓰이는 식별자 표준이다.
 - 고유성을 완벽하게 보장하기 위한 식별자로 국제기구에서 표준으로 정하고 있다. 
 - UUID 표준에 따라 이름을 부여하면 고유성을 완벽하게 보장할 수는 없지만 실제 사용상에서 중복될 가능성이 거의 없다고 인정되기 때문에 많이 사용한다.
 - UUID는 128bit의 수로 표준형식에는 32개의 16진수로 표현되며 총 36개 문자 (32개 문자와 4개의 하이픈)로 된 8-4-4-4-12라는 5개의 그룹을 하이픈으로 구분한다.
ex) 550e8400-e29b-41d4-a716-446655440000

[2] 자바 클래스 UUID
 1. UUID 형태 :
 - java.util.UUID
 - public final class UUID
 - extends Object
 - implements Serializable, Comparable<UUID>

2. 메서드

return type

 Method

 int

clockSequence() :
이 UUID 에 관련한 클락 순차 순서치

int

compareTo(UUID val) :
이 UUID 가 지정된 UUID 와 비교합니다.

boolean

equals(Object obj) :
이 오브젝트가 지정된 오브젝트와 비교합니다.

static UUID

fromString(String name) :
toString() 메소드에 설명되고 있도록(듯이), 캐릭터 라인 표준 표현으로부터 UUID 를 작성합니다.

long

getLeastSignificantBits() :
이 UUID 의 128 비트치의 최하정도 64 비트를 돌려줍니다.

long

getMostSignificantBits() :
이 UUID 의 128 비트치의 최상정도 64 비트를 돌려줍니다.

int

hashCode() :
 UUID 의 해시 코드를 돌려줍니다

static UUID

nameUUIDFromBytes(byte[] name) :
지정된 바이트 배열에 근거하는, 타입 3 (이름 베이스) UUID 취득용의 Static 팩토리입니다.

long

node() :
이 UUID 에 관련한 노드치

static UUID

randomUUID() :
타입 4 (의사 랜덤 생성) UUID 를 취득하기 위한 static 팩토리

long

timestamp() :
이 UUID 에 관련한 타임 스탬프치

String

toString() :
 UUID 를 나타내는 String 오브젝트를 돌려줍니다.

int

variant() :
 UUID 에 관련지을 수 있었던 형식 번호입니다.

 int

version() :
 UUID 에 관련지을 수 있었던 버젼 번호입니다.

 

3. 적용하기
public static File createFile(String folderPath, String original){
    File file = new File(folderPath, original);
    if(file.isFile()){
        String changeFileName=System.currentTimeMillis()+"_"+UUID.randomUUID().toString().replace("-", "")+"_"+original;

        file=new File(folderPath, changeFileName);
    }
    return file;
 }
-위함수는 File 인스턴스를 생성하는 동일한 파일명이 존재할 시 System.currentTimeMillis() 함수와 UUID.randomUUID 함수를 이용하여 File 명을 변경한 후 file인스턴스를 return 하는 함수이다.
이렇게 하면 구현하면 중복되는 파일의 이름을 방지할 수 있다.