라벨 수명 주기

라벨, 필드, 선택사항은 수명 주기 전반에 걸쳐 특정 상태를 거칩니다. 또한 라벨에는 여러 버전이 있을 수 있습니다. 다음 다이어그램은 버전 관리를 포함한 라벨 수명 주기를 보여줍니다.

라벨 수명 주기 다이어그램
그림 3. 라벨의 수명 주기
  1. 라벨 만들기 (create())—라벨이 생성되어 데이터베이스에 revision_id=1로 저장됩니다. 라벨의 상태는 UNPUBLISHED_DRAFT입니다. 이 상태에서는 다음이 적용됩니다.
    • 사용자가 라벨을 볼 수 없습니다.
    • 사용자가 Drive 항목에 라벨을 적용할 수 없습니다.
  2. (선택사항) 라벨, 필드 또는 선택사항 업데이트 (delta())— 게시되기 전이라도 모든 업데이트는 데이터베이스에 저장되고 라벨의 버전이 증가합니다.
  3. 라벨 게시 (publish())—라벨의 상태는 PUBLISHED이며 사용자가 라벨을 적용할 수 있습니다. 라벨을 게시하면 버전이 증가합니다.
  4. (선택사항) 라벨, 필드 또는 선택사항 업데이트 (delta())— 라벨, 필드 또는 선택사항이 업데이트되고 데이터베이스에 초안 라벨로 저장됩니다. 라벨의 상태는 PUBLISHED이며 hasUnpublishedChanges=true입니다. 즉, 초안 변경사항이 있지만 사용자에게는 제공되지 않습니다. 각 업데이트는 라벨의 버전을 증가시킵니다.
  5. (선택사항) 라벨 게시 (publish())—사용 가능한 경우 가장 최신 초안이 게시됩니다. 라벨의 상태는 PUBLISHED이며 사용자가 라벨을 적용할 수 있습니다. 라벨을 게시하면 버전이 증가합니다.
  6. 라벨 사용 중지 (disable())—라벨의 상태는 DISABLED이지만 사용자는 API를 통해 라벨을 적용할 수 있습니다. 하지만 사용 중지된 라벨은 표시되도록 구성되지 않는 한 UI에 표시되지 않습니다. 라벨을 지원 중단하면 버전이 증가합니다.
  7. 라벨 사용 설정 (enable())—라벨이 PUBLISHED 상태로 돌아가고 사용자가 라벨을 적용할 수 있습니다. 라벨을 게시하면 버전이 증가합니다.
  8. 라벨 삭제 (delete())—라벨의 상태는 DELETED이며 적용할 수 없습니다. 삭제된 라벨은 결국 삭제됩니다.

라벨을 업데이트할 때마다 라벨의 버전이 증가한다는 점을 강조하는 것이 중요합니다. 또한 라벨이 이미 게시된 경우 n 업데이트 후에 다시 게시하면 게시된 버전 번호는 버전 + n + 1 개의 연속 업데이트 번호가 됩니다.