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

컬렉션, 진실 말고 보기만 정리한다

~12 min · collections, meta-overlay, non-destructive, separation

Level 0빈 종이
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"파일 정리하다가 파일을 잃는 일은 없어야지. Loomis 는 아예 안 옮기는 걸로 그걸 불가능하게 만들었어."

세션은 가만히 있고 덧층이 움직인다

분석 세션의 파일은 디스크 한자리에 있고 절대 안 움직여. 정리는 완전히 다른 층에 살아. collections.json 이라는 덧층이 세션들이 어떻게 놓여 있는지를 적어둬. 어느 폴더에 있고 어떻게 겹쳐 있고 순서가 어떤지. 세션을 폴더로 끌어다 놓으면 그 덧층이 바뀔 뿐 실제 파일은 꿈쩍도 안 해. 네가 재배치하는 물건과 네 작업이 담긴 물건이 일부러 서로 다른 거야. 그래서 아무리 정리해도 1바이트도 잃을 수가 없어.

기본 폴더와 안 바뀌는 번호

덧층은 못 지우는 기본 폴더 몇 개와 휴지통으로 뼈대를 잡아. 그리고 폴더마다 저장할 때마다 그대로 유지되는 번호를 달고 있어. 이게 생각보다 중요해. 정리를 아무리 해도 번호가 안 바뀌니까 그 폴더를 가리키던 것들이 계속 작동하거든. 개수 집계도, 스마트 앨범 조건도, 저장해둔 화면도. 번호가 흔들리는 정리 층은 자기를 가리키던 걸 전부 소리 없이 끊어버려. 번호를 붙박이로 두는 덕에 덧층을 마음껏 뒤집어도 아무 피해가 없는 거야.

정리는 삭제가 아니다

제일 중요한 안전장치가 여기 있어. 세션을 휴지통에 넣어도 아무것도 안 지워져. 휴지통도 그냥 덧층 안의 폴더 하나거든. 거기 들어가는 게 다른 폴더에 들어가는 것과 똑같이 무해해. 파일이 디스크를 떠나는 길은 딱 하나야. 휴지통에서 안전장치를 일부러 풀고 비우는 두 단계 동작. 정리와 삭제를 이렇게 갈라놨으니까, 매일 하는 정돈이 작업을 날리는 동작이 될 수가 없어. 뭘 없애려면 진짜로 작정해야 해.

같은 모양이 한 층 위에서 또

이 모양 이미 봤지. fitting 단계에서는 검출 결과를 고정하고 교정을 위에 얹었잖아. 여기서는 세션을 고정하고 컬렉션을 위에 얹은 거야. 이 가족의 제일 오래된 수를 정리에 적용한 거지. 파일이 진실이고 덧층은 거기서 뽑아낸 화면이다. collections.json 을 통째로 지워도 폴더 배치만 날아가지 세션은 하나도 안 없어져. 진실은 그대로고 화면은 다시 만들면 되니까. 맞추기 층에서도, 컬렉션 층에서도, cwkPippa 의 로그에서도 '원본은 고정, 화면은 파생' 을 알아보게 되면, 옷을 세 벌 갈아입은 하나의 생각을 보고 있는 거야.

Code

세션이 진실, 컬렉션은 그 위의 덧층·python
# Session files are the TRUTH on disk -- never moved by organizing.
#   sessions/<sid>/...          <- the work itself, immutable to organization
#   collections.json            <- the OVERLAY: folders, nesting, order, ids

collections = load("collections.json")
collections.move(session_id, to_folder="portraits/2026")  # edits the OVERLAY only
# The session's files on disk did NOT move. Only the view changed.

# Trash is just another folder -- moving there is still non-destructive:
collections.move(session_id, to_folder="TRASH")           # still only the overlay

# Files leave disk ONLY through one deliberately armed path:
if trash.empty_is_armed:                                  # a two-step, guarded act
    delete_session_files(trash.contents)                  # the sole byte-removing path

External links

Exercise

네가 기대고 있는 정리 시스템을 하나 점검해봐. 프로젝트 파일이든 노트 앱이든 사진 보관함이든. 두 가지만 물어봐. 옮기거나 이름 바꾸거나 폴더를 갈아엎다가 원본을 잃을 위험이 있나? 그리고 삭제가 정리와 확실히 갈라져서 일부러 한 단계를 더 밟아야 하나? 위험하다는 답이 나온 자리마다, 원본은 안 건드리는 덧층 구조로 어떻게 바꿀지 그려봐.
Hint
위험 신호는 폴더 구조 자체가 저장인 시스템이야. 파일을 옮기다 잃을 수 있거나, 정리와 삭제가 부주의한 클릭 하나 차이인 곳. 고치는 방법은 Loomis 랑 같아. 원본은 안정된 자리에 두고, 배치는 별도 층에 적고, 삭제는 따로 안전장치를 건 동작으로 만들어. 그럼 정돈이 파괴가 될 일이 없어.

Progress

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

댓글 0

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

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