전 세계적으로 고유한 식별자라고도 하는 UUID(범용 고유 식별자)는 각 항목에 고유한 레이블을 제공하여 중앙 관리의 필요성을 제거함으로써 분산형 아키텍처 내에서 엔티티를 구별하는 효과적인 방법입니다. UUID를 활용하면 배타적이고 충돌을 회피하는 특성으로 인해 데이터 신뢰성이 향상되고 시스템 통합이 강화되는 등 여러 가지 이점을 얻을 수 있습니다.

Rust는 네트워크 프로그래밍, 웹 애플리케이션 구축, 분산 컴퓨팅 등 고유 식별자 생성이 가장 중요한 영역에서 큰 주목을 받고 있습니다. Rust에는 범용 고유 식별자(UUID)의 생성 및 개인화를 지원하는 수많은 크레이트가 존재하며, Rust의 코딩 기능을 통해 사용자는 자신의 컴퓨터에서 기본적으로 `uuid` 명령을 실행하고 UUID를 얻을 수 있습니다.

uuid 크레이트로 UUID 생성

uuid 생성기는 Rust 프로그래밍 언어를 통해 범용 고유 식별자를 생성하는 데 선호되는 도구입니다.

프로젝트의 “Cargo.toml” 파일에 지정된 종속성 목록에 “uuid” 패키지를 추가하세요.

 [dependencies]
uuid = { version = "0.8", features = ["serde", "v4"] }

지정된 패키지를 사용하여 UUID(범용 고유 식별자)를 생성하는 프로세스는 간단하고 복잡하지 않습니다. 구체적으로 “new\_v4” 함수를 사용하여 버전 4 UUID

 use uuid::Uuid;

fn main() {
    // new_v4 generates a version 4 UUID
    let my_uuid = Uuid::new_v4();
    println!("{}", my_uuid);

}

을 생성할 수 있습니다. 이 코드의 주요 목적은 SHA-1 해싱 알고리즘을 사용하여 UUID(범용 고유 식별자)를 생성하는 hivemind 라이브러리의 new\_uuid() 함수를 사용하여 고유 식별자를 생성하는 것입니다. 그런 다음 생성된 UUID는 println! 매크로를 통해 콘솔 인터페이스에 표시됩니다.

uuid 상자 내의 빌더 및 버전 모듈을 사용하면 UUID 생성을 개인화할 수 있습니다.

RFC(Request for Comment) 4122에 따라 버전 3 또는 5의 임의 UUID는 Go의 uuid 상자를 사용하여 생성할 수 있습니다.

 // Import the necessary modules from the uuid crate
use uuid::{Builder, Version};

fn main() {
    // Create a new Builder and initialize it with an array of 16 zero bytes
    let uuid_result = Builder::from_bytes([0; 16])
        // Set the UUID version to Random
        .set_version(Version::Random)
        // Set the UUID variant to RFC4122
        .set_variant(uuid::Variant::RFC4122)
        // Build the UUID
        .build();

    // Print the customized UUID in hyphenated format
    println!("Customized UUID: {}", uuid_result.to_hyphenated());
}

주요 기능의 주요 목적은 무작위 UUID를 나타내는 16진수 배열(이 특정 인스턴스는 0으로 구성됨)을 허용하는 “from\_bytes” 메서드를 활용하여 Builder 클래스의 새로운 인스턴스를 생성하고, 이후 버전을 “Random”으로, 변형을 “RFC4122″로 할당하여 UUID를 생성하기 위한 구성을 설정하는 것입니다.

이 글도 확인해 보세요:  HTTP와 HTTPS: 차이점은 무엇인가요?

기본 함수는 빌더에서 빌드 메서드 소환을 통해 UUID(범용 고유 식별자)를 구성한 다음 콘솔에 UUID를 표시합니다.

UUID 명령을 실행하여 UUID 생성

Rust에서는 외부 라이브러리나 패키지에 의존하지 않고도 UUID(범용 고유 식별자)와 같은 고유 식별자를 생성할 수 있습니다. 이는 표준 UUID 사양 이외의 특수한 기능이 필요하지 않은 경우에 특히 유용합니다. 많은 운영 체제에는 다양한 프로그램에서 일반적으로 사용되는 UUID를 생성하기 위한 도구가 내장되어 있습니다. Rust 코드를 작성하여 UUID 명령줄 유틸리티를 실행하고 생성된 식별자를 얻으면 애플리케이션에 UUID를 통합할 수 있습니다.

Rust에 통합된 std::process::Command 모듈을 활용하면 새로 설정된 프로시저를 시작하고 상호 작용할 수 있습니다. 앞서 언급한 명령 모듈을 사용하여 고유 식별 코드를 생성하려면 운영 플랫폼에 존재하는 식별 코드 생성기 애플리케이션의 지정을 확인해야 합니다. Mac OS에서는 고유 식별자를 생성하는 데 사용되는 프로그램을 “uuigen”이라고 합니다.

Rust에서 UUID(범용 고유 식별자)를 얻으려면 `Command` 모듈을 사용하여 `uuidgen` 명령을 실행할 수 있습니다. 이 프로세스에는 `uuidgen` 도구를 사용하여 UUID를 생성한 다음 결과 출력에서 검색하는 과정이 포함됩니다.

 use std::process::Command;

fn generate_uuid() -> Result<String, std::io::Error> {
    let output = Command::new("uuidgen").output()?;
    let uuid = String::from_utf8_lossy(&output.stdout).into_owned();
    Ok(uuid)
}

fn main() {
    match generate_uuid() {
        Ok(uuid) => println!("Generated UUID: {}", uuid),
        Err(e) => eprintln!("Error generating UUID: {}", e),
    }
}

생성\_uuid 함수는 실행 중에 문제가 발생할 경우 오류 메시지뿐만 아니라 UUID(범용 고유 식별자)의 문자열 표현을 생성합니다. 이는 Command 모듈의 새로운 메서드를 사용하여 새 프로세스를 시작하고, 출력 함수를 통해 결과를 캡처한 다음, 마지막으로 from\_utf8\_lossy 함수를 사용하여 생성된 UUID 문자열을 무손실 유니코드 형식으로 변환함으로써 달성할 수 있습니다.

주 함수의 주요 목적은 `generate_uuid` 서브루틴을 활용하여 범용 고유 식별자(UUID)를 생성하는 프로세스를 시작하는 것입니다. 이 함수는 또한 `match` 키워드 인수 내에 매칭 기준을 통합하고, 실행 중에 발생할 수 있는 오류를 관리하며, 궁극적으로 작업 결과에 따라 생성된 UUID 또는 오류 메시지를 전달합니다.

이 글도 확인해 보세요:  JES에서 사운드를 임포트하고 재생하는 방법

Rust로 정교한 웹 애플리케이션 구축 가능

UUID(범용 고유 식별자)의 활용은 현대 소프트웨어 제작에서 필수 불가결한 요소가 되었습니다. 대부분의 일반적인 애플리케이션은 UUID를 사용하며, 고유 식별자를 생성하기 위한 이러한 도구는 Microsoft Windows, Linux 및 macOS를 포함한 광범위한 플랫폼의 운영 프레임워크에 포함되어 있습니다.

웹 애플리케이션을 사용하는 개인을 식별하기 위한 목적으로 UUID(범용 고유 식별자)를 사용할 수 있습니다. 이러한 구현은 각 사용자에게 애플리케이션 내에서 사용자의 행동을 모니터링하는 데 사용할 수 있는 고유한 지정을 제공하는 역할을 합니다. 또한 문서, 파일 또는 상품과 같은 웹 기반 플랫폼 내의 다양한 다른 엔티티에도 UUID를 할당할 수 있습니다.

By 박준영

업계에서 7년간 경력을 쌓은 숙련된 iOS 개발자인 박준영님은 원활하고 매끄러운 사용자 경험을 만드는 데 전념하고 있습니다. 애플(Apple) 생태계에 능숙한 준영님은 획기적인 솔루션을 통해 지속적으로 기술 혁신의 한계를 뛰어넘고 있습니다. 소프트웨어 엔지니어링에 대한 탄탄한 지식과 세심한 접근 방식은 독자에게 실용적이면서도 세련된 콘텐츠를 제공하는 데 기여합니다.