Skip to main content

UUID 완전 정복: 개념부터 생성 방법까지

·452 words·3 mins
미뇽
Author
미뇽
안녕하세요! 기술로 세상을 이롭게 만들고 싶은 개발자 미뇽입니다.
Table of Contents

분산 시스템 환경이나 데이터베이스를 다루다 보면, ‘충돌 없는 고유한 ID’의 필요성을 절감하게 됩니다. UUID는 바로 이 문제를 해결하기 위해 탄생한 표준 식별자입니다. 오늘은 UUID의 핵심 개념과 주요 활용처, 그리고 각 운영체제에서 UUID를 손쉽게 생성하는 방법을 명확하게 안내해 드리고자 합니다.

UUID란 무엇인가?
#

UUID(Universally Unique Identifier) 는 전 세계적으로 거의 중복되지 않는 고유한 식별자를 생성하기 위한 표준 규약입니다.

핵심은 중앙 관리 시스템 없이도 누구나, 어디서든 ID를 생성할 수 있으면서도, 그 ID가 다른 사람이 만든 ID와 겹칠 확률이 사실상 ‘0’에 가깝다는 점입니다. 일반적으로 123e4567-e89b-12d3-a456-426614174000와 같이 32개의 16진수 문자와 4개의 하이픈으로 구성된 128비트 값입니다.

UUID를 사용하는 이유
#

  • 고유성 보장: 여러 컴퓨터와 데이터베이스가 분산된 환경에서 각자 ID를 만들어도 서로 충돌할 걱정이 없습니다. 이는 데이터 병합이나 시스템 통합 시 발생할 수 있는 문제를 원천적으로 방지합니다.

  • 보안성: 1, 2, 3...처럼 순서대로 증가하는 ID는 다음 생성될 ID를 쉽게 예측할 수 있어 보안에 취약합니다. 반면 UUID는 무작위 문자열처럼 보여 예측이 불가능하므로, 외부에 노출되는 리소스 ID 등에 사용하기 안전합니다.

  • 독립적인 생성: ID를 생성하기 위해 중앙 서버에 “다음 번호를 주세요"라고 요청할 필요가 없습니다. 각 시스템이 네트워크 연결 없이도 자체적으로 고유한 ID를 생성할 수 있어 시스템의 독립성과 확장성을 높입니다.

UUID의 주요 활용처
#

UUID는 데이터를 고유하게 식별해야 하는 거의 모든 곳에서 활용될 수 있습니다.

데이터베이스 기본 키 (Primary Key)
#

여러 데이터베이스 서버를 사용하는 분산 시스템에서 각 서버가 고유한 ID를 가진 데이터를 생성할 때 사용합니다. 나중에 이 데이터들을 하나로 합쳐도 ID 충돌이 발생하지 않습니다.

트랜잭션 및 로그 ID
#

수많은 요청과 이벤트가 발생하는 대규모 시스템에서 각 처리 과정을 추적하기 위한 고유한 ID로 사용되어, 문제 발생 시 원인 분석을 용이하게 합니다.

파일 및 리소스 식별자
#

사용자가 업로드하는 파일의 이름을 UUID로 변경하여 저장하면, 같은 이름의 파일이 업로드되어도 겹치지 않고 안전하게 보관할 수 있습니다.

세션 및 인증 토큰
#

웹사이트나 앱에서 각 사용자의 로그인 상태를 유지하기 위한 세션 ID나 API 인증 토큰으로 사용됩니다. 추측이 불가능하여 보안성을 높입니다.

운영체제별 UUID 생성 방법
#

각 운영체제에 내장된 도구를 사용하여 터미널에서 매우 간단하게 UUID를 생성할 수 있습니다.

macOS
#

Mac에서는 uuidgen이라는 기본 내장 명령어를 사용합니다.

  1. 터미널 앱을 엽니다.

  2. 아래 명령어를 입력하고 Enter 키를 누릅니다.

uuidgen
  1. E0B3B5E0-A5A1-4A59-99B3-1B5B3AD3F3B8 와 같은 UUID가 즉시 생성됩니다.

결과를 바로 클립보드에 복사하려면 pbcopy와 함께 사용하십시오.

uuidgen | pbcopy

Ubuntu / Linux
#

Ubuntu를 포함한 대부분의 Linux 배포판에서도 uuidgen 명령어를 사용합니다.

  1. 터미널을 엽니다.

  2. 아래 명령어를 입력합니다.

uuidgen

xclip과 같은 도구가 설치되어 있다면, 아래 명령어로 결과를 클립보드에 복사할 수 있습니다.

# xclip이 설치되어 있어야 합니다.
uuidgen | xclip -selection clipboard

Windows
#

윈도우에서는 PowerShell을 사용하는 것이 가장 편리합니다.

  1. PowerShell을 엽니다. (시작 메뉴에서 PowerShell 검색)

  2. 아래 명령어를 입력합니다.

[guid]::NewGuid()

이 명령어는 Guid 객체 형태로 결과를 출력합니다.

만약 순수한 UUID 문자열만 클립보드에 복사하고 싶다면, 아래의 명령어를 사용하세요.

[guid]::NewGuid().ToString() | Set-Clipboard

이 명령을 실행하면 화면에 아무런 출력이 없지만, UUID가 클립보드에 복사되어 바로 붙여넣기(Ctrl + V)할 수 있습니다.


참조