고객 지원 문의

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

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

← 전체 글

왜 저장된 그림은 세어지지 않는가

콘텐츠와 검토에 관하여

이 글의 내용

웹사이트 통계에 관한 흔한 혼란의 원인 하나는 흔히 브라우저 캐시라고 부르는 로컬 파일 저장입니다. 브라우저는 최대한의 효율과 속도를 위해 만들어져 있습니다.

페이지를 처음 방문하면 브라우저는 필요한 글, 배치, 그림을 모두 내려받습니다. 다음 방문에서 시간과 네트워크 자원을 낭비하지 않으려고, 그 고정된 파일의 사본을 로컬 디스크에 저장합니다.

정확히 같은 페이지를 얼마 뒤 다시 열면, 브라우저는 멀리 있는 서버에 새 사본을 청하는 대신 그 로컬 저장소에서 곧바로 그림을 꺼냅니다. 그 과정이 불러오기 시간을 크게 줄이지만, 외부 측정 도구가 도는 방식에 곧바로 영향을 줍니다.

첫 방문서버에 닿음세어짐두 번째 방문로컬 저장소에서 나옴서버는 아무것도 보지 못함그러니 페이지를 다섯 번 새로 고치는 것은 카운터에 대한 시험이 아닙니다

서버가 결코 보지 못하는 방문

그림에 기반한 셈의 장치는 서버가 요청을 받는 데 전적으로 기댑니다. 로컬에 저장된 그림 사본이 아직 완전히 유효하다고 브라우저가 판단하면, 인터넷 너머로 아무 메시지도 보내지 않습니다.

서버의 관점에서 두 번째 방문은 그냥 일어나지 않은 것입니다. 그러니 데이터베이스 안의 숫자는 갱신되지 않고, 화면의 그림은 이전 값을 계속 보여 줍니다.

이 거동은 흔히 도구가 망가졌다는 오해로 이어지고, 특히 페이지를 빠르게 잇달아 여러 번 새로 고치는 시험 단계에서 그렇습니다. 숫자가 갱신되지 않는 것은 체계의 실패가 아니라, 브라우저가 데이터를 아끼려고 뜻한 대로 정확히 굴러가고 있다는 신호입니다.

파일과 함께 오는 지시

이 거동을 다스리려고 서버는 내보내는 파일에 특정한 지시를 붙일 수 있습니다. 캐시 헤더라고 하는 그 지시는 받는 브라우저에게 파일을 얼마나 오래 지녀야 하는지, 언제 새 사본을 청해야 하는지 정확히 알려 줍니다. 사진첩의 사진에는 한 해 내내 저장해도 된다는 지시가 붙을 수 있습니다.

그러나 끊임없이 바뀌는 숫자를 보여 주는 그림에는 전혀 다른 규칙이 필요합니다. 그 그림을 만드는 서버는 브라우저에게 그림을 결코 저장하지 말거나, 적어도 페이지를 볼 때마다 서버에 신선한지 확인하라고 명시적으로 지시해야 합니다.

정확함과 부담

그 엄격한 규칙을 두면 정확도가 훨씬 높아집니다. 페이지가 열릴 때마다 브라우저가 자기 존재를 알리도록 강제하기 때문입니다. 다만 측정 그림의 캐시를 완전히 끄면 서버가 훨씬 많은 요청을 처리해야 한다는 뜻이기도 합니다.

숫자가 하나밖에 바뀌지 않았더라도 새로 고칠 때마다 그림을 다시 그리는 데 처리 능력을 써야 합니다.

정확한 기록과 분별 있는 자원 관리 사이에서 알맞은 균형을 잡는 일이 그런 서비스를 돌리는 핵심 과제입니다. 때로는 보이는 숫자가 조금 늦게 갱신되는 것이, 기반 시설을 빠르고 반응 좋게 유지해 주된 페이지 내용이 결코 늦지 않게 하는 값어치 있는 맞바꿈입니다.

왜 새로 고침이 아무것도 증명하지 않는가

로컬 저장소의 몫을 이해하면, 손으로 거듭 새로 고치는 것이 측정 도구의 정확도를 확인하는 나쁜 방법인 까닭이 분명해집니다.

새로 고침 단추를 다섯 번 눌러도 숫자가 오르기를 거부한다면, 가장 그럴듯한 설명은 브라우저가 처음에 내려받은 그림을 그저 다시 쓰고 있다는 것입니다. 전혀 다른 브라우저를 열거나, 다른 네트워크 회선의 별개 기기를 쓰면 로컬 저장소를 완전히 비켜 가 새 요청을 강제합니다.

그렇게 하면 서버가 새 방문을 제대로 기록하고 갱신된 그림을 만들고 있는지 훨씬 분명하게 볼 수 있습니다.

광고