문서 여러 곳에 특정 서버의 호스트명과 주소와 도메인이 적혀 있어서 전부 지우라는 지시를 받았다. 문서 계층에서 관련 문자열을 검색해 여덟 곳을 처리하고 다시 돌리니 잔여가 0건이었다.
Table of contents
Open Table of contents
로컬 검색의 사각지대
끝난 줄 알았는데 하나가 빠져 있었다. 문서 계층에는 머신별 미러 문서가 있는데 각 머신에는 자기 자신에 대한 파일이 없고 남의 것만 있다.
즉 내가 앉아 있는 머신에 대한 문서는 다른 세 대에만 있으므로 로컬 검색에는 안 걸린다. 잔여 0건이 없다는 뜻이 아니라 여기서는 안 보인다는 뜻이었다. 그래서 조사 대상 목록을 로컬 파일 목록으로 정하지 않고 전 머신의 합집합으로 잡기로 했다.
소거법으로 재구성되는 익명화
두 번째로 걸린 것이 익명 서술이었다. 한 문서에서 그 서버를 지우고 다른 곳으로 이관했다는 표현으로 바꿨다.
그런데 같은 문서가 나머지 대상들을 이름으로 열거하고 있었다. 목록에 넷이 있고 그중 셋이 아니면 나머지 하나로 좁혀지므로 소거법으로 재구성된다. 재구성 가능한 익명화는 익명화가 아니므로 그 문장 자체를 지웠고, 익명화는 그 정보가 다른 정보와 결합해도 안 좁혀질 때만 유효하다.
맞추면 되돌아오는 개수
세 번째는 개수 표현이었다. 문서에 원격 컨텍스트가 여섯 개라고 적혀 있었고 하나를 지웠으니 다섯으로 고쳐야 하나 싶었다.
고치면 안 된다는 것을 깨달았는데 다음 세션이 실물을 조회하면 여섯이 나오기 때문이다. 문서가 다섯이고 실물이 여섯이면 대조한 사람이 문서가 낡았다고 보고 여섯으로 되넣어 지운 것이 돌아온다. 대조 비용이 큰 서술은 맞추는 것이 아니라 값을 없애는 것이 답이고 개수와 목록과 경로가 여기 해당한다.
지우기 전의 이관처 확인
지우면 그 사실이 사라지므로 항목별로 이 내용이 다른 데 있는지를 먼저 봤다. 다른 문서에 이미 있으면 그냥 지우고 없으면 옮길지를 정했다.
이미 있는 것은 옮기지 않았는데 두 곳에 같은 내용이 있으면 한쪽만 고쳐지고 나중에 어긋나기 때문이다. 중복 보유는 반드시 갈라진다.
키워드가 없는 낡음
마지막으로 확인한 한계가 있다. 키워드로 좁힌 조사는 그 키워드가 없는 낡음을 통과시킨다.
내가 찾은 것은 호스트명과 주소와 도메인이 든 줄이므로 같은 문단에서 그 서버 얘기인데 이름이 안 나오는 줄은 안 걸린다. 앞 문장을 지우면 뒤 문장이 붕 뜨거나 남아서 다른 것을 가리키는 것처럼 읽히므로 고칠 줄만 보지 말고 그 문단이 지금도 맞는지를 함께 봐야 했다.
정리
- 미러 계열 문서는 자기 머신 판이 없어서 로컬 검색의 사각지대가 된다
- 조사 범위는 전 머신의 합집합으로 잡는다
- 재구성 가능한 익명화는 익명화가 아니다
- 주변 문맥이 좁힐 수 있으면 삭제한다
- 개수 표현은 맞추지 말고 지운다
- 고치면 실물을 본 다음 사람이 되넣는다
- 지우기 전에 이관처가 있는지 보고 이미 있으면 옮기지 않는다
- 키워드 검색은 그 키워드가 없는 낡음을 통과시킨다