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

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

UUID (범용 고유 식별자) 패키지는 JavaScript 애플리케이션에서 범용 고유 식별자(UUID)를 생성하는 데 사용되는 인기 있는 NPM(Node Package Manager) 라이브러리입니다. UUID는 데이터베이스에서 고유 키를 만들거나 세션 식별자 등으로 활용할 때 유용합니다. 이 글 후반부에서는 Iron Software 에서 개발한 PDF 생성 Node.js 패키지인 IronPDF 대해서도 살펴보겠습니다. 이 두 라이브러리 모두 데이터베이스용 고유 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

또는

yarn add uuid
yarn add uuid
SHELL

기본 사용법

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

// Imp또는t syntax f또는 uuid library
imp또는t { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
// Imp또는t syntax f또는 uuid library
imp또는t { 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 구문을 사용하면 다음과 같습니다.

// Imp또는t 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'
// Imp또는t 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를 생성할 수 있습니다.
imp또는t { 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'
imp또는t { 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의 유효성을 검사하고 구문 분석하는 함수도 제공합니다.
imp또는t { 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 ]
imp또는t { 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
imp또는t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
imp또는t { validate as uuidValidate } from 'uuid';

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

exp또는t 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 f또는 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 (err또는) {
    console.err또는("Err또는 generating PDF:", err또는);
    res.status(500).end();
  }
}
// pages/api/pdf.js
imp또는t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
imp또는t { validate as uuidValidate } from 'uuid';

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

exp또는t 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 f또는 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 (err또는) {
    console.err또는("Err또는 generating PDF:", err또는);
    res.status(500).end();
  }
}
JAVASCRIPT

이제 index.js 코드를 수정하여 UUID와 IronPDF를 사용합니다.

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

exp또는t default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs f또는 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 (err또는) {
      console.err또는("Err또는 generating PDF:", err또는);
    }
  };

  // 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: b또는der-box;
        }
      `}</style>
    </div>
  );
}
imp또는t Head from "next/head";
imp또는t styles from "../styles/Home.module.css";
imp또는t React, { useState } from "react";
imp또는t { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

exp또는t default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs f또는 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 (err또는) {
      console.err또는("Err또는 generating PDF:", err또는);
    }
  };

  // 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: b또는der-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

코드 설명

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

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

    • 상태 관리:

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

      • uuidv4(): 랜덤 UUID 버전 4를 생성합니다.
      • MY_NAMESPACEuuidv5('IronPDF', MY_NAMESPACE): 지정된 네임스페이스를 기반으로 UUID 버전 5를 생성합니다.
    • PDF 생성 (generatePdf 함수):

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

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

    • 컴포넌트의 UI 구조에 대한 JSX를 반환합니다.
      • 제목 (Head), 주요 섹션 (<main>), UUID를 보여주는 다양한 단락과 사용자 상호작용을 위한 입력 필드를 포함합니다.
      • generatePdf 함수는 버튼 클릭에 바인딩되어 PDF 생성을 트리거합니다.
    • CSS 스타일은 Next.js의 styled-jsx를 사용하여 로컬(<style jsx>) 및 전역(<style jsx global>)으로 정의됩니다.

출력

uuid NPM (개발자를 위한 작동 방식): 그림 2

PDF

uuid NPM (개발자를 위한 작동 방식): 그림 3

IronPDF 라이선스

IronPDF 라이선스 키를 사용하여 실행됩니다. IronPDF npm은 사용자가 구매 전에 다양한 기능을 확인해 볼 수 있도록 무료 평가판 라이선스 키를 제공합니다.

라이선스 키를 여기에 입력하세요:

imp또는t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
imp또는t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JAVASCRIPT

결론

UUID NPM 패키지는 JavaScript 애플리케이션에서 고유 식별자를 생성하는 데 사용할 수 있는 강력하고 다재다능한 도구입니다. 다양한 UUID 버전 지원, 크로스 플랫폼 호환성 및 강력한 암호화 기능을 갖춘 이 라이브러리는 고유 식별자가 필요한 개발자에게 필수적인 도구입니다.

IronPDF Node.js 개발자가 애플리케이션 내 PDF 처리 기능을 향상시켜 탁월한 기능, 안정성 및 성능을 제공할 수 있도록 지원합니다. IronPDF의 고급 PDF 생성, 변환 및 조작 기능을 활용하면 개발자는 문서 워크플로를 간소화하고 사용자 경험을 향상시키며 다양한 비즈니스 요구 사항을 자신 있게 충족할 수 있습니다.

IronPDF 도입하여 Node.js 프로젝트에서 PDF 처리의 모든 잠재력을 활용하고 전문가 수준의 문서 솔루션을 손쉽게 제공하세요. 반면에 UUID NPM 패키지를 사용하면 데이터 암호화에 필요할 때마다 고유 ID를 생성할 수 있습니다. 이러한 비밀 키는 보관 목적으로 IronPDF 를 사용하여 PDF 파일에 저장할 수 있습니다.

다리우스 세란트
풀스택 소프트웨어 엔지니어 (웹 운영)

다리우스 세런트는 마이애미 대학교에서 컴퓨터 과학 학사 학위를 받았으며, Iron Software에서 풀 스택 웹 운영 마케팅 엔지니어로 근무하고 있습니다. 어린 시절부터 코딩에 매료되었던 그는 컴퓨팅이 신비로우면서도 접근하기 쉬운 분야라고 생각했고, 창의력과 문제 해결 능력을 발휘하기에 완벽한 매체라고 여겼습니다.

Iron Software에서 다리우스는 새로운 것을 만들고 복잡한 개념을 단순화하여 더 쉽게 이해할 수 있도록 하는 것을 즐깁니다. 그는 사내 개발자로서 학생들을 가르치는 데에도 자원하여 차세대 인재들과 전문 지식을 공유하고 있습니다.

다리우스에게 있어 그의 일은 가치 있고 실질적인 영향을 미치기 때문에 보람 있는 일입니다.

아이언 서포트 팀

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