C#에서 UUID 생성

Muhammad Zeeshan 2023년10월12일
  1. 범용 고유 식별자 또는 UUID
  2. C#에서 UUID 생성
  3. C#GUID 형식
  4. C#GUID 식별자
  5. C#에서 GUID의 단점
C#에서 UUID 생성

이 기사는 UUID가 무엇인지 이해하고 C#에서 생성하는 데 도움이 됩니다.

범용 고유 식별자 또는 UUID

범용 고유 식별자를 UUID라고 합니다. 고유 식별을 위해 GUID를 사용합니다.

이미 기본 키가 있다고 가정합니다. 이 경우 GUID는 복제 위험이 낮은 128비트 정수(16바이트)이므로 모든 데이터베이스와 컴퓨터에서 사용할 수 있으므로 데이터 충돌을 방지할 것입니다.

C#에서 UUID 생성

.Net 프레임워크에는 C# 언어로 버전 4 UUID를 생성하기 위한 내장 기능이 포함되어 있습니다. 다음은 UUID를 생성하는 예입니다.

통사론:

Guid MyUniqueId = Guid.NewGuid();

예시:

using System;
using System.Diagnostics;

namespace MyUUIDGeneration {
  class UUID {
    public static void Main(string[] args) {
      Guid myUUId = Guid.NewGuid();
      string convertedUUID = myUUId.ToString();
      Console.WriteLine("Current UUID is: " + convertedUUID);
    }
  }
}

출력:

Current UUID is: 123z0987-d23b-43gd-s566-000414174266

위의 코드 예제를 실행하려면 이러한 라이브러리가 필요합니다.

using System;
using System.Diagnostics;

MyUniqueId라는 새 변수를 초기화하기 위해 Guid.NewGuid()라는 정적 접근 방식을 배포했습니다. .Net에서 GUIDUUID와 같습니다.

Guid myUUId = Guid.NewGuid();

GUID 객체를 문자열로 변환하기 위해 ToString() 함수를 사용합니다. GUID 문자열 표현은 일반 UUID를 상징합니다.

C#GUID 형식

‘GUID’는 시스템 네임스페이스에 있는 구조입니다. 16진수 정수 문자열은 언어로 ‘GUID’를 작성하는 가장 체계적인 접근 방식입니다.

이와 같은 것 : { 123z0987-d23b-43gd-s566-000414174266 }

C#GUID 식별자

‘GUID’는 이 독특한 식별자의 이름입니다. Windows 프로그램에서 생성된 ‘GUID’는 특정 항목, 소프트웨어, 부품 또는 저장소 기록을 결정하는 데 사용할 수 있습니다.

많은 프로그래머가 독립적으로 작업하고 ID를 생성하는 분산 시스템을 고려하십시오. 두 명의 프로그래머가 동일한 ID를 생성하여 시스템이 병합될 때 문제가 발생할 수 있습니다.

따라서 여러 개의 독립적인 시스템이나 사용자가 고유해야 하는 ID를 생성하는 경우 GUID를 사용해야 합니다. 프로그래밍에서 인터페이스나 메소드를 구성할 때 이를 호출하는 데 사용할 고유한 ID를 할당합니다.

‘GUID’는 데이터 충돌을 방지합니다. 다양한 기계, 네트워크 등 간에 데이터베이스를 통합하는 것은 간단합니다.

레코드를 삽입하기 전에 기본 키를 결정하는 데 도움이 됩니다. 알아내기가 쉽지 않습니다.

C#에서 GUID의 단점

모든 GUID에는 장점과 단점이 있습니다. 10,000개 항목이 있는 데이터베이스에서 GUID는 160000바이트를 차지합니다.

또 다른 부정적인 점은 다른 테이블에 있는 대부분의 primary 키가 foreign 키라는 것입니다. GUID만 5개의 ​​FK 항목에서 약 60바이트를 차지하며 시간이 지남에 따라 성능 문제의 주요 원인이 됩니다.

out-of-order 기술은 임의의 GUID를 생성합니다. 삽입 타임스탬프로 여러 정렬 방법을 적용해야 합니다.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn