시스템 설계 · 심화
검색 자동완성(Autocomplete) 시스템을 설계해주세요.
힌트 · Trie 자료구조, Redis Sorted Set 활용, 인기 검색어 캐싱, 다국어 처리를 설명해보세요.
TriePrefixLatencyRelevanceCaching
모범답안
자동완성 시스템 설계에 대해 말씀드리겠습니다.
가장 중요한 건 빠른 응답 속도와 관련성 높은 검색어 추천입니다. Trie 자료구조를 사용해서 prefix 기반 검색을 효율적으로 처리할 수 있습니다. 각 노드는 다음 문자를 가리키는 포인터를 가지고, 단어의 끝을 표시하는 플래그를 가집니다.
인기 검색어는 Redis Sorted Set에 저장하여 검색어 빈도수를 기준으로 정렬합니다. 사용자 입력 시 Trie에서 prefix 검색 후, Redis에서 인기 검색어를 가져와 합쳐서 결과를 보여줍니다. 캐싱 전략을 통해 latency를 줄일 수 있습니다.
다국어 처리를 위해 유니코드 기반 Trie를 사용하고, 언어별로 다른 가중치를 적용하여 검색어 순위를 조정할 수 있습니다. 예를 들어, 한국어 검색에서는 띄어쓰기 보정을 고려할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.