[5] 웹 개발자를 위한 대규모 서비스를 지탱하는 기술

대규모 서비스와 관련된 책 중에 유명한 책으로 알고 있는데, 마침 회사에 책이 있기에 읽어 보았습니다.

읽는 데는 2주 반정도가 소요 되었습니다.

 

『웹 개발자를 위한 대규모 서비스를 지탱하는 기술』은 일본의 유명 웹사이트 하테나(Hatena)의 변천사를 다루며, 대규모 서비스를 구축하고 운영하는 데 필요한 기술과 인사이트를 전달하는 책입니다.

 

주요 내용 및 느낀 점

이 책은 대규모 데이터를 다룰 때 필수적으로 알아야 할 세 가지 전제 지식을 바탕으로 얘기를 해줍니다.

  1. OS 캐시의 이해
  2. 서버 분산과 RDBMS 운용
  3. 대규모 환경에서의 알고리즘과 데이터 구조 활용

 

특히 하테나가 포털 사이트로서 시스템을 어떻게 구축했는지 자세히 설명하고 있어서, 현재 포털 사이트를 운영하는 회사에 다니고 있기에 정말 흥미롭게 읽을 수 있었습니다.

 

내용의 난이도가 다소 있어 세부 사항을 완전히 소화하기보다는 큰 흐름을 이해하는 데 집중하며 빠르게 훑어보는 방식으로 읽었습니다.

 

책에서 제안한 과제 중 하나는 포털 사이트의 전문 검색 엔진을 직접 만들어보라는 것도 있었습니다.

이 부분에서는 살짝 놀라기도 했습니다.

 

특히 기억에 남는 부분은 검색 시스템에 대한 내용입니다.

 

검색 시스템의 기본 작동 원리

포털 사이트에서 검색이 이뤄지는 과정은 다음과 같습니다.

  1. 크롤링: 웹에서 데이터를 수집
  2. 저장: 수집한 데이터를 효율적으로 저장
  3. 인덱싱: 빠른 검색을 위해 데이터 구조화
  4. 검색: 사용자의 요청에 따라 데이터를 탐색
  5. 스코어링(랭킹): 검색 결과를 중요도 순으로 정렬
  6. 결과 표시: 사용자에게 보여줌

이 때 검색 시스템에서는 오탈자가 포함된 검색어를 입력했을 때 이를 바로잡는 방법은 크게 두 가지로 나뉩니다.

첫 번째는 사용자의 검색 로그를 분석해 수정된 스펠링을 제안하는 것이고,

두 번째는 일정 규모의 사전을 구축해 이를 활용하는 방식입니다.

 

포털 사이트에서 검색하는 기능은 매일 사용하지만

이렇게 방대한 데이터를 어떻게 모아서 보여주는지 막연히 궁금했는데,

이 책을 읽고 나니 그 과정을 조금은 이해하게 된 것 같습니다.