문서 목록
⭐️는 필수 지식, 💡는 이해하면 좋은 지식이에요.

검색과 정렬 최적화

개념 설명

대용량 데이터에서 인덱싱과 병렬 처리를 활용한 검색·정렬 성능 최적화 기법.

핵심 포인트

  • 인덱싱으로 O(n) 검색을 O(1) 접근으로 최적화
  • 퍼지 검색은 레벤슈타인 거리로 유사도 측정
  • 웹 워커로 병렬 정렬하여 메인 스레드 블로킹 방지
  • K-way 병합으로 정렬된 청크들을 효율적으로 합병

예시 코드

// 인덱싱 기반 검색 최적화
class SearchIndex {
  constructor(items, searchFields) {
    this.items = items;
    this.indices = this.buildIndices(searchFields);
  }
  
  buildIndices(fields) {
    const indices = {};
    fields.forEach(field => {
      indices[field] = new Map();
      this.items.forEach((item, idx) => {
        const words = item[field].toLowerCase().split(/\s+/);
        words.forEach(word => {
          if (!indices[field].has(word)) {
            indices[field].set(word, []);
          }
          indices[field].get(word).push(idx);
        });
      });
    });
    return indices;
  }
  
  search(query, field) {
    const words = query.toLowerCase().split(/\s+/);
    const sets = words.map(word => 
      new Set(this.indices[field].get(word) || [])
    );
    // 교집합으로 정확한 매칭
    return this.items.filter((_, idx) => 
      sets.every(set => set.has(idx))
    );
  }
}

더 많은 내용을 확인하세요! 📚

검색과 정렬 최적화의 전체 내용을 보시려면 프리미엄 플랜이 필요합니다.

✨ 모든 기술 문서 무제한 액세스

📝 실습 예제와 상세한 코드 설명

🎯 면접 예상 질문과 답변 가이드

플랜 비교하기