Lifecycle Status Sidecar — 불변 원본 옆 append-only 상태·서명 이력
"도서관 책에는 절대 낙서 안 하고, 뒤에 꽂힌 대출 카드에만 적는다" 는 방법이에요. 계약서 원본은 손도 안 대고, 진행 상태(작성중→발송→서명완료)와 서명 정보는 옆에 붙인 쪽지 파일에 따로 적어요.
비유: 도서관 책 + 대출 카드 📚
- 책(원본) = 계약서·영수증 원본. 법적으로 중요해서 한 글자도 바꾸면 안 돼요.
- 대출 카드(사이드카 쪽지) = 책 뒤에 꽂아둔 카드. 여기에 "누가 언제 빌려갔다" 를 적어요. 책 자체엔 안 적어요.
계약서에 "지금 상태: 서명완료" 라고 직접 써넣으면 원본이 바뀌어 버려요. 그래서
상태는 항상 옆 쪽지 파일(계약서.status.json)에만 적어요. 원본은 처음 모습 그대로.
상태는 정해진 순서로만 넘어가요
상태는 아무렇게나 못 바꿔요. "작성중 → 발송 → 서명완료" 처럼 정해진 길로만 넘어가요. 길이 아닌 곳으로 건너뛰려 하면 "거기로는 못 가요!" 하고 막아줘요. (꼭 필요할 때만 특별히 우회.)
종류마다 길이 달라요. 계약서의 길과 영수증의 길은 서로 다른 순서를 가져요. 쪽지 파일 이름 앞부분(
계약-,영수-)을 보고 어느 길을 쓸지 골라요.
지난 일은 지우지 않고 계속 쌓아요
쪽지에는 지금 상태만 있는 게 아니라, 거쳐온 모든 발자국이 쌓여 있어요. 새 일이 생기면 지우지 않고 아래에 한 줄 더 붙여요. 그래서 나중에 "언제 누가 뭘 했지?" 를 다 돌아볼 수 있어요 (감사 기록처럼).
특정 단계(예: 발송)에는 전자서명 정보(어느 서비스로, 어떤 링크로 보냈는지)도 쪽지에 같이 붙여요.
쪽지가 아예 없으면?
어떤 문서에 옆 쪽지가 아직 없으면, "아, 아직 시작 안 했구나 (작성중)" 하고 안전하게 여겨요. 그래서 쪽지가 없다고 화면이 깨지지 않아요.
핵심만 다시
- 원본은 절대 안 건드려요. 상태·이력·서명은 전부 옆 쪽지 파일에.
- 상태는 정해진 순서로만 넘어가요. 종류마다 순서(길)가 달라요.
- 지난 발자국은 지우지 않고 계속 쌓아요 — 나중에 다 돌아볼 수 있게.
- 쪽지가 없으면 "아직 시작 전" 으로 안전하게 봐줘요.
더 자세한 진짜 코드·설계는 옆의 개요 / Variants / Apply Recipe 탭에서 볼 수 있어요.