본문 바로가기
C.W.K.
Stream
Lesson 04 of 05 · published

Archive 하고 지우지 마

~12 min · 보관, 이력, 참조-무결성, 생애주기

Level 0차가운 용기
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

은퇴와 삭제는 다른 말이야

pipeline 은 new work 를 그만 받으면서도 history 에 계속 존재할 수 있어. archive 가 그 상태야. compose picker 에서는 빠지고, old delegation 은 name, version, description 을 계속 resolve 할 수 있어야 해.

delete 는 identity 를 다시 해석할 일이 없다고 말해. brief, stage, review, landing record 중 하나라도 row 를 참조하면 거짓말이야. cascade 로 깨끗하게 만들면 workshop 이 지키려던 proof 를 지워서 데이터 정돈을 사는 셈이고.

archive 는 timestamp 달린 transition 으로 남겨. 누가, 언제, 어느 version 을 retire 했는지 기록하면 new intake 중단 시점을 설명할 수 있어. restore 를 허용한다면 오래된 name 과 evolved template 를 다시 쓰는 위험까지 review 해야 해.

view 마다 projection 이 달라. compose 는 숨기고 admin/history/show 는 state marker 와 함께 보여. 모든 곳에서 숨기면 old record 가 broken 처럼 보이고, active 옆에 표시 없이 두면 accidental reuse 를 부르지.

가시성 양쪽을 시험해

archive 뒤 compose 에서 빠지는 assertion 과 historical delegation 에서 계속 resolve 되는 assertion 을 따로 써. list test 하나로는 반대 방향 약속 둘을 증명할 수 없어.

archive 는 선택을 은퇴시키되 과거를 거짓말로 만들지 않아. 새 intake 에서는 row 를 숨기고, 예전 version, delegation, landing receipt 는 계속 조회할 수 있게 둬. 그래야 old task 가 왜 retired craft 를 썼는지 설명할 수 있어. policy 가 있던 자리에 구멍만 남기면 audit trail 도 같이 무너져.

과거 착지 기록에서 archived pipeline 이름을 눌렀다고 해보자. “없는 항목”이 아니라 당시 title, version, archive 시각을 읽을 수 있어야 해. 반면 새 compose picker 에서는 선택 자체가 안 보여야 하고. 같은 행을 화면마다 다르게 투영하는 게 데이터 불일치가 아니라 생애주기 의미야. view 별 약속을 테스트 이름에도 그대로 박아두면 나중 정리 작업이 archive 를 delete 로 바꾸기 어려워져.

Code

Archive while preserving historical identity·sql
UPDATE pipelines
SET archived_at = CURRENT_TIMESTAMP,
    updated_at = CURRENT_TIMESTAMP
WHERE name = 'weekly-audit'
  AND archived_at IS NULL;

SELECT name, version, archived_at
FROM pipelines
WHERE name = 'weekly-audit';

External links

Exercise

compose, list, show, 과거 delegation 화면에서 archive 가 어떻게 보일지 정해. 표면마다 assertion 하나씩 써.
Hint
최소 한 표면은 행을 빼고, 최소 한 표면은 계속 해석해야 해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.