2023. 3. 8. 15:36ใ๐คฟ ์จ์ฐธ๊ณ Deep Dive
Q. ํธ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ?
A. ์ ์ : ๋ถ๋ชจ ์์ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ง ๊ณ์ธต์ ๊ตฌ์กฐ์ ์๋ฃ๊ตฌ์กฐ
Q. ์ด์ง ํธ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ?
A. ์์๋ ธ๋๊ฐ ์ต๋ 2๊ฐ๋ก ์ด๋ฃจ์ด์ง ํธ๋ฆฌ ํํ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๋ฏธํ๋ค.
Q. ์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ?
A. ๋ง์ฐฌ๊ฐ์ง๋ก ์์๋ ธ๋๊ฐ ์ต๋ 2๊ฐ๋ก ์ด๋ฃจ์ด์ง ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ. ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ ์ ๋ ฌ๋ ์ํ๋ฅผ ์ ์งํ๋๋ฐ, ํน์ ๋ ธ๋์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ ํด๋น ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ ํด๋น ๋ ธ๋๋ณด๋ค ๋ชจ๋ ํฐ ๊ฐ์ ๊ฐ์ง๋ค.
Q. ์ด์ง ํธ๋ฆฌ์ ์ด์ง ํ์ ํธ๋ฆฌ์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ?
A. ์ ๋ ฌ ์ํ๋ผ ํ ์ ์๋ค. ์ด์ง ํ์ ํธ๋ฆฌ๋ ์ ๋ ฌ๋ ์ด์ง ํธ๋ฆฌ๋ก ๋ณผ ์ ์๋๋ฐ, ๋ ธ๋์ ์ผ์ชฝ ํ์ ํธ๋ฆฌ์๋ ํด๋น ๋ ธ๋๋ณด๋ค ์์ ํค๊ฐ ์๋ ๋ ธ๋, ์ค๋ฅธ์ชฝ ํ์ ํธ๋ฆฌ์๋ ํฐ ํค๊ฐ ์๋ ๋ ธ๋๋ง ํฌํจ๋๋ค.
Q. ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ง์ ๋ฌด์์ธ๊ฐ?
A. BST๋ ์ค์ ์ํ (Inorder Traversal) ๋ฅผ ์ํํ๋ฉฐ ๋ชจ๋ ํค๋ฅผ ์ ๋ ฌ๋ ์์๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค. ํธ๋ฆฌ๊ฐ ๊ท ํ ์ํ๋ผ๋ฉด O(log N) ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง ๋ถ๊ท ํ ์ํ(์ ํ)๋ผ๋ฉด O(N) ์ ์๊ฐ์ด ์์๋๋ค.
Q. ์ ์ด์ง ํ์ ํธ๋ฆฌ๋ ์ค์ ์ํ๋ก ์ ๋ ฌ๋๋๊ฐ?
A. ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ฑ์ ์๊ฐํด๋ณด์. ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ ๋ฃจํธ ๋ ธ๋๋ณด๋ค ์๊ณ , ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ ๋ฃจํธ ๋ ธ๋๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ธ๋ฐ, ์ค์์ํ๋ก BTS์ ๊ฐ์ ๋์ดํ๋ฉด ์ ๋ ฌ๋ ์ํ์์ ํ์ธํ ์ ์๋ค.
Q. ์ค์ ์ํ๋?
์ผ์ชฝ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์๋ ๋ ธ๋์ ๋๋ฌํ ๋๊น์ง ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ๋ก ๋ด๋ ค๊ฐ๋ค. ํด๋น ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ํ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ณ , ์ค๋ฅธ์ชฝ ๋ ธ๋๋ก ๋์ด๊ฐ ๋ค์ ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ๋ฅผ ์ฐพ์๊ฐ๋ ์ฌ๊ท์ ์ํ๋ฅผ ๋ฐ๋ณตํ๋ค. ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ณ ๋ค์ ์ค๋ฅธ์ชฝ ๋ ธ๋์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ํ์ํ๋ค.
Q. B-Tree ๋ ๋ฌด์์ธ๊ฐ?
A. ์ด์งํธ๋ฆฌ๋ฅผ ํ์ฅํด ํ๋์ ๋ ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์์ ๋ ธ๋์ ์ต๋ ์๊ฐ 2๋ณด๋ค ํฐ ํธ๋ฆฌ๋ฅผ ์๋ฏธ.
๋๋ ๋ฐ์ดํฐ์ ์ ์ฅ ํจ์จ์ ์ํด DB ๋ ํ์ผ ์์คํ ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ์๊ฐ ๊ท ํ ํ์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํ๋ค.
Q. B-Tree ์ ํน์ง์ ๋ฌด์์ธ๊ฐ?
๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ง๋์ด ์๋ค. ์๊ฐ๋ณต์ก๋๊ฐ O(log N) ์ด๋ ์ ์์, ํธ๋ฆฌ ๋ด ๋ชจ๋ ๊ฐ์ ๋ํ ๋์ผํ ํ์์๊ฐ์ ๊ฐ๋๋ค. ์ด๋ฅผ ๊ท ์ผ์ฑ์ด๋ผ ํ๋ค. ์ฆ ๋ฃจํธ ๋ ธ๋์์ ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ก ๊ฐ๋ ๊ฒฝ๋ก์ ๊ธธ์ด๊ฐ ๊ฐ๋ค.
Q. ๊ทธ๋ผ BST ๋ ๊ท ์ผํ์ง ์์๊ฐ?
BST์ B-Tree ์ ๊ฒฐ์ ์ ์ฐจ์ด๋ ํธ๋ฆฌ์ ๋์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, B-Tree ๋ ๋ชจ๋ ๋ฆฌํ๋ ธ๋์ ๋์ด๊ฐ ๋์ผํ๋ค. ์ฆ B-Tree์ ๋ฆฌํ๋ ธ๋๋ ๋ชจ๋ ๋์ผํ ๋ ๋ฒจ์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ง, BST ๋ ์ต์ ์ ๊ฒฝ์ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์น ์ ํ์ ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด์ง ์ ์๊ณ ์ด ๊ฒฝ์ฐ ์๊ฐ๋ณต์ก๋๋ O(N) ์ด ๋ ์ ์๋ค.
Q. B-Tree ์ BST ์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ?
A. BST ๋ ํ๋์ ๋ ธ๋์์ ๊ฐ์ง ์ ์๋ ํค ๊ฐ์ด ํ๋์ง๋ง, B-Tree ๋ 2๊ฐ ์ด์ ๊ฐ์ง ์ ์๋ค. ๋ํ BST ๋ ์ต๋ 2๊ฐ์ ์์ ๋ ธ๋๋ง ๊ฐ์ง์ง๋ง, B-Tree ๋ ๋ ์ด์์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ค. ์ด๋ก์ธํด B-Tree ๋ ๊ท ์ผ์ฑ์ด๋ผ๋ ํน์ง์ ๊ฐ์ง๋ค.
Q. ๋ญํ๋ฌ ๋ ์ด์์ key์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋?
A. ์ผ๋ฐ์ ์ผ๋ก B-Tree๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ๋ ๋ค๋ฅธ ๋ณด์กฐ ์ ์ฅ ์ฅ์น์ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค. ํ ๋ ธ๋๊ฐ ๊ฐ์ง๋ key ๊ฐ ๋ง๋ค๋ฉด, ๋ ์ ์ ๋์คํฌ ์ก์ธ์ค๋ก ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๋ค.
Q. ๊ทธ๋ ๋ค๋ฉด ํ๋์ ๋ ธ๋์ ๋ชจ๋ key ๋ฅผ ์ ์ฅํ๋ฉด ๋์ง ์๊ฒ ๋๋?
A. ๊ทธ๋ผ ๋ฆฌ์คํธ์ ๋ค๋ฅผ๊ฒ ์๊ณ , ์ ํํ์์ ํ๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์๋ฏธ๊ฐ ์ฌ๋ผ์ง๋ค.
Q. B-Tree ๋ ์ด๋ป๊ฒ ๊ท ํ์ ์ ์งํ๋๊ฐ?
A. B-Tree ๋ ๋ชจ๋ ๋ฆฌํ๋ ธ๋๊ฐ ๋์ผํ ๋ ๋ฒจ์ ์๊ณ , ๊ฐ๋ณ ๋ ธ๋๊ฐ ๊ฐ์ง ์ ์๋ key ์ ๊ฐ์๊ฐ ํน์ ๋ฒ์(min ~ max) ๋ด์ ์๋ค. ์์์ ๋ ธ๋๊ฐ ๋๋ฌด ์ปค์ง๋ค๋ฉด key ๊ฐ ์ฌ๋ถ์ฐ๋๊ฑฐ๋ ๋ ธ๋๊ฐ ์ชผ๊ฐ์ง๊ณ , ๋ ธ๋๊ฐ ๋๋ฌด ์๋ค๋ฉด ๋ค๋ฅธ ๋ ธ๋์ ๋ณํฉ๋๋ค.
Q. B-tree ์ ์กฐํ ์๊ฐ๋ณต์ก๋๋ ์ด๋ป๊ฒ ๋๋๊ฐ?
A. ์๊ฐ๋ณต์ก๋๋ O(log n) ์ด๋ฉฐ, n ์ ํธ๋ฆฌ์ ์กด์ฌํ๋ key ์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.
Q. B-tree ์ ๋์ด๊ฐ ๋ฎ๋ค๋ ๊ฑด ์ด๋ค ์๋ฏธ์ธ๊ฐ?
A. B-Tree์ ๋์ด๋ ํ์/์ฝ์ /์ญ์ ์์ ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋๋ฐ, ๋์ด๊ฐ ๋ฎ๋ค๋ ๊ฒ์ ๋ ์ ์ Disk I/O๋ก ์์ ์ด ์ด๋ค์ง ์ ์์์ ์๋ฏธํ๋ค. ์ฝ๊ฒ ๋งํด ๋์ด๊ฐ ๋ฎ์ ์๋ก ์์ ์๋๊ฐ ๋ ๋น ๋ฅด๋ค.
Q. DB ์ธ๋ฑ์ค๊ฐ B-Tree ์ธ ์ด์ ๋ ๋ฌด์์ธ๊ฐ?
A. ใ
ใด ๋น ๋ฅด๋ค
1. ๋ชจ๋ ๋ ธ๋๋ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, range ์ฐ์ฐ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
2. ํ ๋ ธ๋์ ์ฌ๋ฌ key ๊ฐ ์กด์ฌํ๊ธฐ์ ์ ์ฒด์ ์ธ ์ฐธ์กฐ ํฌ์ธํฐ๊ฐ ์ ์ด์ง๋ ํจ๊ณผ๊ฐ ์๋ค.
3. ๋ฐ์ดํฐ ํ์ ๋ฟ ์๋๋ผ, ์ ์ฅ/์์ /์ญ์ ์๋ ๋์ผํ๊ฒ O(log N) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
Q. B-Tree ์ B+Tree ์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ?
A. B+ ๋ B-์ ํ์ฅ๋ ๊ฐ๋ ์ผ๋ก,๋ชจ๋ data๊ฐ leaf node ์ ์ ์ฅ๋ผ ์๊ณ , internal nodes ์๋ leaf nodes ๋ก ํฅํ๋ ํฌ์ธํฐ(key)๋ง ์ ์ฅ๋๋ค. ์ด๋ ๋น ๋ฅธ ๋์คํฌ IO ํจ๊ณผ๋ฅผ ๋ธ๋ค.
Q. B-Tree์ ๋นํด B+Tree ์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ?
A. ๋ฒ์ ํ์๊ณผ ์์ฐจ์ ์ค์บ์ด ๋ ๋น ๋ฅด๋ค. Fan out ์ ์ฐจ์๊ฐ ๋์๋ฐ, ํ๋ฒ์ Disk I/O ์์ ์ผ๋ก ์ฌ๋ฌ๊ฐ์ key ์ ์ ๊ทผํ ์ ์๋ค.
Q. B-Tree ์ B+Tree ์ ํ์ค์บ์ ์ด๋ค ์ฐจ์ด๊ฐ ์๋๊ฐ?
B-Tree ๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ํด์ผ ํ๋ ๋ฐ๋ฉด, B+Tree ๋ ๋ฆฌํ ๋ ธ๋๋ง ํ์ํ๋ฉด ๋๋ค.
Q. B-Tree ์ B+Tree ์ค ์ด๋๊ฒ์ด DB ์ธ๋ฑ์ค๋ก ์ ํฉํ๊ฐ
A. DB ์ธ๋ฑ์ค ์์ฑ์ B-Tree ์ B+Tree ๋ชจ๋ ์ฌ์ฉ๋์ง๋ง, B+Tree ์ ์ด์ ๋๋ถ์ ๋ ์์ฃผ ์ฌ์ฉ๋๋ค.
B+Tree ๋ ๋ชจ๋ ํค๊ฐ ๋ฆฌํ ๋ ธ๋์ ์ ์ฅ๋๊ณ , ๋ฆฌํ ๋ ธ๋๋ Linked List ๋ก ์ฐ๊ฒฐ๋์ด Range Query ์ ๋ํด ํจ์จ์ ์ผ๋ก ํ์ํ ์ ์๋ค. B+Tree ์ ๋ด๋ถ ๋ ธ๋๋ ํค๋ฅผ ์ ์ฅํ์ง ์๊ณ ์์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ง ์ ์ฅํ๊ธฐ์ Disk I/O ์ฑ๋ฅ์ด ๋ ์ฐ์ํ๋ค.
* Degree (์ฐจ์) ์ Fan-out ์ถ๊ฐ์ค๋ช
'๐คฟ ์จ์ฐธ๊ณ Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ง์ด๋? (0) | 2022.11.04 |
---|---|
๋ฉด์ ์ค๋น๋ฅผ ์ํ ์๋ฃ๊ตฌ์กฐ (0) | 2022.06.26 |