Quora 기술 스택 및 아키텍처 분석 (Phil Whelan)

Source

  • Evernote/Article Scraps/Quora’s Technology Examined Phil Whelan's Blog.md

Summary

이 문서는 Quora의 초기 기술 아키텍처와 핵심 구성 요소를 분석한 블로그 포스트입니다. Quora가 Facebook 출신 공동 창업자들의 배경을 바탕으로 MySQL을 데이터 저장소로 선택한 이유, 그리고 빠른 자동 완성 검색 기능을 구현하기 위해 Sphinx에서 자체 Python 기반 솔루션으로 전환한 과정을 다룹니다. 주요 기술 스택으로는 Python, Tornado, Thrift, MySQL, Memcached, Nginx, HAProxy 등이 언급되며, 검색 기능은 토큰화, 접두어 매칭, 간단한 어간 추출(stemming) 및 수동 주제 별칭(topic-alias)을 통해 구현되었음을 설명합니다.

Key Points

  • Quora는 Facebook 출신 공동 창업자들이 구축한 백엔드를 기반으로 하며, NoSQL 대신 MySQL을 데이터 저장소로 사용함.
  • 검색 기능은 질문, 주제, 사용자명, 게시글 제목만 인덱싱하며, 전체 텍스트 검색은 지원하지 않음.
  • 초기에는 Sphinx를 사용했으나 실시간 제약으로 인해 자체 Python 기반 검색 솔루션으로 전환하여 접두어 매칭(prefix matching)과 매칭 알고리즘 제어력을 강화함.
  • 검색 매칭 기술: 토큰화, 접두어 매칭, 간단한 어간 추출(nears/near), 수동 입력 주제 별칭(startup/start-up). 오타(gooogle)는 매칭되지 않음.
  • 주요 기술 스택: Python, Tornado, Thrift, MySQL, Memcached, Nginx, HAProxy, Git, Ubuntu Linux.