티스토리 뷰

안녕하세요.

오늘의 포스팅은 UUID를 이용해 중복되지 않는 고유한 키 값을 설정하는 방법에 대해서 포스팅 해보겠습니다.


UUID란?


네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위해서는 각각의 고유한 이름이 필요합니다. 이 이름은

고유성(유일성)이 매우 중요합니다. 왜냐하면, 같은 이름을 갖는 개체가 존재한다면 구별이 불가능해지기 때문입니다.

고유성을 완벽하게 보장하려면 중앙관리시스템이 있어서 일련번호를 부여해 주면 간단하지만 동시다발적이고 독립적

으로 개발되고 있는 시스템들의 경우 중앙관리시스템은 불가능합니다. 개발 주체가 스스로 이름을 짓도록 하되, 고유성을

충족할 수 있는 방법이 필요하게 되었고, 이를 위해 생긴것이 범용고유식별자(UUID)이며 국제기구에서 표준으로 정하고

있습니다.


즉, UUID 표준에 따라 이름을 부여하면 고유성을 완벽하게 보장할 수는 없지만 실제 사용상에서 중복될 가능성이 거의

없다고 인정되기때문에 많이 사용되고 있습니다.


UUID는 16 옥텟(128비트)의 수이며, 표준 형식에서 UUID는 32개의 16진수로 표현되며 총 36개 문자(32개 문자와 4개의 하이픈)로 된

8-4-4-4-12라는 5개의 그룹을 하이픈(-)으로 구분합니다.


ex) 6fee0f11-9c5e-4340-845c-34e6b5e6dd3b 와 같이 나타난다.


예를들면, 같은 경로에 동일한 이름의 파일을 업로드 할때 UUID를 사용해 고유한 값을 생성해서 처리하면 문제를 피할 수 있으며,

비밀번호와 같은 것을 UUID를 통해 암호화 후, 데이터베이스에 저장할때에서 활용할 수 있습니다.


위의 내용을 자바 코드로 나타내면,


public class UuidTest {
    
    public static void main(String[] args) {
        
        // 랜덤 고유키 생성
        UUID uuid = UUID.randomUUID();
        System.out.println(uuid);

        // 하이픈 제외
        String convertPw = UUID.randomUUID().toString().replace("-", "");
	System.out.println(convertPw);
    }
}


다음의 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다. 실행할때마다 결과값은 계속 달라집니다.



생각보다 간단하게 UUID를 활용하는 방법은 간단하면서 다양하게 활용할 수 있는 장점이 있습니다.

이것으로, 오늘 포스팅은 여기서 마무리하도록 하겠습니다.