Search
Duplicate
🥈

uuid

개요

: 일반적으로 node.js에서 uuid를 생성하고자 할때, 널리 사용되는 듯함!
: UUID 문자열을 바이트 배열로 변환하거나 그 반대 작업이 가능하며, UUID의 유효성을 검증하고 버전을 감지하는 기능을 제공함

대표적인 메소드

uuid.parse(): UUID 문자열을 바이트 배열로 변환
uuid.stringify(): 바이트 배열을 UUID 문자열로 변환
uuid.v1(): RFC 버전 1 (타임스탬프) UUID를 생성
uuid.v3(): RFC 버전 3 (네임스페이스 w/ MD5) UUID를 생성
uuid.v4(): RFC 버전 4 (랜덤) UUID를 생성
uuid.v5(): RFC 버전 5 (네임스페이스 w/ SHA-1) UUID를 생성
uuid.validate(): 문자열이 유효한 UUID인지 테스트.
uuid.version(): UUID의 RFC 버전을 감지

적용 예

서비스 클래스 캡슐화
코드
: 서비스 클래스로 캡슐화하고 싶다면 위와 같이 해도 될듯 하나, 모듈을 만들어서하는 것도 좋을듯함!
모듈화후 서비스 클래스 캡슐화
코드

UUID 생성 버전별 장단점

1.
UUID v1:
장점: 시간 기반의 UUID 생성. 같은 노드에서 동시에 생성된 UUID가 충돌할 확률이 매우 낮음
단점: 생성 시간과 MAC 주소를 포함하므로 개인 정보 보호에 문제 가능성..
2.
UUID v2:
장점: v1에 비해 추가 정보(예: POSIX UID)를 포함
단점: UUID v2는 표준이 아님..!
3.
UUID v3:
장점: 이름 기반의 UUID 생성. 같은 이름과 네임스페이스로 항상 같은 UUID를 생성
단점: MD5 해시를 사용하므로 암호화가 약하며, 충돌 가능성 존재..
4.
UUID v4:
장점: 무작위 UUID 생성. 강력한 랜덤성을 보장하므로 충돌 가능성이 매우 낮음
단점: 랜덤성이 완벽하게 보장되지 않는 시스템에서는 충돌 가능성이 있음
5.
UUID v5:
장점: 이름 기반의 UUID 생성. 같은 이름과 네임스페이스로 항상 같은 UUID를 생성
단점: SHA-1 해시를 사용하지만, SHA-1도 암호학적으로 안전하지 않다는 취약점이 발견
: UUID v4는 무작위성이 필요할 때 가장 널리 사용되며, UUID v3 또는 v5는 일관성이 필요할 때 사용