고객 지원 문의

이메일로 답장드리며, 보통 이틀 안에 회신합니다.

Google reCAPTCHA가 이 제출을 악용 여부에 대해 확인하며, 이 과정에서 데이터가 Google로 전송됩니다. 스크립트는 이 양식을 열 때만 불러옵니다.

← 전체 글

카운터를 지우면 실제로 무엇이 건드려지는가

콘텐츠와 검토에 관하여

이 글의 내용

여기서 카운터를 지우면 표 33개가 비워집니다. 어제는 25개를 비웠습니다.

놓친 여덟 개는 모두 그 전날 오전 11시 10분과 오후 3시 10분 사이에 만들어진 것이었습니다.

표 33개가 카운터에 관한 무언가를 담습니다 그 가운데 8개가 비워지지 않고 있었습니다 — 모두 그 전날 만들어진 것 그 여덟이 합쳐 4,840줄을 담고 있었습니다 오늘 끝에 붙이지 않고 알파벳 자리에 넣었습니다 다른 표에서 고아가 된 줄 25개를 찾아 없앴습니다

삭제는 어떻게 돌아가는가

주인은 자기 카운터를 지울 수 있습니다. POST와 주인의 토큰, 그리고 손으로 친 카운터 번호가 필요합니다. 되돌리기가 없기 때문입니다. 따로 챙겨 두는 것은 없습니다. 그림자 사본은 청한 것의 반대일 테고, 원하는 사람을 위해 내보내기 링크가 단추 위에 있습니다.

그다음 표 목록이 한 트랜잭션에서 비워지고, 본 표가 마지막이며, 번호가 다른 사람에게 결코 갈 수 없도록 묘비가 보관소에 들어갑니다. 어느 부분이든 실패하면 전체가 되돌려집니다. 아무것도 지워지지 않는 편이 반쯤 지워지는 편보다 낫습니다.

파일에서 그 목록 위에는 이런 주석이 있습니다:

"이 카운터에 관해 무언가를 아는 모든 표. 코드 여기저기가 아니라 목록으로 둔다: 여기서 빠진 것은 고아가 된 줄로 남고, 아무도 알아채지 못한다."

주석은 구멍이 열리기 하루 전에 그 구멍을 설명했습니다

어제 새 기능을 위해 표 여섯 개가 나타났습니다 — 페이지 체류 시간, 스크롤 깊이, 이탈 페이지 — 그리고 다른 둘과 함께였습니다. 11시 10분과 15시 10분 사이입니다.

삭제 목록은 그날 다른 새 표 하나를 더하려고 고쳐졌습니다. 여덟 개는 그 뒤에 왔고, 목록은 다시 움직이지 않았습니다. 그래서 한나절 동안 카운터를 지우면 행동 데이터 4,840줄이 표 여덟 개에 흩어진 채 남았습니다. 구멍은 이튿날 찾아 메웠습니다. 그것이 드러낸 것은 목록이 완전한 채로 있으려면 기억 말고 다른 무언가가 필요하다는 사실입니다.

부주의에 관한 이야기가 아닙니다. 누군가 목록을 썼고, 왜 목록인지 정확히 이해했고, 뒤처지면 무슨 일이 일어나는지 적어 두었고, 바로 그날 표 하나에 대해 갱신했습니다. 그런데도 뒤처졌습니다. 두 가지를 기억으로 맞추어 두는 것은, 그러지 못하는 그 오후가 오기 전까지는 사람이 믿음직하게 해내는 일이기 때문입니다.

고친 것, 그리고 다른 고침

여덟 개 이름이 이제 목록에 있습니다. 끝에 붙이지 않고 알파벳 자리에 끼워 넣었습니다. 정렬된 목록은 빈자리를 보이게 하고, 뒤에만 붙이는 목록은 그러지 못하기 때문입니다.

그것이 작은 고침입니다. 중요한 고침은 어느 표가 카운터 번호를 지니는지 데이터베이스에 묻고, 목록을 되풀이하는 대신 소스 파일에서 읽어, 견주는 스크립트입니다. 표를 더하는 사람이 한 번 돌립니다. 목록이 잊히는 방식으로는 잊힐 수 없습니다. 아무것도 저장하지 않고 매번 스키마에서 답을 이끌어 내기 때문입니다.

첫 실행에서 다른 것도 찾았습니다. 카운터 번호가 살아 있는 표에도 보관소에도 없는 줄이 다른 표 여덟 개에 25줄 있었습니다. 지워진 카운터가 아닙니다 — 그것은 묘비를 남깁니다. 아예 아무것에도 속하지 않는 번호이고, 대부분은 보관소 확인이 생기기 전의 뻔한 시험 번호였습니다. 웹 디렉터리 밖의 파일에 적은 뒤 없앴습니다.

무엇으로 일반화되는가

다른 것과 맞추어 두어야 하는 목록은 언젠가 어긋나고, 그 어긋남은 보이지 않습니다. 항목이 빠진 목록은 완전한 목록과 똑같아 보이기 때문입니다.

방어는 규율이 아닙니다. 한쪽을 다른 쪽에서 이끌어 내어 둘이 맞는지 확인하는 것이고 — 누군가 궁금해하는 순간이 아니라 누군가 그것을 더하는 순간에 그 확인을 돌리는 것입니다.

목록 위의 주석은 한 낱말만 빼고 모두 옳았습니다. 아무도 알아채지 못한다고 적혀 있었습니다. 누군가 알아챘습니다. 하루 뒤에, 기억이 아니라 스크립트를 들고 찾으러 갔기 때문입니다.

광고