"네 번째 줄은 파일이 아냐. 지난번에 파일이 그려졌던 자리일 뿐이지."
탭이 진짜로 들고 있는 것
탭을 보면 폴더를 '열어놓은' 것 같지만, 실제로 저장하는 걸 뜯어보면 이래. 폴더 위치, 보기 방식과 정렬과 필터, 앞뒤 이동 기록, 그리고 선택을 되살릴 힌트. 빠진 게 보여? 파일 목록이 없어. 탭은 폴더 내용을 안 갖고 있어. 어느 자리인지, 거기 지금 뭐가 있든 어떻게 그릴지만 갖고 있지.
새로고침은 그냥 다시 읽는 거야
그러니 새로고침할 때 메모리에서 '다시 불러올' 게 없어. Waygate 는 메인 스레드 밖에서 폴더를 다시 읽고, 지금 디스크에 있는 걸로 줄을 새로 그려. 네가 보는 동안 다른 앱이 파일 셋을 만들고 하나를 지웠으면 새로고침이 정확히 그걸 보여줘. 화면은 진짜에서 폴더 읽기 한 번 이상 멀어진 적이 없어. 애초에 진짜를 들고 있는 척을 안 했으니까.
거짓말 없이 선택 되살리기
미묘한 건 여기야. 새로고침 뒤에 Waygate 는 선택을 되살리려 하는데, 신분증이 맞을 때만 그래. 골라뒀던 파일이 그대로 있으면 계속 선택돼 있어. 사라졌으면 그 자리에 밀려 올라온 파일을 고르는 대신 선택을 조용히 놔줘. 몇 번째 줄인지도, 화면에 뜬 이름도 신분증이 아니니까. 새로고침 뒤에 '네 번째 줄' 을 고른다는 건 생판 남을 고르는 거야.
새로고침은 폴더를 다시 읽고, 선택은 신분이 맞을 때만 되살아나. 탭은 위치와 힌트를 들고 있지 폴더 내용을 안 들고 있어. 줄 번호와 이름은 보여주기용이지 신분이 아니야. 그래서 새로고침 뒤에 자리만 물려받은 파일한테 작업이 떨어지는 일이 없어.
실시간 갱신도 결국 싼 새로고침이야. Waygate 가 폴더 변화를 감시해서 자동으로 다시 읽을 수는 있는데, 방식은 똑같이 정직한 다시 읽기야. 캐시된 줄을 그 자리에서 손보는 게 아니고. 유령 줄은 늘 '캐시를 손보다가' 생기지, '폴더를 다시 읽다가' 는 안 생겨.