패스잇
시스템 설계 · 심화

검색 자동완성(Autocomplete) 시스템을 설계해주세요.

힌트 · Trie 자료구조, Redis Sorted Set 활용, 인기 검색어 캐싱, 다국어 처리를 설명해보세요.

TriePrefixLatencyRelevanceCaching

모범답안

자동완성 시스템 설계에 대해 말씀드리겠습니다.

가장 중요한 건 빠른 응답 속도와 관련성 높은 검색어 추천입니다. Trie 자료구조를 사용해서 prefix 기반 검색을 효율적으로 처리할 수 있습니다. 각 노드는 다음 문자를 가리키는 포인터를 가지고, 단어의 끝을 표시하는 플래그를 가집니다.

인기 검색어는 Redis Sorted Set에 저장하여 검색어 빈도수를 기준으로 정렬합니다. 사용자 입력 시 Trie에서 prefix 검색 후, Redis에서 인기 검색어를 가져와 합쳐서 결과를 보여줍니다. 캐싱 전략을 통해 latency를 줄일 수 있습니다.

다국어 처리를 위해 유니코드 기반 Trie를 사용하고, 언어별로 다른 가중치를 적용하여 검색어 순위를 조정할 수 있습니다. 예를 들어, 한국어 검색에서는 띄어쓰기 보정을 고려할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 시스템 설계 면접 질문

← 시스템 설계 면접 질문 전체 보기