서치엔진은 어떻게 작동할까?

HeeJin.log·2021년 9월 16일
7

 🗃지식 상자

목록 보기
12/13
post-thumbnail

🧐 서치엔진은 어떻게 작동할까?

서치엔진이 하는 일

서치엔진은 디지털 버전의 사서 입니다. 서치엔진은 질문에 대한 옳은 정보를 찾게 도와주는 인덱스를 사용 합니다. 우리가 기초적인 서치 지식을 이해하는것이 향후의 여러분이 개발할 서비스에 유저들이 서치가 가능하게 만드는데 큰 도움이 될 것이니 이 아티클이 도움이 되었으면 좋겠습니다 :)

크롤러가 어떻게 웹을 둘러 볼까?

크롤링은 도서관의 책들을 모두 읽는것과 같습니다. 서치엔진이 결과를 내기 전, 그들은 웹에대해서 최대한 많은 정보를 알고 있어야 하겠죠? 이렇게 하기 위해서, 서치엔진은 크롤러를 사용합니다.
[크롤러 - 사이트에서 사이트를 방문하고 브라우저와 같이 행동하는 프로그램]

만약에 책이나 문서가 없거나 훼손 되었다면, 클롤러는 해당 문서를 읽을 수가 없습니다. 크롤러는 문서상태를 확인하려고 각 URL을 가져오려고 하는데, 만약에 문서가 에러코드를 출력한다면, 크롤러는 이 문서의 어느 한 부분도 사용할 수 없습니다. 그러면 시간이 지난후에 다시 URL을 가져오려고 시도해 봅니다.이러한 시도들도 접근가능한 공개된 문서에 한해서 작동 합니다.

만약에 크롤러가 301이나 302처럼 redirection status code를 찾았 다면, 크롤러는 새롭게 제시된 방향으로 따라가게 됩니다. 응답에 성공한다면, 다른 말로 사용자가 접근이 가능한 문서를 찾는다면, 크롤러는 크롤이 가능한지 가능하지 않는지 확인부터 한다. 그리고 가능 하다면 컨텐츠를 다운로드 합니다.

이런 체크과정은 HTML을 포함해서 HTML에 언급된 모든 컨텐츠를 확인 합니다. 가령, 이미지, 비디오 혹은 JS까지도. 또한 크롤러는 크롤러가 HTML 문서 안에있는 링크도 탐색할 수 있게 링크들도 모두 추출합니다. 이렇게 링크를 찾는것이 크롤러가 새로운 페이지를 찾는 방식 입니다.

크롤러는 즉각적으로 링크나 버튼을 클릭하는것이 아니라, 나중에 방문하기 위해 URL을 queue로 쌓아 둡니다. 참고로, 새로운 URL을 방문 할 때, 쿠키, 로컬스토리지 또는 서비스 작업자의 사용은 불가합니다.

인덱스 만들기

문서를 검색한 후, 크롤러는 컨텐츠를 인덱스를 추가하기 위해 컨텐츠를 검색엔진에게 줍니다. 이제 서치 엔진은 문서를 이해하기 위해 렌더하고 분석합니다. 렌더링은 브라우저가 페이지를 표시하는 것처럼 페이지를 표시하는것을 의미 합니다.
제외 되는 사항들

서치엔진은 키워드, 제목, 링크, heading,텍스트등을 봅니다. 이런 행동들을 페이지의 내용과 문맥을 설명하는 시그널 입니다. 시그널은 서치엔진이 주어진 질문에 최고의 페이지를 답변하도록 도와주는 역할을 합니다.

서치엔진은 다른 URL에서 같은 컨텐츠를 찾을 수도 있습니다 .
예를들어, 애플 파이의 레시피를

recipes/apple-pie

recipes/1234

둘에서 찾을 수 있는데,

같은 레시피를 두번보여주고, 두번 인덱싱 하는 것을 막기위해 서치엔진은 main URL이 무엇이 되어야할지 판단 합니다. 그리고 동일한 컨텐츠를 보여주는 대체 URL을 삭제 합니다.

가장 유용한 결과를 제공 하기

서치엔진은 질문의 키워드를 인덱스에 매칭하는 일만 하는 것이 아니다. 유용한 정보를 주기 위해, 서치엔진은 문맥과 대체 단어, 그리고 사용자의 위치등도 고려 합니다. 예를들어 'Sillicon Valley'는 지명과 TV쇼 두개가 있습니다. 그러나, 'Sillicon Valley cast'를 검색했는데 지명이 나오면 그다지 도움이 되는 검색 엔진은 아니겠죠?

몇몇 질문들은 '슬기로운 의사생활의 노래'처럼 검색엔진의 해석이 필요하고 간접적일 수도 있습니다. 사용자가 어떤것을 검색 할 때, 서치 엔진은 가장 유용한 결과를 해석하고 사용자에게 보여 줍니다. 페이지 순위 지정, 순서지정들은 모두 질문을 기반으로 합니다. 이 순서는 종종 시간이 지남에 따라 나은 정보에 따라 바뀔 수 있습니다.

더 나아가기: 서치 엔진을 어떻게 최적화 해야 할까?

이제 우리는 서치엔진이 어떻게 작용하는지 이해 했으므로, 우리는 서치엔진의 최적화의 가치를 알아 볼 수 있습니다. SEO (Search Engine Optimization : 검색엔진 최적화) 는 검색엔진이 검색을 하고 자동적으로 우리의 컨텐츠를 이해하게 합니다. 우리는 우리와 연관된 사이트를 더 잘 보이도록 기능을 향상시킬 수 있습니다. 이것은 우리의 사이트에 관심을 가지는 사용자들이 더 잘 들어 올 수 있게 만듭니다. 서치엔진의 웹 사이트의 컨텐츠를 얼마나 우리의 사이트를 표면화를 시키는지 알기 위해 'Lighthouse'에서 심사 해 보고 SEO 결과를 확인해 보는 것도 좋은 방법입니다.

출처

이 포스팅은 web.dev-How search works (링크)를 번역하여 포스팅 하였습니다.

0개의 댓글