본문 바로가기

Flutter

<Flutter> uuid 3.0.4

UUID (Universally Unique IDentifier)는 한글로 범용 고유 식별자라고 불린다. 간략히 얘기하자면 네트워크 상에서 고유성이 보장되는 ID를 만들기 위한 표준 규약이라고 생각하면 된다.

 

위에서 설명한 UUID를 Pub.dev에서 Package로 제공을 한다.

 

먼저 pubspec.yaml 파일에서 dependencies에 uuid: ^3.0.4를 입력하고 flutter pub get을 하여 적용시키면 된다.

 

dependencies:
  uuid: ^3.0.4

 

다음, 원하는 Dart code로 가서 다음과 같이 import 해서 사용할 수 있다.

 

import 'package:uuid/uuid.dart';

 

다음은 pub.dev에서 제공하는 예시이다.

 

import 'package:uuid/uuid.dart';
import 'package:uuid/uuid_util.dart';

void main() {
  var uuid = Uuid();

  // Generate a v1 (time-based) id
  var v1 = uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'

  var v1_exact = uuid.v1(options: {
    'node': [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
    'clockSeq': 0x1234,
    'mSecs': DateTime.utc(2011, 11, 01).millisecondsSinceEpoch,
    'nSecs': 5678
  }); // -> '710b962e-041c-11e1-9234-0123456789ab'

  // Generate a v4 (random) id
  var v4 = uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'

  // Generate a v4 (crypto-random) id
  var v4_crypto = uuid.v4(options: {'rng': UuidUtil.cryptoRNG});
  // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'

  // Generate a v5 (namespace-name-sha1-based) id
  var v5 = uuid.v5(Uuid.NAMESPACE_URL, 'www.google.com');
  // -> 'c74a196f-f19d-5ea9-bffd-a2742432fc9c'

  print(v1);
  print(v1_exact);
  print(v4);
  print(v4_crypto);
  print(v5);
}

 

위의 예시에서 확인할 수 있듯이,

uuid.v1은 Time-Based ID이다. 다시 말해 시간에 따라 ID가 생성된다는 소리이다.

uuid.v4는 Random 하게 생성되는 ID이다.

uuid.v5는 SHA-1 Based 한 ID이다.

 

이렇게 uuid는 v1, v4, v5를 사용해 유저가 원하는 대로 골라 쓰면 된다.  굉장히 편하다.