
C# 새 GUID (개발자를 위한 작동 방식)
NewGuid() 메서드는 일반적으로 전역 고유 식별자(GUID)를 생성하는 데 사용됩니다. GUID는 중복될 위험 없이 모든 컴퓨터 및 네트워크에서 정보를 고유하게 식별하는 데 사용할 수 있는 128비트 정수입니다. 이 문서에서는 C#에서 GUID(전역 고유 식별자)를 다루는 방법에 대해 실용적인 사용, 예제 및 코드 스니펫에 중점을 두고 심층 가이드를 제공할 것입니다. IronPDF 라이브러리도 탐색할 것입니다.
GUID란 무엇인가?
GUID(전역 고유 식별자)는 소프트웨어 개발에서 사용되는 고유 식별자입니다. .NET Framework에서 GUID는 System 네임스페이스 내의 Guid 구조체로 표현됩니다. GUID는 종종 데이터베이스의 기본 키로 사용되며, 시스템 전반에서 고유 식별자가 필요한 다른 시스템에서도 사용됩니다.
Generating GUIDs in C#
C#에서 새로운 GUID를 생성하기 위해 Guid.NewGuid() 함수를 사용합니다. 이 메서드는 GUID 객체의 새 인스턴스를 생성하고 각 GUID가 고유하도록 보장합니다. 내부적으로 GUID는 무작위 숫자 생성기를 사용하여 생성되며, 두 GUID가 동일한 값을 가지지 않도록 보장됩니다.
다음은 새 GUID를 생성하는 간단한 코드 예제입니다:
using System;
class Program
{
static void Main()
{
// Generate a new GUID
Guid newGuid = Guid.NewGuid();
// Output the newly generated GUID to the console
Console.WriteLine(newGuid);
}
}Imports System
Module Program
Sub Main()
' Generate a new GUID
Dim newGuid As Guid = Guid.NewGuid()
' Output the newly generated GUID to the console
Console.WriteLine(newGuid)
End Sub
End Module이 코드에서, Guid.NewGuid() 메서드는 내부적으로 랜덤 숫자 생성기를 사용하여 새로운 GUID를 생성하고, Console.WriteLine은 새로 생성된 GUID를 콘솔에 출력합니다.
GUID 구조 및 포맷
GUID는 일반적으로 8-4-4-4-12 형식으로 표시되는 32개의 16진수 숫자로 구성됩니다 (예: e02fd0e4-00fd-090A-ca30-0d00a0038ba0). GUID는 ToString() 메서드를 사용하여 문자열로 변환될 때, 이 형식으로 표현됩니다. 이 표현은 JSON, XML 또는 데이터베이스와 같은 텍스트 기반 형식에 GUID를 쉽게 저장할 수 있게 합니다.
다음은 GUID를 문자열로 변환하는 코드 예제입니다:
using System;
class Example
{
static void Main()
{
// Generate a new GUID
Guid newGuid = Guid.NewGuid();
// Convert the GUID to a string
string guidString = newGuid.ToString();
// Output the GUID string
Console.WriteLine(guidString);
}
}Imports System
Module Example
Sub Main()
' Generate a new GUID
Dim newGuid As Guid = Guid.NewGuid()
' Convert the GUID to a string
Dim guidString As String = newGuid.ToString()
' Output the GUID string
Console.WriteLine(guidString)
End Sub
End Module이 코드는 GUID를 문자열로 변환하고 출력합니다.
GUID 문자열 구문 분석
때로는 문자열을 GUID 객체로 다시 구문 분석해야 할 수 있습니다. 이는 Guid.Parse() 메서드를 사용하여 수행됩니다. 문자열이 올바른 형식이면 GUID 인스턴스로 구문 분석됩니다. 형식이 잘못된 경우 예외가 발생합니다.
다음은 코드 예시입니다.
using System;
class ParseExample
{
static void Main()
{
// Define a GUID string
string guidString = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0";
// Convert the string back into a GUID object
Guid parsedGuid = Guid.Parse(guidString);
// Output the parsed GUID
Console.WriteLine(parsedGuid);
}
}Imports System
Module ParseExample
Sub Main()
' Define a GUID string
Dim guidString As String = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0"
' Convert the string back into a GUID object
Dim parsedGuid As Guid = Guid.Parse(guidString)
' Output the parsed GUID
Console.WriteLine(parsedGuid)
End Sub
End Module이 코드에서, Guid.Parse() 메서드는 문자열을 다시 GUID 객체로 변환합니다.
두 GUID 비교
GUID는 동일한지 아닌지를 비교할 수 있습니다. Guid 구조체는 동등 비교 연산자(==)를 구현하므로 두 GUID 객체를 직접 비교할 수 있습니다.
다음은 예시입니다.
using System;
class CompareExample
{
static void Main()
{
// Generate two new GUIDs
Guid guid1 = Guid.NewGuid();
Guid guid2 = Guid.NewGuid();
// Compare the two GUIDs
if (guid1 == guid2)
{
Console.WriteLine("The two GUIDs are the same.");
}
else
{
Console.WriteLine("The two GUIDs are different.");
}
}
}Imports System
Class CompareExample
Shared Sub Main()
' Generate two new GUIDs
Dim guid1 As Guid = Guid.NewGuid()
Dim guid2 As Guid = Guid.NewGuid()
' Compare the two GUIDs
If guid1 = guid2 Then
Console.WriteLine("The two GUIDs are the same.")
Else
Console.WriteLine("The two GUIDs are different.")
End If
End Sub
End Class이 코드에서는 두 GUID가 비교됩니다. Guid.NewGuid()에서 생성된 각 GUID는 고유하기 때문에, 결과는 일반적으로 '두 GUID는 다릅니다.'가 됩니다.
GUID 사용 시 일반적인 실수
-
GUID가 순차적이라고 가정: GUID는 랜덤하며,
NewGuid()메서드는 순차적인 값을 생성하지 않습니다. 따라서 GUID가 어떤 종류의 순서를 유지할 것이라 가정해서는 안 됩니다. -
문자열 비교 대신 GUID 비교를 사용하는 것: GUID를 문자열로 비교하면 비효율적일 수 있습니다. 항상 GUID 객체를 직접 비교하고, 문자열로 변환하여 문자열 값을 비교하지 마십시오.
-
인덱싱 없이 대규모 데이터베이스에 GUID 사용: GUID는 크기 때문에 적절히 인덱싱하지 않으면 대규모 데이터베이스의 성능에 영향을 미칠 수 있습니다. GUID 컬럼을 기본 키로 사용할 경우 인덱싱되어 있는지 확인하십시오.
.NET Core 및 Framework에서의 GUID
GUID는 .NET Framework와 .NET Core 모두에서 지원됩니다. Guid 클래스 사용은 .NET 플랫폼의 다양한 버전에서 일관되게 유지됩니다. 따라서, .NET의 모든 버전에서 작업하는 개발자는 Guid.NewGuid() 메서드를 사용하여 쉽게 GUID를 생성할 수 있습니다.
GUID 대 UUID
GUID는 UUID(범용 고유 식별자)와 유사하며, 두 용어는 종종 혼용됩니다. 명세서의 약간의 차이점이 있지만, 고유 식별자를 생성하는 동일한 목적을 가지고 있습니다.
IronPDF와 GUID 사용

IronPDF는 .NET 응용 프로그램에서 HTML에서 PDF 생성 및 기타 PDF 작업을 위한 PDF 라이브러리입니다. PDF 문서에 대한 고유한 파일 이름을 생성해야 할 때 IronPDF를 GUID와 결합할 수 있습니다. 이는 생성된 각 PDF가 고유한 이름을 갖도록 하여 파일의 덮어쓰기나 이름 충돌을 방지합니다. 다음은 새로운 GUID와 함께 IronPDF를 사용하는 간단한 예입니다:
using System;
using IronPdf;
class Program
{
static void Main()
{
// Generate a new GUID object for the PDF filename
Guid pdfId = Guid.NewGuid();
string filename = $"{pdfId}.pdf";
// Create a PDF document using IronPDF
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
// Save the PDF with the unique filename
pdfDocument.SaveAs(filename);
Console.WriteLine($"PDF saved as: {filename}");
}
}Imports System
Imports IronPdf
Module Program
Sub Main()
' Generate a new GUID object for the PDF filename
Dim pdfId As Guid = Guid.NewGuid()
Dim filename As String = $"{pdfId}.pdf"
' Create a PDF document using IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")
' Save the PDF with the unique filename
pdfDocument.SaveAs(filename)
Console.WriteLine($"PDF saved as: {filename}")
End Sub
End Module위 코드를 Visual Studio에서 실행하고 출력을 관찰하십시오.

각 PDF 파일에 고유한 랜덤 GUID를 생성하기 위해 Guid.NewGuid()을 사용합니다. 이 GUID는 문자열로 변환되어 파일 이름으로 사용됩니다.
결론

이 기사에서는 C#에서의 GUID 기본 사항을 다루었습니다. 새로운 GUID를 생성하고, 이를 비교하고, 문자열에서 파싱하고, 데이터베이스와 같은 실용적인 시나리오에서 사용하는 방법을 보셨습니다. Guid.NewGuid() 메서드는 GUID의 새로운 인스턴스를 쉽게 생성하도록 하여, 각 식별자가 시스템 간에 고유함을 보장합니다. .NET에서 작업하는 개발자는 응용 프로그램에서의 무작위성과 고유성을 제공하기 위해 GUID에 의존할 수 있습니다.
IronPDF는 투자 전에 테스트하는 것이 중요하다는 것을 이해하여, 무료 체험판을 제공합니다. 소프트웨어의 성능을 무료로 평가할 수 있습니다. 유용하다고 판단되면, 라이선스는 $999부터 시작됩니다.

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.
관련 기사


