Human-readable Composite ID — prefix 세그먼트 + zero-pad 시퀀스
"빵집 대기표처럼, 사람이 읽고 말할 수 있는 번호표" 를 자동으로 뽑아주는 방법이에요.
계약-JPU-2026-001 처럼 뜻이 담긴 번호를 만들고, 새 번호는 이미 나간 표들을 보고 다음 번호로 뽑아요.
비유: 빵집 대기표 기계 🥐
번호가 그냥 a7f3-9c2e... 같은 암호면 사람이 못 읽어요. 그래서 뜻이 보이는 번호로 만들어요.
계약 - JPU - 2026 - 001
- 계약 = 무슨 종류인지 (계약서? 영수증?)
- JPU = 누구 것인지 (어느 회사·프로젝트)
- 2026 = 몇 년도인지
- 001 = 그 안에서 몇 번째인지 (앞에 0을 채워 자리 맞춤)
이렇게 하면 번호만 봐도 "아, JPU 회사의 2026년 첫 번째 계약서구나" 하고 바로 읽혀요.
다음 번호는 어떻게 정해요? (목록을 보고 +1)
대기표 기계는 마지막 번호를 기억하죠. 여기선 이미 만들어진 파일 목록을 쭉 훑어서
같은 앞부분(계약-JPU-2026-)을 가진 것들 중 가장 큰 번호를 찾고, 거기에 1을 더해요.
앞부분(종류·회사·연도)이 다르면 번호도 따로 세요. 그래서
계약-JPU-2026-003다음에 다른 회사 첫 계약은 다시계약-ABC-2026-001부터 시작해요.
만들 때랑 읽을 때, 같은 자를 써요
번호를 만드는 규칙과, 나중에 번호를 보고 뜻을 풀어내는 규칙이 서로 어긋나면 큰일 나요. 그래서 하나의 똑같은 틀(패턴) 을 양쪽이 같이 써요 — 한쪽은 조립할 때, 한쪽은 풀어낼 때.
조심할 점 하나 (동시에 뽑으면 겹쳐요)
이 방법은 "목록 보고 → +1" 이라, 두 사람이 정확히 같은 순간에 번호를 뽑으면 같은 번호를 받을 수 있어요 (둘 다 "마지막이 2번이네, 그럼 3번!"). 그래서 이 방식은 혼자서, 가끔 번호를 뽑을 때 안전해요. 여럿이 막 동시에 뽑는 곳이라면 다른 안전장치가 필요해요.
또 하나: 007 같은 번호를 컴퓨터가 실수로 이상하게 읽을 때가 있어서, "이건 그냥 십진수 7이야"
하고 못박아 읽어요.
핵심만 다시
- 번호에 뜻을 담아요 — 종류·주인·연도·순번. 사람이 읽고 말할 수 있게.
- 새 번호는 기존 목록을 보고 가장 큰 번호 +1. 앞부분이 다르면 번호도 따로 세요.
- 만들 때와 읽을 때 같은 틀을 써서 규칙이 어긋나지 않게 해요.
- 혼자·가끔 뽑을 때 안전해요. 동시에 우르르 뽑으면 겹칠 수 있어요.
더 자세한 진짜 코드·설계는 옆의 개요 / Variants / Apply Recipe 탭에서 볼 수 있어요.