실수 연발

2023년 8월 24일 목요일

Search Console에서 사이트에 표시된 오류에 관한 질문은 끊임없이 올라옵니다. 그리고 이 오류가 대체 왜 발생하는지 혼란스러워하는 사람들도 끊임없이 나옵니다. 그럴 수 있습니다. 웹사이트에 액세스할 때 여러 가지 문제가 발생할 수 있으니까요. 하지만 모든 문제는, 단 하나의 예외 없이, 액세스를 가능케 하는 특정 시스템의 어떤 부분에 대응합니다. 그림이 포함된 이 짧은 글에서는 이러한 오류들에 관해 알아보면서 오류에 관해 조금 덜 겁먹을 수 있도록 도와드리고자 합니다. 그럼, 시작합니다.

프롤로그

저는 책을 좋아합니다. 그래서 어릴 때 다른 애들은 커서 우주비행사나 소방관이 되겠다고 했지만 저는 도서관을 여는 게 소원이었습니다. 성 안에 있는 도서관을요. 하지만 사람들이 내가 열 새로운 도서관에 와서 선반에 꽂힌 책을 살펴볼 때 발생할 수도 있는 여러 가지 문제를 생각해 보기 시작했습니다. 제 성은 사람들이 사는 곳에서 상당히 떨어져 있는 데다가 매년 성에다가 이것저것 추가했기 때문에(해자도 파고요) 그 동네 지도 제작자에게는 꽤 골칫거리일 겁니다.

1장: DNS 오류

자, 이 성에 관해 좀 더 이야기해 보자면 살짝 구석진 데 있고 찾기도 힘듭니다. 하지만 걱정 마세요. 사람들은 지도를 볼 수 있으니까요. 그런데 최신 상태가 반영되지 않아서 해자가 표시되어 있지 않거나, 지도가 오래된 탓에 대부분의 글자가 닳아 없어졌다면 어떻게 해야 할까요?

막대기 사람이 지도를 살펴보지만 도서관으로 가는 길을 찾지 못합니다.

이것이 바로 DNS 오류입니다. 많은 사람들의 생각과는 달리 Dungeons N Snakes 또는 Dangerous Navigation System과는 관련이 없죠. 클라이언트가 지도(DNS 서버)를 살펴보아도 여러 가지 이유로 인해 장소를 찾을 수가 없는 것입니다. 지도에 도서관의 위치가 아예 표시되어 있지 않을 수도 있고(DNS 용어로 NXDOMAIN 오류라고 함) 사용자가 지도에서 사용되는 언어를 읽지 못할 수도 있습니다(DNS 용어로 느슨하게 표현하면 FormErr이라고 함).

DNS 오류는 대부분 DNS 서버의 몇 가지 설정이나 설정의 부재로 인해 발생합니다. 즉, DNS 서버를 직접 관리하지 않는 경우(후원자를 위해 지도를 제작함) DNS 제공업체(또는 현지 지도 제작자)에 문의하여 오류를 수정해야 합니다. DNS 제공업체가 어디인지 모른다면 호스팅 업체나 도메인 이름을 등록한 업체에 문의해 보세요.

클라이언트의 문제가 있을 수도 있습니다. 예를 들어 안경을 깜박한 탓에 지도의 글자를 읽지 못할 수도 있지요. 하지만 지도 자체의 문제일 가능성이 더 큽니다.

2장: 네트워크 오류

우리의 용감한 수호자가 성에 있는 도서관으로 가는 길을 알게 되었다고 합시다. 그렇다고 해도 실제로 거기까지 가는 일은 상당한 모험일 수 있습니다. 던전을 누비고, 피라냐로 가득한 해자를 건너야죠. 그리고 물론 드래곤과 싸워야 할 때도 있을지도 모릅니다.

다리가 부서져서 막대기 사람이 도서관에 갈 수 없습니다.

네트워크 오류는 우리의 수호자를 가로막는 장애물과도 같습니다. 클라이언트(브라우저, 크롤러 등)와 서버 사이에 있는 네트워크 구성요소가 트래픽을 차단하는 것이죠. 주요 라우터가 고장날 때와 같이 우연히 차단이 발생할 수도 있습니다. 그러나 트래픽을 차단하는 방어벽과 같이 의도적인 차단도 있고요.

하지만 안타깝게도, 이러한 상황을 해결하는 일은 엄지발가락을 어딘가에 세게 찧었을 때처럼 불쾌합니다. 클라이언트에서 서버로 가는 경로에서 어떤 구성요소가 차단을 발생시키는지 알아내야 하죠. 이 경로에는 수십 개의 독립적인 구성요소들이 버티고 있습니다. 게다가 이 중 대부분은 클라이언트나 서버에 의해 관리되는 것도 아닙니다. 어떤 구성요소가 경로를 가로막고 있는지 빠르게 알아낼 길도 없고요. 그러나 다행히도 이러한 차단은 보통 서버 직전에서 또는 CDN 측에서 방화벽에 의해 발생합니다. 방화벽을 다루는 데 익숙하지 않다면 호스팅 업체나 CDN에 문의하는 것이 좋습니다.

3장: 서버 오류

하지만 우리의 수호자가 도서관에 도착하더라도 도서관에 자체적인 문제가 있을 수 있습니다. 예를 들어 도서관 카드가 물에 빠지는 바람에 더 이상 책을 찾지 못할 수도 있지요. 더 심각한 상황에서는 수호자가 도서관으로 오던 길에 맞서 싸운 드래곤 때문에 건물이 전부 불길에 휩싸이게 되어 버릴 수도 있고요.

도서관이 불길에 휩싸이는 바람에 막대기 사람이 도서관을 이용할 수 없게 되었습니다.

이러한 문제는 기본적으로 서버 오류입니다. 서비스에 문제가 생겨 방문자가 자신이 원하는 콘텐츠(책)을 볼 수 없는 것입니다. 문제의 원인을 알 수 없다면 서버 관리자나 호스팅 업체에 문의하세요. 하지만 클라이언트는 서버 문제에 관해 전혀 손을 쓸 수 없습니다. 어떤 책이 있는지도 살펴보지 못한 채 도서관을 떠나야 합니다.

4장: 클라이언트 오류

도서관에 들어가는 데 성공한 책벌레 수호자가 이용이 불가능하거나(다른 독자가 이미 대출함), 액세스할 수 없는(금서 섹션에 보관되어 있음) 소설책을 요청할 수도 있습니다. 이러한 문제는 클라이언트 오류입니다. 클라이언트가 어떤 의미에서 잘못된 항목을 요청한 것이죠. 다만 이 잘못된 항목은 그저 지금 선반에 그 항목이 없을 뿐이긴 합니다.

막대기 사람이 도서관에서 7권을 찾고 있는데 찾지 못합니다. 7권이 선반에 꽂혀 있지 않거나, 읽을 수 없는 글씨로 적혀 있는 것 같습니다.

또는 우리의 수호자가 찾고 있는 두꺼운 책이 도서관의 금서 섹션에 보관되어 있어서 어떤 기준을 충족해야 할 수도 있습니다. 예를 들어 이 섹션에 들어가려면 암호를 암송해야 하는 것이죠.

막대기 사람이 도서관에 있지만, 책이 금서 섹션에 있어서 대출할 수 없습니다.

간단히 말하면 모든 클라이언트 오류는 기본적으로 클라이언트가 해결해야 합니다. URL을 리디렉션하여 클라이언트를 도울 수는 있지만(다른 책 추천) 클라이언트가 불가능한 요구를 하는 경우가 대부분입니다.

에필로그

끝이 좋으면 다 좋은 겁니다. 클라이언트가 온갖 고난을 이겨내고 도서관에 들어와서 찾고 있던 책을 찾아 대출하는 데 성공하면, 마침내 제일 좋아하는 반짝 뱀파이어에 관한 책을 즐겁게 읽을 수 있는 것입니다. 글을 읽는 독자 여러분이 사이트 소유자라면 이 책은 콘텐츠가 되겠지요.

오류, 그리고 이러한 오류와 Google 검색 사이의 관계를 더욱 깊숙이 들여다보고 싶다면 문서를 확인하세요. 제가 그린 막대기 사람이 마음에 드시나요? 아니면 다음으로 어떤 모험을 떠났으면 하는지에 관해 아이디어가 있으신가요? @googlesearchc 또는 커뮤니티 포럼에서 채팅을 통해 알려 주시기 바랍니다.