0. ํ์ต๋ชฉ์
- ์ธ๋ฑ์ค์ ๋ํ ๊ฐ๊ด์ ์ธ ์ดํด ( ์ ์ด๋ฐ ๊ฑฐ๊ตฌ๋~ ์ ๋๋ง ์ป์ผ๋ฉด OK)
1. ์ธ๋ฑ์ค๋?
์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ฐพ์๋ณด๊ธฐ ์ํ ์์ธ์ ๋งํ๋ค.
์ฑ
์ ๋ชฉ์ฐจ๋ ์ฑ
๋ง๋ฏธ์ ์กด์ฌํ๋ ์ํ๋ ๊ธ ์ฐพ์๋ณด๊ธฐ์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ค.
2. ์ธ๋ฑ์ค์ ๊ตฌ์กฐ
์ถ์ฒ: ํต๊ณํ ์ธ์ - 489๋ฒ์งธ ํฌ์คํ
๊ธ์์
๊ณ์ ์ฑ
์ ๊ด์ ๊ณผ ๋น๊ตํด์ ์ค๋ช
ํ๊ฒ ๋ค.
์์ ๊ทธ๋ฆผ์ ๊ตญ์ด ์ฌ์ ์ ๋งจ ๋์ ์๋ ์ํ๋ ๋จ์ด์ ๋ป ์ฐพ์๋ณด๊ธฐ์ด๋ค. (์ดํ ์์ธ์ด๋ผ ๋ถ๋ฅด๊ฒ ๋ค.)
ํด๋น ์์ธ์์๋ a. ์ํ๋ ๋จ์ด ์ด๋ฆ์ ์ฐพ์ ๋ค, b. ๊ทธ๊ฒ์ด ๊ฐ๋ฆฌํค๋ ํ์ด์ง๋ก ๊ฐ์ c. ์ฑ
์ ๋ด์ฉ์ ๋ณธ๋ค.
DB์ INDEX ๋ํ ํด๋น ์๋ฆฌ๋ฅผ ๊ทธ๋๋ก ์ด์ด ๋๊ฐ๋ค. ๊ตญ์ด์ฌ์ ์์ ์ํ๋ ๋จ์ด ์ด๋ฆ๊ณผ ๊ฐ์ด ๊ฐ๋ณ ์ธ๋ฑ์ค๋ค์ ์๋ณํ ์ ์๋ a. ์๋ณ ์ปฌ๋ผ ๊ฐ์ด ์กด์ฌ ํ๋ฉฐ, ๊ทธ๊ฒ๋ง๋ค Pair ๊ฐ์ผ๋ก b. ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด์ ํด๋น ์ฃผ์๋ก ๊ฐ๋ฉด ๋ด๊ฐ ์ํ๋ c. ๋ฐ์ดํฐ ํ์ผ ์ ์ฝ์ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ตฌ์กฐ๋ฅผ ๋์ํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.

์ธ๋ฑ์ค๋ง ๋ฐ๋ก ๋ผ์ด๋ด์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ด๋ค.
๋ง์น HashMap์ Key-value Pair์ฒ๋ผ ๋์ด ์๋ค.
3. ์ธ๋ฑ์ค์ ํน์ฑ
๊ฒฐ๋ก: ์ธ๋ฑ์ค์ ๊ฐ๋ค์ ์๋ณ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋์๋ค.
๊ตญ์ด์ฌ์ ์ ์์ธ์ ๋ณด๋ฉด, ๊ธ์๋ฅผ ์ค๋ฆ ์ฐจ์ ์ ๋ ฌ ํด๋์์์ ์ ์ ์๋ค. ใฑ,ใด,ใท,ใน ์์ ์์ผ๋ก ์์ํ์ฌ ์ธ๋ถ ์ ๋ ฌ์ ๋ค์ ๋ชจ์ ์์ผ๋ก ์งํํ๊ณ ์๋ค.
์ด์ ๋๊ฐ์ด ์ธ๋ฑ์ค ๋ํ ํน์ ๊ธฐ์ค์ผ๋ก ์ธ๋ฑ์ค ์ปฌ๋ผ๋ค์ด ์ ๋ ฌ๋จ์ด ๋ณด์ฅ๋๋ค. ์ด๋ ๊ฒ ์ ๋ ฌ๋ ๊ธฐ์ค์ด ์กด์ฌํด์ผ ์คํ ๋ฆฌ์ง ์์ง ๋ํ ์ํ๋ ๊ฐ์ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
A. ํด๋น ํน์ฑ์ผ๋ก ์ฐพ์์ค๋ ์ฌํ
๊ฒฐ๋ก : ์ธ๋ฑ์ค ์ฌ์ฉ์ ๋ฑ๊ฐ ๊ตํ (ํน์ ํ
์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ์๋ก ์ฝ์
, ์์ , ์ญ์ ์๋ ์ ํ, ์กฐํ ์๋ UP)
์ธ๋ฑ์ค์ ์๋ณธ ๋ฐ์ดํฐ ํ์ผ์ ์๋ฃ ๊ตฌ์กฐ์ ๋น๊ตํ์๋ฉด, ์ธ๋ฑ์ค๋ SortedSet์ด๋ฉฐ, ์๋ณธ ๋ฐ์ดํฐ ํ์ผ์ ArrayList์ด๋ค.
์ฆ ์ธ๋ฑ์ค๋ ์ ์ฅ, ์์ , ์ญ์ ์ ์ ๋ ฌ์ ์ ํฉ์ฑ์ ๊นจ์ง ์๊ธฐ ์ํด, ์ ์๋ฆฌ๋ฅผ ์ฐพ์๊ฐ๋ฉฐ ์ ์ฅ๋์ง๋ง, ArrayList๋ ๊ทธ์ ์ฝ์
๋ ์์ผ๋ก ์ ์ฅ๋๋ฉฐ, ์์ ์ญ์ ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ํ์ธํด์ ์์ ์ด ์ง์ธ ๊ฒ์ ์์น๋ฅผ ์ฐพ๋๋ค.
๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ ์กฐํ์ ๊ทธ ์ธ์ DML์ ์๋๋ฅผ ๋ฑ๊ฐ ๊ตํ ํ๋ ํ์์ด๊ธฐ ๋๋ฌธ์, ํ ์๋น์ค์์ ํน์ ์กฐํ ์๋๋ฅผ ๋๋ฆฌ๊ธฐ ์ํด ์ฝ์ , ์ญ์ , ์กฐํ๋ฅผ ์ด๋ ์ ๋ ํฌ์ํ ์ ์์์ง ๊ฐ๋ฐ์๊ฐ ์ ์ ํ ํ๋จํด์ผ ํใท.
4. ์ธ๋ฑ์ค์ ์ข ๋ฅ
์ธ๋ฑ์ค๋ฅผ ๊ตฌ๋ถํ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ์ข ๋ฅ๋ฅผ ๋ค๋ฅด๊ฒ ์ ์ ์๋ค.
(1) ์์ธ์ ๊ธฐ์ค์ธ ์ปฌ๋ผ ๊ฐ์ ๋ฌด์์ผ๋ก ์ง์ ํ๋๊ฐ
PK์ธ๋ฑ์ค:
๋ณธ ํ ์ด๋ธ์ ๋ํ ์๋ณ ์ปฌ๋ผ(Primary Key) ์์ฒด๋ฅผ ์ธ๋ฑ์ค ์๋ณ ์ปฌ๋ผ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
๋ณด์กฐ (Secondary)์ธ๋ฑ์ค:
๋ณธ ํ ์ด๋ธ์ PK๋ฅผ ์ ์ธํ ์ปฌ๋ผ์ ์ธ๋ฑ์ค ์๋ณ ์ปฌ๋ผ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
(2) ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์
B-tree์ธ๋ฑ์ค:
์๋ณ ์ปฌ๋ผ์ ๊ฐ์ ๋ณํํ์ง ์๊ณ , ์๋ณธ ๋ฐ์ดํฐ ์ ์นผ๋ผ ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ์ธ๋ฑ์ฑํ๋ ๋ฐฉ์Hash์ธ๋ฑ์ค:
์๋ณธ ๋ฐ์ดํฐ ์ ์ปฌ๋ผ ๊ฐ์ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด์ฑํด์ ์๋ณ ์ปฌ๋ผ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์
(3) ๋ฐ์ดํฐ ์ค๋ณต ํ์ฉ ์ฌ๋ถ
Unique์ธ๋ฑ์ค:
์๋ณ ์ปฌ๋ผ ๊ฐ์ด ๋ชจ๋ ๋ ์ฝ๋๋ง๋ค ๋ค๋ฆ (์ฆ ๋ชจ๋ ๊ฐ์ด ์ ์ผ๋ฌด์ดํจ)Non-unique์ธ๋ฑ์ค:
์์ ๋ฐ๋ ์ฆ, ์๋ณ ์ปฌ๋ผ์ ๊ฐ์ด ์ค๋ณต๋ ์ ์์
5. ํต์ฌ ์์ฝ
์ธ๋ฑ์ค์ ๊ตฌ์กฐ๋ ๊ตญ์ด์ฌ์ ์ ์ํ๋ ๋จ์ด ์ฐพ์๋ณด๊ธฐ์ ๊ฐ๋ค.
์๋ณ ์ปฌ๋ผ์ผ๋ก ์ฐพ๊ณ ์ถ์ ๋ฐ์ดํฐ ํน์ -> ์๋ณ ์ปฌ๋ผ์ Pair ๊ฐ์ธ ๋ฐ์ดํฐ ์ฃผ์๋ก ์๋ณธ ๋ฐ์ดํฐ ํ์ผ์ ์ฐพ๋๋ค.
์ธ๋ฑ์ค๋ ์ ๋ ฌ๋ ์ฑ ์ ์ฅ์ด๋ผ์ ์ ๊ท ๊ฐ ์
๋ ฅ ์ ๋งค๋ฒ ์ ์์น ์ฐพ๋ ์์
์ ํด์ผํ๋ค.
๋ฐ๋ผ์ ์ธ๋ฑ์ค ์์ฑ์ ์กฐํ ์๋๋ฅผ ๋์ด์ง๋ง, ์ฝ์
, ์์ , ์ญ์ ์๋๋ฅผ ๋ฎ์ถ๋ค.
Metadata
A. ์ฐธ๊ณ ๋ฌธ์
- ์์
B. ๋ชจ๋ฅด๋ ๋จ์ด ์ ๋ฆฌ to Layman's term ๐๐
- ์์
C. ์์ ๊ธ
TABLE without id file.inlinks AS "BackLink"
WHERE file.path = this.file.path