푸터 콘텐츠로 바로가기
노드 도움말

uuid NPM (개발자를 위한 작동 방식)

UUID (범용 고유 식별자) 패키지는 JavaScript 애플리케이션에서 범용 고유 식별자(UUID)를 생성하는 데 사용되는 인기 있는 NPM(Node Package Manager) 라이브러리입니다. UUID는 데이터베이스에서 고유 키를 만들거나 세션 식별자 등으로 활용할 때 유용합니다. 후반부에는 IronPDF, Iron Software의 PDF 생성 Node.js 패키지에 대해서도 살펴봅니다. 이 두 라이브러리는 데이터베이스를 위한 고유 ID 생성을 위해 사용할 수 있으며, 생성된 UUID는 아카이빙 목적으로 PDF 형식으로 저장할 수 있습니다.

주요 특징

  1. RFC4122 준수: UUID 패키지는 RFC4122를 준수하는 UUID 생성을 지원하여 UUID가 보편적으로 고유하고 표준화되도록 보장합니다.
  2. 다양한 UUID 버전 지원: 다음과 같은 다양한 UUID 버전을 지원합니다.

    • v1: 타임스탬프 기반 UUID.
    • v3: MD5 해싱을 사용하는 네임스페이스 기반 UUID.
    • v4: 무작위로 생성된 UUID.
    • v5: SHA-1 해싱을 사용하는 네임스페이스 기반 UUID.
    • v6: 정렬 기능 향상을 위해 필드 순서가 재정렬된 타임스탬프 기반 UUID 1 .
  3. 크로스 플랫폼 지원: 이 패키지는 Node.js, React Native 및 최신 웹 브라우저를 포함한 다양한 환경에서 작동합니다.
  4. 종속성 없음: 용량이 작고 종속성이 없어 가볍고 프로젝트에 쉽게 통합할 수 있습니다.
  5. 암호학적으로 강력함: 생성된 UUID는 암호학적으로 강력하여 높은 보안성을 보장합니다.

설치

uuid 패키지를 설치하려면 다음 명령 중 하나를 사용하십시오.

npm install uuid
npm install uuid
SHELL

or

yarn add uuid
yarn add uuid
SHELL

기본 사용법

uuid 패키지를 사용하여 UUID 문자열을 생성하는 방법은 다음과 같습니다.

// Import syntax for uuid library
import { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
// Import syntax for uuid library
import { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
JAVASCRIPT

또는 CommonJS 구문을 사용하면 다음과 같습니다.

// Import using CommonJS syntax
const { v4: uuidv4 } = require('uuid');
// Generate a random UUID (version 4)
const myUUID = uuidv4();
console.log(myUUID); // Example uuid string output: '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
// Import using CommonJS syntax
const { v4: uuidv4 } = require('uuid');
// Generate a random UUID (version 4)
const myUUID = uuidv4();
console.log(myUUID); // Example uuid string output: '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
JAVASCRIPT

고급 기능

  1. 네임스페이스 기반 UUID: 버전 3 또는 버전 5를 사용하여 네임스페이스와 이름을 기반으로 UUID를 생성할 수 있습니다.
import { v5 as uuidv5 } from 'uuid';

// Define a namespace UUID
const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';

// Generate UUID based on the namespace and a name
const myUUID = uuidv5('my-unique-name', MY_NAMESPACE);
console.log(myUUID); // Example output: 'e4eaaaf2-d142-11e1-b3e4-080027620cdd'
import { v5 as uuidv5 } from 'uuid';

// Define a namespace UUID
const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';

// Generate UUID based on the namespace and a name
const myUUID = uuidv5('my-unique-name', MY_NAMESPACE);
console.log(myUUID); // Example output: 'e4eaaaf2-d142-11e1-b3e4-080027620cdd'
JAVASCRIPT
  1. 유효성 검사 및 구문 분석: UUID 패키지는 UUID의 유효성을 검사하고 구문 분석하는 함수도 제공합니다.
import { validate as uuidValidate, parse as uuidParse } from 'uuid';

// Validate a UUID
const isValid = uuidValidate('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(isValid); // true

// Convert UUID string to an array of bytes
const bytes = uuidParse('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(bytes); // Uint8Array(16) [ 155, 29, 235, 77, 59, 125, 75, 173, 155, 221, 43, 13, 123, 61, 203, 109 ]
import { validate as uuidValidate, parse as uuidParse } from 'uuid';

// Validate a UUID
const isValid = uuidValidate('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(isValid); // true

// Convert UUID string to an array of bytes
const bytes = uuidParse('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(bytes); // Uint8Array(16) [ 155, 29, 235, 77, 59, 125, 75, 173, 155, 221, 43, 13, 123, 61, 203, 109 ]
JAVASCRIPT

IronPDF 소개

uuid NPM (개발자를 위한 작동 원리): 그림 1 - IronPDF

IronPDF 는 PDF 문서를 생성, 편집 및 변환하는 데 사용되는 인기 있는 PDF 생성 라이브러리입니다. IronPDF NPM 패키지는 Node.js 애플리케이션용으로 특별히 설계되었습니다. 다음은 IronPDF NPM 패키지의 주요 기능 및 세부 정보입니다.

주요 특징

HTML을 PDF로 변환

HTML 콘텐츠를 PDF 문서로 손쉽게 변환하세요. 이 기능은 웹 콘텐츠에서 동적 PDF를 생성하는 데 특히 유용합니다.

URL을 PDF로 변환

URL에서 직접 PDF를 생성하여 웹 페이지의 콘텐츠를 캡처하고 프로그램 방식으로 PDF 파일로 저장할 수 있습니다.

PDF 조작

기존 PDF 문서를 손쉽게 병합, 분할 및 편집하세요. IronPDF 페이지 추가, 문서 분할 등의 기능을 제공합니다.

PDF 보안

PDF 문서를 암호로 암호화하거나 디지털 서명을 적용하여 보안을 강화하세요. IronPDF 무단 접근으로부터 중요한 문서를 보호할 수 있는 다양한 옵션을 제공합니다.

고품질 출력

텍스트, 이미지 및 서식이 정확하게 표현된 고품질 PDF 문서를 제작하세요. IronPDF 생성된 PDF 파일이 원본 콘텐츠와 동일한 품질을 유지하도록 보장합니다.

크로스 플랫폼 호환성

IronPDF 는 Windows, Linux, macOS를 비롯한 다양한 플랫폼과 호환되므로 폭넓은 개발 환경에 적합합니다.

간단한 통합

IronPDF의 npm 패키지를 사용하면 IronPDF Node.js 애플리케이션에 쉽게 통합할 수 있습니다. API 문서가 잘 되어 있어 프로젝트에 PDF 생성 기능을 쉽게 통합할 수 있습니다.

설치

IronPDF NPM 패키지를 설치하려면 다음 명령어를 사용하십시오.

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
SHELL

IronPDF 사용하여 PDF 문서를 생성하고 UUID NPM 패키지를 사용합니다.

UUID는 애플리케이션의 여러 곳에서 사용할 수 있습니다. 이는 애플리케이션의 매우 중요한 부분입니다. UUID는 암호화된 데이터의 비밀 키로 사용할 수 있으며, 이러한 비밀 키는 보관 목적으로 PDF 문서에 저장할 수 있습니다. 아래에서는 IronPDF 사용하여 다양한 버전의 UUID를 생성하고 이를 PDF 문서에 기록하는 예시를 살펴보겠습니다.

필수 구성 요소 설치: 먼저 다음 명령어를 사용하여 새 Next.js 프로젝트를 생성합니다(아직 생성하지 않은 경우). 여기를 참조하세요.

npx create-next-app@latest uuid-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
npx create-next-app@latest uuid-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
SHELL

다음으로 프로젝트 디렉토리로 이동하세요.

cd uuid-pdf
cd uuid-pdf
SHELL

필요한 패키지를 설치하세요:

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid
SHELL

PDF 생성

이제 IronPDF 사용하여 간단한 PDF 생성 예제를 만들어 보겠습니다.

PDF 생성 API: 첫 번째 단계는 PDF 문서를 생성하는 백엔드 API를 만드는 것입니다. IronPDF 서버 측에서만 실행되므로 사용자가 PDF를 생성하고자 할 때 호출할 API를 만들어야 합니다. 경로 pages/api/pdf.js에 파일을 생성하고 아래 내용을 추가하세요.

IronPDF 사용하려면 라이선스 키가 필요합니다. 라이선스 페이지 에서 라이선스 키를 받아 아래 코드에 붙여넣으세요.

// pages/api/pdf.js
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
import { validate as uuidValidate } from 'uuid';

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

export default async function handler(req, res) {
  try {
    // Extract query parameters from request
    const v4t = req.query.v4;
    const v5t = req.query.v5;
    const c = req.query.c;

    // Prepare HTML content for PDF
    let content = "<h1>Demo UUID and Generate PDF Using IronPDF</h1>";
    content += "<p>V4 UUID: " + v4t + "</p>";
    content += "<p>V5 UUID: " + v5t + "</p>";
    content += "<p>Is UUID: " + c + ", Valid: " + uuidValidate(c).toString() + "</p>";

    // Generate PDF document
    const pdf = await PdfDocument.fromHtml(content);
    const data = await pdf.saveAsBuffer();
    console.log("PDF generated successfully.");

    // Set the response headers and send the PDF as a response
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader("Content-Disposition", "attachment; filename=awesomeIron.pdf");
    res.send(data);
  } catch (error) {
    console.error("Error generating PDF:", error);
    res.status(500).end();
  }
}
// pages/api/pdf.js
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
import { validate as uuidValidate } from 'uuid';

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

export default async function handler(req, res) {
  try {
    // Extract query parameters from request
    const v4t = req.query.v4;
    const v5t = req.query.v5;
    const c = req.query.c;

    // Prepare HTML content for PDF
    let content = "<h1>Demo UUID and Generate PDF Using IronPDF</h1>";
    content += "<p>V4 UUID: " + v4t + "</p>";
    content += "<p>V5 UUID: " + v5t + "</p>";
    content += "<p>Is UUID: " + c + ", Valid: " + uuidValidate(c).toString() + "</p>";

    // Generate PDF document
    const pdf = await PdfDocument.fromHtml(content);
    const data = await pdf.saveAsBuffer();
    console.log("PDF generated successfully.");

    // Set the response headers and send the PDF as a response
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader("Content-Disposition", "attachment; filename=awesomeIron.pdf");
    res.send(data);
  } catch (error) {
    console.error("Error generating PDF:", error);
    res.status(500).end();
  }
}
JAVASCRIPT

이제 index.js 코드를 아래와 같이 수정하여 UUID와 IronPDF를 사용하세요.

import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";
import { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

export default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs for demonstration
  const myUUID = uuidv4();
  const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
  const myV5UUID = uuidv5('IronPDF', MY_NAMESPACE);

  // Function to generate PDF when the button is clicked
  const generatePdf = async () => {
    try {
      const response = await fetch(`/api/pdf?v4=${myUUID}&v5=${myV5UUID}&c=${text}`);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");

      // Append, click and remove the link to download the PDF
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // Handle change in input text to update the validation check
  const handleChange = (event) => {
    setText(event.target.value);
  };

  // Render the component
  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo UUID NPM and Generate PDF Using IronPDF</h1>
        <p>V4 UUID: {myUUID}</p>
        <p>V5 UUID: {myV5UUID}</p>
        <p>
          <span>Enter UUID to Verify:</span>{" "}
          <input type="text" value={text} onChange={handleChange} />
        </p>
        <p>Is UUID {text} Valid: {uuidValidate(text).toString()}</p>
        <button style={{margin: 20, padding: 5}} onClick={generatePdf}>
          Generate PDF 
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
            Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: border-box;
        }
      `}</style>
    </div>
  );
}
import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";
import { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

export default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs for demonstration
  const myUUID = uuidv4();
  const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
  const myV5UUID = uuidv5('IronPDF', MY_NAMESPACE);

  // Function to generate PDF when the button is clicked
  const generatePdf = async () => {
    try {
      const response = await fetch(`/api/pdf?v4=${myUUID}&v5=${myV5UUID}&c=${text}`);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");

      // Append, click and remove the link to download the PDF
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // Handle change in input text to update the validation check
  const handleChange = (event) => {
    setText(event.target.value);
  };

  // Render the component
  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo UUID NPM and Generate PDF Using IronPDF</h1>
        <p>V4 UUID: {myUUID}</p>
        <p>V5 UUID: {myV5UUID}</p>
        <p>
          <span>Enter UUID to Verify:</span>{" "}
          <input type="text" value={text} onChange={handleChange} />
        </p>
        <p>Is UUID {text} Valid: {uuidValidate(text).toString()}</p>
        <button style={{margin: 20, padding: 5}} onClick={generatePdf}>
          Generate PDF 
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
            Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: border-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

코드 설명

  1. 가져오기 및 초기 설정:

    • Head from next/head: 제목과 파비콘을 설정하기 위해 HTML 문서의 <head>을 수정하는 데 사용됩니다.
    • styles from ../styles/Home.module.css: 구성 요소에 대한 로컬 CSS 스타일을 가져옵니다.
    • React, useState: 상태 관리를 위한 React 훅.
    • uuidv4, uuidv5, uuidValidate: UUID 생성, 검증 및 파싱을 위한 UUID 패키지에서 가져온 함수들.
  2. 구성 요소 기능:

    • 상태 관리:

      • useState: 사용자가 UUID를 입력하는 텍스트 입력 필드의 상태를 관리합니다.
      • text: 입력 필드의 현재 값을 보유하는 상태 변수.
    • UUID 생성:

      • uuidv4(): 무작위 UUID 버전 4를 생성합니다.
      • MY_NAMESPACE and uuidv5('IronPDF', MY_NAMESPACE): 주어진 네임스페이스를 기반으로 UUID 버전 5를 생성합니다.
    • PDF 생성 (generatePdf 함수):

      • fetch을 사용하여 쿼리 매개변수 (v4, v5, c)와 함께 API 엔드포인트 (/api/pdf-uuid)를 호출합니다.
      • 응답을 블롭 형태로 다운로드하고, URL을 생성하며, 다운로드 링크 (<a> 요소)를 생성합니다.
      • 링크를 DOM에 추가하고, 링크를 클릭하여 다운로드를 시작한 다음, 다운로드가 완료되면 DOM에서 링크를 제거합니다.
    • 이벤트 처리 (handleChange 함수):

      • 사용자가 입력 필드에 입력할 때 text 상태를 업데이트합니다.
  3. 렌더링 방법:

    • 컴포넌트의 UI 구조에 대한 JSX를 반환합니다.
      • 제목 (Head), 주 섹션 (
        ), UUID와 사용자 상호작용 입력 필드를 표시하는 다양한 단락을 포함합니다.
      • generatePdf 함수는 PDF 생성을 트리거하기 위해 버튼 클릭에 연결됩니다.
    • CSS 스타일은 로컬(
      도움이 필요하세요? 영업 팀이 기꺼이 도와드리겠습니다.
      Enterprise 체험판을 사용해 보세요.
파란색 원 안의 키
무료 30일 체험 키를 즉시 받으세요.
bullet_checked신용카드나 계정 생성은 필요하지 않습니다.
  • 로고 Aetna
  • 로고 NASA
  • 로고 GE
  • 로고 Porsche
  • 로고 USDA
  • 로고 Qatar
IronPDF를 시도한 수백만 엔지니어들과 합류하세요

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해