# 추가된 컬럼 넷과 널 정책
ALTER TABLE fs_cleanup_item
    ADD COLUMN IF NOT EXISTS claim_owner   varchar(120),
    ADD COLUMN IF NOT EXISTS claim_token   uuid,
    ADD COLUMN IF NOT EXISTS lease_until   timestamptz,
    ADD COLUMN IF NOT EXISTS claim_fence   bigint NOT NULL DEFAULT 0;

# 완료 갱신이 토큰으로 행을 찾는다
76:         and c.claimToken = :token
129:         and c.claimToken = :token

# 회수기가 널 만료를 제외한다
97:         and c.leaseUntil is not null

# claim_fence 를 쓰는 곳 / 읽는 곳
adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/fileserver/repository/FileserverCleanupRepository.java:44:             c.claimFence = c.claimFence + 1,
adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/fileserver/entity/CleanupItemEntity.java:83:  private long claimFence;
-- CleanupItemEntity 의 getter
13
152:  public UUID getClaimToken() {
157:  public Instant getLeaseUntil() {
