피드로 돌아가기
The Math Behind O(log n): Binary Search, log , and Why Halving Wins
Dev.toDev.to
Database

데이터 100만 건 탐색 시간을 50만 번에서 20번으로 단축하는 Halving 전략

The Math Behind O(log n): Binary Search, log , and Why Halving Wins

Anh Quân Nguyễn2026년 6월 12일4beginner

Context

Linear Scan 방식의 탐색 구조는 데이터 규모 증가에 따라 연산량이 선형적으로 증가하는 O(n)의 한계를 가짐. 특히 대규모 데이터셋에서 탐색 횟수가 기하급수적으로 늘어남에 따라 성능 병목 현상이 발생함.

Technical Solution

  • 데이터셋을 매 단계 절반으로 축소하는 Halving 메커니즘 기반의 Binary Search 적용
  • 정렬된 상태의 데이터를 전제로 Mid-point 비교를 통한 불필요한 탐색 범위 제거
  • Balanced Tree 구조 내에서 각 레벨마다 키 공간을 분할하여 탐색 경로를 log₂(n) 수준으로 유지
  • B-Tree의 Branching Factor를 높여 단일 레벨에서 처리 가능한 데이터 양을 확장하고 Tree Depth를 최소화
  • Divide and Conquer 전략을 통해 복잡한 문제를 하위 문제로 분할하여 전체 시간 복잡도를 O(n log n)으로 최적화

Impact

  • 100만 개의 데이터 탐색 시 최대 비교 횟수를 500,000회에서 20회로 단축
  • Linear Scan 대비 최악의 경우 약 25,000배의 연산 효율성 개선
  • Branching Factor 256 기반 B-Tree 적용 시 1,000만 개의 키를 단 3단계의 레벨에서 인덱싱 가능

Key Takeaway

O(log n)의 본질은 단순한 속도 향상이 아닌 매 단계 문제 규모를 일정 비율로 축소하는 Halving 전략에 있음. Branching Factor의 조정은 상수 시간 복잡도 내에서 탐색 깊이를 제어하는 핵심 설계 변수로 작용함.


1. 대규모 데이터 탐색 설계 시 데이터 정렬 가능 여부를 확인하여 Binary Search 적용 검토

2. DB 인덱스 설계 시 Branching Factor와 Tree Depth의 상관관계를 분석하여 I/O 비용 최적화

3. O(log n) 알고리즘 도입 시 실제 데이터 규모(n)에 따른 예상 스텝 수를 log₂(n)으로 산출하여 성능 예측

4. Divide and Conquer 적용 시 분할 단계(log n)와 병합 단계(n)의 비용 합계를 통해 전체 복잡도 계산

원문 읽기