"project를 지우면 그 project 것만 없어져. history나 다른 project가 아직 붙잡고 있는 오디오는 절대 건드리면 안 돼."
project가 걸치고 있는 두 종류
Studio project를 지우면 성격이 아주 다른 데이터 두 무리를 건드리게 돼. 하나는 그 project가 혼자 쥔 것들이야. utterance, take 기록, 자기 export 폴더. 다른 하나는 그냥 가리키고 있는 것들이고. 대화 history나 전혀 다른 project도 같이 쓸 수 있는 content-addressed synthesis job이랑 캐시 항목 말이야. 삭제는 이 둘을 갈라볼 줄 알아야 해. Bellows는 혼자 쥔 것만 없애고 같이 쓰는 건 그대로 둬.
공유 오디오는 그걸 쓰던 project보다 오래 살아
캐시 항목은 project가 아니라 synthesis identity로 키가 붙어. project 둘이 다 "Welcome back"이라는 줄을 썼으면 캐시 항목 하나를 같이 쓰는 거지. 한쪽을 지운다고 다른 쪽 발밑에서 그 오디오를 빼가면 안 돼. 그걸 참조하는 대화 history 밑에서도 마찬가지고. 그래서 공유 synthesis job이랑 content-addressed 캐시는 project가 사라진 뒤에도 계속 쓸 수 있게 남아. 그 project가 혼자 쥔 건 지워지고, 다 같이 쓰던 건 그대로야.
자동 청소도 take를 존중해
일상적인 캐시 정리도 같은 눈으로 봐. 자동 캐시 청소는 Studio take가 붙잡고 있는 오디오를 절대 안 지워. 손으로 만든 제작물이 백그라운드 청소기에 쓸려나가지 않게 지켜주는 거야. 참조된 오디오를 없앨 수 있는 건 명시적이고 의도적인 행동뿐이지. 키 하나를 콕 집어 지우거나, 확인을 거친 전체 비우기거나. 결국 reference counting이랑 같은 얘기야. 같이 쓰는 건 아무도 안 가리킬 때에야 지울 수 있고, 그때도 일부러 해야만 지워져.