본문 바로가기
공부방/기타

UUID에 대해 알아보자

by SmartCow 2024. 6. 10.
목차
1. UUID란 무엇인가?
2. UUID의 버전
3. UUID 생성 방법
4. UUID 활용 사례
5. UUID의 장단점 및 주의사항

 

 1. UUID란 무엇인가?

 1.1 정의 및 개념

 UUID(Universally Unique Identifier)는 전 세계적으로 고유한 식별자를 생성하기 위한 표준
 주로 컴퓨터 시스템에서 객체를 식별하는 데 사용. UUID는 RFC 4122에 정의되어 있으며,
 GUID(Globally Unique Identifier)라고도 함.

 1.2 UUID의 형식

 UUID는 128비트 크기의 숫자이며, 일반적으로 16진수로 표현됩니다.
 5개의 그룹으로 구분되어 총 36자의 문자열 형식을 갖습니다.
 예제 : 123e4567-e89b-12d3-a456-426614174000

 1.3 UUID와 GUID의 차이

 UUID와 GUID는 본질적으로 동일한 개념
 UUID는 국제 표준이며, GUID는 마이크로소프트에서 사용하는 이름
 GUID는 Windows 플랫폼에서 주로 사용되며, UUID는 다른 시스템에서도 널리 사용

 1.4 UUID의 특징

특징 설명
고유성 UUID는 매우 높은 고유성을 보장.
128비트 2^128개의 고유한 값을 생성할 수 있음
분산성 중앙 집중형 관리 없이도 고유한 ID를 생성할 수 있음
비순차성 UUID는 일반적으로 순차적이지 않으므로, 보안 및 프라이버시 관점에서 유리

 

 2. UUID의 버전

 UUID는 다양한 방식으로 생성될 수 있으며, 각 방식은 특정한 버전으로 정의

 2.1 UUID 버전 1: 시간 기반

 UUID 버전 1은 생성 시간과 네트워크 카드의 MAC 주소를 기반으로 생성.
이 버전은 시간 순서에 따라 고유한 UUID를 생성한다.
 예제) 550e8400-e29b-41d4-a716-446655440000

 2.2 UUID 버전 2: DCE 보안

 UUID 버전 2는 DCE(Security for Distributed Computing Environment) 보안에 사용되며,
사용자 ID와 그룹 ID를 포함한다.

 2.3 UUID 버전 3: 이름 기반(MD5 해시)

 UUID 버전 2는 DCE(Security for Distributed Computing Environment) 보안에 사용되며,
사용자 ID와 그룹 ID를 포함한다.

 2.4 UUID 버전 4: 난수 기반

 UUID 버전 4는 난수를 기반으로 생성. 이는 가장 많이 사용되는 방식 중 하나
 예제 : e4eaaaf2-d142-11e1-b3e4-080027620cdd

 2.5 UUID 버전 5: 이름 기반(SHA-1 해시)

 UUID 버전 5는 버전 3과 유사하지만, SHA-1 해시 알고리즘을 사용한다.

 

 3. UUID 생성 방법

 3.1 프로그래밍 언어에서 UUID 생성

1) Python

import uuid

# UUID4 생성

print(uuid.uuid4())

2) Java

import java.util.UUID;

public class Main {
      public static void main(String[] args) {
               UUID uuid = UUID.randomUUID();
               System.out.println(uuid.toString());
      }
}

3) JavaScript

const { v4: uuidv4 } = require('uuid');

console.log(uuidv4());

4) C#

using System;

class Program {
         static void Main() {
                  Guid uuid = Guid.NewGuid();
                  Console.WriteLine(uuid.ToString());
         }
}

 

 4. UUID 활용 사례

1) 데이터베이스 키로 사용
 UUID는 관계형 데이터베이스의 기본 키로 자주 사용된다.
이는 고유성을 보장하고, 특히 분산 데이터베이스에서 유용하다.
2) 분산 시스템에서 객체 식별
 분산 시스템에서는 서로 다른 노드 간에 고유한 객체 ID를 생성하는 것이 중요하다.
 UUID는 이러한 고유성을 보장한다.
3) 파일 및 리소스 식별자
 파일 시스템이나 네트워크 리소스에서 파일이나 리소스를 고유하게 식별하는 데 사용된다.
4) API 트랜잭션 ID
 API 호출 시 각 트랜잭션을 고유하게 식별하기 위해 UUID를 사용한다.
 이는 로그를 추적하고 디버깅하는 데 도움이 된다..

 

 5. UUID의 장단점 및 주의사항

 5.1 장점

1) 고유성: 전 세계적으로 고유한 ID를 보장
2) 독립성: 중앙 서버 없이 독립적으로 생성할 수 있다.
3) 확장성: 분산 시스템에서 쉽게 확장 가능하다.

 5.2 단점

1) 크기: UUID는 128비트로, 저장 공간을 많이 차지한다.
2) 가독성: 사람이 읽고 쓰기 어렵다.
3) 정렬: 순차적이지 않아 정렬이 비효율적일 수 있다.

 5.3 충돌 가능성 및 해결 방안

 UUID는 매우 낮은 확률로 충돌이 발생할 수 있다. 그러나 이를 완전히 방지할 수는 없다.
 중요한 시스템에서는 충돌을 확인하는 로직을 추가할 필요가 있다.

 5.4 보안 관련 고려사항

 시간 기반 UUID는 생성 시간과 MAC 주소 정보를 포함하므로, 보안이 중요한 경우 버전 4나 5를 사용하는 것이 좋다.

'공부방 > 기타' 카테고리의 다른 글

따옴표(쌍따옴표, 홑따옴표) 중복으로 표시하는 방법  (0) 2024.05.09
jsp안에 jsp넣기. include  (0) 2023.08.14
Eclipse 배경색 변경  (0) 2023.01.07
Front-End vs Back-End  (0) 2021.05.29
HTML 컬러 색상표  (0) 2021.03.21