공부
✅ B-tree 자료구조 완전 정복 🔍
projectlim
2025. 3. 12. 02:12
728x90
반응형
SMALL
"대용량 데이터를 빠르게 검색하고 정렬하는 비결!"
오늘의 포스팅은 면접에서 질문에 대답을 못해서 ㅎㅎ
작성해 봅니당
📌 B-tree란?
B-tree는 **균형 잡힌 다진 트리(Balanced Multiway Tree)**로,
디스크 기반 저장 시스템이나 데이터베이스에서 자주 사용되는 자료구조입니다.
기본적인 Binary Tree와 다르게, 하나의 노드가 여러 개의 키와 자식을 가질 수 있어
검색, 삽입, 삭제가 모두 로그 시간(log n) 안에 수행됩니다.
🎯 B-tree의 핵심 특징
항목 설명
구조 | 균형 잡힌 N진 트리 |
노드당 키 | 여러 개의 키 보유 가능 |
노드당 자식 | 최대 M개의 자식 노드 (M차 B-tree) |
균형 유지 | 모든 리프 노드의 깊이가 동일 |
주요 용도 | 데이터베이스, 파일 시스템, 인덱스 구조 |
🧱 B-tree 기본 구조 예시
[17 | 35]
/ | \
[1 8] [18 25] [40 50]
- 각 노드는 여러 개의 키를 가질 수 있으며,
- 각 자식 노드는 해당 키의 범위 내 값들을 포함합니다.
- 삽입/삭제 시 트리가 균형을 자동으로 유지합니다.
🧠 B-tree 작동 원리
🔹 검색 (Search)
- 루트 노드부터 시작하여 키와 비교하며 하위 노드로 이동
- 시간 복잡도: O(log n)
🔹 삽입 (Insert)
- 리프 노드까지 내려가 삽입
- 노드가 가득 찼을 경우 분할(split) 수행
🔹 삭제 (Delete)
- 삭제 후 노드의 최소 키 수를 만족하지 않으면 병합 또는 키 이동
🧩 B-tree vs Binary Search Tree 비교
항목 B-tree BST
자식 수 | 다수 (M진 트리) | 최대 2개 |
깊이 | 얕음 (빠름) | 깊어질 수 있음 |
디스크 최적화 | 가능 | 미흡 |
사용처 | DB, 파일 시스템 | 일반 알고리즘 문제 |
📦 실전 활용 사례
- 📁 파일 시스템 (ex. NTFS, HFS, ext4)
- 💾 데이터베이스 인덱스 (MySQL, PostgreSQL 등)
- 📚 키-값 저장소 (B+ Tree로 응용)
📚 확장: B+ Tree는 뭐가 다를까?
항목 B-tree B+ Tree
내부 노드 | 키 & 데이터 | 키만 있음 |
리프 노드 | 없음 | 전체 데이터 저장 |
순차 탐색 | 복잡함 | 빠름 (리프 노드 연결) |
✅ 정리 요약
- B-tree는 높이 균형을 유지하면서도 빠른 검색/삽입/삭제가 가능한 트리 구조
- 대용량 데이터 환경에서 성능 최적화에 필수
- 데이터베이스, 파일시스템 등 실전에서 매우 자주 사용됨!
728x90
반응형
LIST