웹 서버는 무엇을 적어 두는가
인터넷의 모든 웹 서버는 설치된 측정 도구나 눈에 보이는 카운터와 무관하게 자기 활동을 자동으로 기록합니다. 그 기록을 접근 로그라고 합니다. 브라우저가 파일을 청할 때마다, 그 파일이 글 문서 전체이든 스타일시트이든 사진 한 장이든, 서버는 그 거래의 세부를 계속 자라는 글자 파일에 적어 둡니다. 그 기본적인 기록은 기술 진단, 보안…
지우기는 감추기가 아닙니다
디지털 서비스를 끝내는 일은 웹 배치에서 그림 하나를 없애는 것보다 많은 것을 요구합니다. 웹사이트 운영자가 통행량 재기를 그만두기로 하면, 뒤따르는 삭제 절차가 역사적 데이터를 바탕 데이터베이스에서 영구히 없애도록 해야 합니다. 화면을 감추는 것과 저장된 기록을 실제로 없애는 것의 구별은 기술적 데이터 보호의 핵심입니다. 진짜 삭제…
카운터가 애초에 무엇을 저장해야 하는가
방문 셈을 돌리려면 접근할 때마다 특정한 기술 정보를 처리해야 합니다. 꼭 필요한 처리와 선택적인 추적 확장 사이의 정확한 기술적 경계를 이해하면, 기본적인 웹사이트 카운터를 두는 일의 근본적인 개인정보 함의가 분명해집니다. 숫자를 하나 올리는 데에만 필요한 데이터는 받는 서버에게 놀랄 만큼 적습니다. 핵심 장치는 특정하게 식별된 그림…
카운터를 지우면 실제로 무엇이 건드려지는가
여기서 카운터를 지우면 표 33개가 비워집니다. 어제는 25개를 비웠습니다. 놓친 여덟 개는 모두 그 전날 오전 11시 10분과 오후 3시 10분 사이에 만들어진 것이었습니다. 삭제는 어떻게 돌아가는가 주인은 자기 카운터를 지울 수 있습니다. POST와 주인의 토큰, 그리고 손으로 친 카운터 번호가 필요합니다. 되돌리기가 없기…
백업을 처음부터 끝까지 되돌려 보았습니다
이 서버는 8월 11일부터 밤마다 스스로를 백업해 왔습니다. 로그에는 163줄이 있습니다. "되돌리기"라는 낱말은 그 가운데 어디에도 없습니다. 모든 줄이 쓰기에 관한 것이기 때문입니다. 오늘 읽기 쪽 절반도 걸어 보았습니다. 이 백업은 대부분보다 낫습니다 새벽 세 시에 돌고, 모든 데이터베이스를 덤프하고, 웹 디렉터리를 묶고, 저장소…
언제나 참인 확인
이 서비스에는 UPDATE 문이 23개 있습니다. 그 가운데 정확히 하나가 무언가 바뀌었는지 확인합니다. 그 확인은 이렇습니다: 'success' => $n->rowCount() >= 0 rowCount()는 맞는 줄이 없을 때 0을 돌려줍니다. 0은 0보다 크거나 같습니다. 무슨 일이 있어도 그 확인은 통과합니다. 그 문은 무엇을 위한…
인덱스를 더하면 오히려 느려질 때
일별 수치 표에는 열쇠가 하나 있습니다. 카운터와 날짜를 함께 묶은 것입니다. 코드의 다섯 자리가 그 표에 다른 물음을 던집니다 — "이 카운터를 시간에 따라"가 아니라 "이 날짜들의 모든 카운터"입니다. 첫 페이지 갤러리, 톱리스트, 사이트맵, 90일 그래프, 그리고 상태 수치입니다. 날짜 칸에 인덱스가 없으면 그 하나하나가…
데이터베이스 스키마는 실제로 어디에 사는가
이 서비스가 하는 모든 것은 버전 관리 안에 있습니다. 적어도 코드는 그렇습니다. 그것이 도는 데이터베이스는 표 32개이고, 그 가운데 15개는 저장소 어디에도 정의가 없습니다 — CREATE TABLE도, 스키마 파일도, 아무것도 없습니다. 덤프는 32개를 구조까지 온전히 되돌립니다. 저장소가 담고 있지 않은 것은 그 구조의 두 번째…
모든 표가 서른 날을 담고 있지는 않습니다
여기 통계 페이지는 표 하나가 아닙니다. 물음마다 하나씩 열둘입니다 — 나라, 페이지, 브라우저, 시간, 기기, 운영체제, 언어, 지역, 참조, 봇, 화면 해상도, 그리고 일별 합계입니다. 위쪽에서 기간을 고르면 모든 패널이 그 기간에 대해 답합니다. 다만 패널이 모두 같은 기간에 대해 답할 수는 없습니다. 뒤에 있는 표들이 똑같이 멀리…
이미지 전용 집계와 JavaScript가 각각 측정하는 것
Stats4U는 일반 이미지 또는 JavaScript 연동으로 집계할 수 있습니다. 두 방식이 제공하는 정보는 같지 않습니다. 카운터는 증가하지만 페이지 보고서에는 도메인만 있거나 사용할 수 있는 주소가 없을 수 있습니다. 이미지 요청은 페이지 정보를 담을 수 있지만, 이미지가 있는 페이지 전체를 자동으로 설명하지는 않습니다. 이미지…
카운터 번호를 이제 두 표에 맞대어 확인합니다
여기 카운터에는 저마다 번호가 있습니다. 삽입 코드에도, 통계 주소에도, 주인이 넣어 둔 모든 페이지에도 나옵니다. 번호는 100과 9,999,999,999 사이에서 무작위로 하나를 골라 이미 쓰이는지 확인해 내줍니다. 표 하나를 확인합니다. 다른 표 오랫동안 조회를 기록하지 않은 카운터는 보관 표로 옮겨집니다. 평범한 살림입니다 —…
Stats4U 2에서 남은 칸 셋
여기 카운터 본 표에는 166,436줄이 있고, 중요해 보이는 칸이 여럿 있습니다. 그 가운데 셋이 lastdomain, firstdomain, userdomain입니다. 데이터가 들어 있습니다: lastdomain 15,525줄에서 비어 있지 않음 firstdomain 15,457줄에서 비어 있지 않음 userdomain…