검색과 정렬 최적화
개념 설명
대용량 데이터에서 인덱싱과 병렬 처리를 활용한 검색·정렬 성능 최적화 기법.
핵심 포인트
- 인덱싱으로 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))
);
}
}더 많은 내용을 확인하세요! 📚
“검색과 정렬 최적화”의 전체 내용을 보시려면 프리미엄 플랜이 필요합니다.
✨ 모든 기술 문서 무제한 액세스
📝 실습 예제와 상세한 코드 설명
🎯 면접 예상 질문과 답변 가이드