UUID

eeensu·2023년 8월 9일
0

용어 정리와 팁

목록 보기
9/26
post-thumbnail

UUID

UUID는 "Universally Unique Identifier"의 약자로, 범용 고유 식별자를 나타낸다. UUID는 전 세계에서 유일한 값을 생성하기 위해 사용되며, 주로 컴퓨터 시스템에서 개체를 고유하게 식별하기 위해 사용된다.

UUID는 128비트의 숫자로 구성되어 있다. 이 128비트는 16진수로 표현되며, 보통 32개의 16진수 숫자와 4개의 하이픈으로 이루어진 5개의 그룹으로 나누어져 표현된다. 예시로 어떤 유저의 ID, 어떤 아이템의 ID 등에게 고유성을 부여해준다. 다음은 uuid의 전형적인 형식이다.

550e8400-e29b-41d4-a716-446655440000



특징

uuid를 사용하는 이유는 다음과 같다.

  • 고유성
    uuid는 거의 중복될 가능성이 없도록 설계되었다. 이를 통해 서로 다른 시스템이나 데이터베이스에서도 고유한 식별자를 유지할 수 있다.

  • 분산 시스템
    분산 환경에서 여러 시스템이 동시에 작업할 때, 각 시스템이 생성한 데이터를 신뢰할 수 있도록 uuid가 활용된다.

  • 데이터 동기화
    여러 데이터베이스나 시스템 간에 데이터를 동기화할 때, 고유한 UUID를 사용하면 데이터 충돌을 피하고 일관성을 유지할 수 있다.

  • 보안
    무작위로 생성되는 uuid는 예측하기 어려우므로, 보안 관련 용도에도 사용될 수 있다.


UUID는 다양한 버전이 있다. 가장 많이 사용하는 버전 4로, 무작위 비트를 기반으로 생성된다. 그 외에도 시간이나 이름 공간 등을 기반으로 생성하는 다른 버전도 있다.

여러 프로그래밍 언어와 라이브러리에서는 UUID 생성 및 처리를 지원한다. 예를 들어, java에서는 java.util.UUID 클래스를 통해 UUID를 생성하고 다룰 수 있다.



단점

  • 메모리
    uuid는 128비트로 구성되어 길이가 꽤 길다는 단점이 있다. 이로 인해 저장 공간을 많이 차지하거나 네트워크 통신 시에 더 많은 데이터를 전송해야 할 수 있다. 한두가지 데이터를 가지고 uuid를 사용하는 것은 큰 문제가 되진않지만, 쿠팡같은 대규모 쇼핑몰 사이트에서 이루어지는 수천건의 주문번호에 uuid를 적용하는 것은 DB에 큰 부담을 줄 수 있다.

  • 고유성의 한계
    uuid는 실질적으로 충돌이 없을 정도로 고유성을 보장하지만, 이론적으로는 충돌이 발생할 가능성이 조금이라도 남아있다. 특히 많은 양의 uuid가 생성될 경우 충돌 확률이 높아질 수 있다.



설치

npm i uuid




요약하자면, UUID는 컴퓨터 시스템에서 고유한 개체를 식별하기 위한 식별자로, 전 세계 어디에서나 유일한 값을 생성하는 데 사용되며, 데이터베이스, 분산 시스템, 보안 등 다양한 용도로 활용된다. 하지만 단점들도 존재하기에, 이를 시스템에 적용할 때 잘 고려해야한다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글