- ๊ธฐ๋ณธํค๋ ์์ ์ด ๊ฐ๋ฅํ๊ฐ์?
- ์ฌ์ค MySQL์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธํค๋ฅผ ์ค์ ํ์ง ์์๋ ํ ์ด๋ธ์ด ๋ง๋ค์ด์ง๋๋ค. ์ด๋ป๊ฒ ์ด๊ฒ ๊ฐ๋ฅํ ๊ฑธ๊น์?
- ์ธ๋ํค ๊ฐ์ NULL์ด ๋ค์ด์ฌ ์ ์๋์?
- ์ด๋ค ์นผ๋ผ์ ์ ์์ UNIQUE ํค์๋๊ฐ ๋ถ๋๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ์ด ์นผ๋ผ์ ํ์ฉํ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ๊ทธ๋ ์ง ์์ ๊ฒ๊ณผ ๋น๊ตํด์ ์ด๋ป๊ฒ ๋ค๋ฅผ๊น์?
- NoSQL์ ๊ฐ์ ๊ณผ, ์ฝ์ ์ด ๋ฌด์์ธ๊ฐ์?
- RDB์ ์ด๋ ํ ํน์ง ๋๋ฌธ์ NoSQL์ ๋นํด ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆด "์" ์์๊น์? (์ฃผ์: ๋ฌด์กฐ๊ฑด NoSQL์ด RDB ๋ณด๋ค ๋น ๋ฅด๋ค๋ผ๊ณ ์๊ฐํ๋ฉด ํฐ์ผ ๋ฉ๋๋ค!)
- NoSQL์ ํ์ฉํ ๊ฒฝํ์ด ์๋์? ์๋ค๋ฉด, ์ RDB๋ฅผ ์ ํํ์ง ์๊ณ ํด๋น DB๋ฅผ ์ ํํ๋์ง ์ค๋ช ํด ์ฃผ์ธ์.
- ACID ์์น ์ค, Durability๋ฅผ DBMS๋ ์ด๋ป๊ฒ ๋ณด์ฅํ๋์?
- ํธ๋์ญ์ ์ ์ฌ์ฉํด ๋ณธ ๊ฒฝํ์ด ์๋์? ์ด๋ค ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋์?
- ์ฝ๊ธฐ์๋ ํธ๋์ญ์ ์ ๊ฑธ์ง ์์๋ ๋ ๊น์?
- ๋ชจ๋ DBMS๊ฐ 4๊ฐ์ ๋ ๋ฒจ์ ๋ชจ๋ ๊ตฌํํ๊ณ ์๋์? ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น์?
- ๋ง์ฝ MySQL์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, (InnoDB ๊ธฐ์ค) Undo ์์ญ๊ณผ Redo ์์ญ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ทธ๋ฐ๋ฐ, ์คํ ๋ฆฌ์ง ์์ง์ด ์ ํํ ๋ฌด์์ ํ๋ ๊ฑด๊ฐ์?
- ์ผ๋ฐ์ ์ผ๋ก ์ธ๋ฑ์ค๋ ์์ ์ด ์ฆ์ ํ ์ด๋ธ์์ ์ฌ์ฉํ์ง ์๊ธฐ๋ฅผ ๊ถํฉ๋๋ค. ์ ๊ทธ๋ด๊น์?
- ์ ๊ผฌ๋ฆฌ์ง๋ฌธ์ ๋ํด, ๊ทธ๋ ๋ค๋ฉด ์ธ๋ฑ์ค์์ ์ฌ์ฉํ์ง ์๊ฒ ๋ค๊ณ ์ ํํ ๊ฐ์ ์ ์ ์ฑ ์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋์?
- ORDER BY/GROUP BY ์ฐ์ฐ์ ๋์ ๊ณผ์ ์ ์ธ๋ฑ์ค์ ์กด์ฌ์ฌ๋ถ์ ์ฐ๊ด์ง์ด์ ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ธฐ๋ณธํค๋ ์ธ๋ฑ์ค๋ผ๊ณ ํ ์ ์์๊น์? ๊ทธ๋ ์ง ์๋ค๋ฉด, ์ธ๋ฑ์ค์ ๊ธฐ๋ณธํค๋ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์?
- ๊ทธ๋ ๋ค๋ฉด ์ธ๋ํค๋์?
- ์ธ๋ฑ์ค๊ฐ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ ์ฅ์๋ ์ํฅ์ ๋ฏธ์น๋์? ๊ทธ๋ ์ง ์๋ค๋ฉด, ๋ฐ์ดํฐ๋ ์ด๋ค ์์๋ก ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ฅ๋๋์?
- ์ฐ๋ฆฌ๊ฐ ์๋ RDB๊ฐ ์๋ NoSQL (ex. Redis, MongoDB ๋ฑ)๋ ์ธ๋ฑ์ค๋ฅผ ๊ฐ๊ณ ์๋์? ๋ง์ฝ ์๋ค๋ฉด, RDB์ ์ธ๋ฑ์ค์๋ ์ด๋ค ์ฐจ์ด๊ฐ ์์๊น์?
- (A, B) ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ ํ ์ด๋ธ์์, A ์กฐ๊ฑด ์์ด B ์กฐ๊ฑด๋ง ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฒญํ์ต๋๋ค. ํด๋น ์ฟผ๋ฆฌ๋ ์ธ๋ฑ์ค๋ฅผ ํ๊น์?
- ์ด๋ฌํ ๋ถ์ฐ ํ๊ฒฝ์์ , ํธ๋์ญ์ ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ ์์๊น์?
- ๋ง์คํฐ, ์ฌ๋ ์ด๋ธ ๋ฐ์ดํฐ ๋๊ธฐํ ์ ๊น์ง์ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ์งํค๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ด ์์๊น์?
- ๋ค์ค ํธ๋์ญ์ ์ํฉ์์์ Deadlock ์ํฉ๊ณผ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ์ค๋ฉ ๋ฐฉ์์ ๋ฌด์์ธ๊ฐ์? ๋ง์ฝ ๋ณธ์ธ์ด DB๋ฅผ ๋ถ์ฐํด์ ๊ด๋ฆฌํด์ผ ํ๋ค๋ฉด, ๋ ํ๋ฆฌ์ผ์ด์ ๋ฐฉ์๊ณผ ์ค๋ฉ ๋ฐฉ์ ์ค ์ด๋ค ๊ฒ์ ์ฌ์ฉํ ๊ฒ ๊ฐ๋์?
- ์ ๊ทํ๋ฅผ ํ์ง ์์ ๊ฒฝ์ฐ, ๋ฐ์ํ ์ ์๋ ์ด์ํ์์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ฐ ์ ๊ทํ์ ๋ํด, ๊ทธ ์ ๊ทํ๊ฐ ์งํ๋๊ธฐ ์ /ํ์ ํ ์ด๋ธ์ ๋ณํ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ์ ๊ทํ๊ฐ ๋ฌด์กฐ๊ฑด ์ข์๊ฐ์? ๊ทธ๋ ์ง ์๋ค๋ฉด, ์ด๋ค ์ํฉ์์ ์ญ์ ๊ทํ๋ฅผ ํ๋๊ฒ ์ข์์ง ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ทธ๋ ๋ค๋ฉด, View์ ๊ฐ์ ์์ ํด๋ ์ค์ ํ ์ด๋ธ์๋ ๋ฐ์๋์ง ์๋์?
- ์ฌ์ค, JOIN์ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๊ธฐ์ ๋ด๋ถ์ ์ผ๋ก ๋ค์ํ ๊ตฌํ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ ์์์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ทธ๋ ๋ค๋ฉด ์ ๋ ฅํ ์ฟผ๋ฆฌ์์ ์ด๋ค ๊ตฌํ ๋ฐฉ์์ ์ฌ์ฉํ๋์ง๋ ์ด๋ป๊ฒ ์ ์ ์๋์?
- ์ ์ง๋ฌธ๋ค์ ํตํด ์ธ๋ฑ์ค์ ์ค์์ฑ์ ์ ์ ์์๋๋ฐ, ๊ทธ๋ ๋ค๋ฉด JOIN์ ์ฑ๋ฅ๋ ์ธ๋ฑ์ค์ ์ ๋ฌด์ ์ํฅ์ ๋ฐ๋์?
- 3์ค ์กฐ์ธ ๋ถํฐ๋ ๋์ ๋ฐฉ์์ด ์ฝ๊ฐ ๋ฐ๋๋๋ค. ์ด๋ป๊ฒ ๋์ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฐฉ์์ด ์ฑ๋ฅ์ ์ด๋ ํ ์ํฅ์ ์ฃผ๋์ง ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ทธ๋ ๋ค๋ฉด, B+Tree๊ฐ B-Tree์ ๋นํด ๋ฐ๋์ ์ข๋ค๊ณ ํ ์ ์์๊น์? ๊ทธ๋ ์ง ์๋ค๋ฉด ์ด๋ค ๋จ์ ์ด ์์๊น์?
- DB์์ RBT๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , B-Tree/B+Tree๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ์์๊น์?
- ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์ธ๋ฑ์ค๊ฐ ์๋ค๊ณ ํ ๋, ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์๋ํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ์ด๋ป๊ฒ ๋ ๊น์? B-Tree/B+Tree์ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ช ํด ์ฃผ์ธ์.
- Optimistic Lock/Pessimistic Lock์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ๋ฌผ๋ฆฌ์ ์ธ Lock์ ๊ฑด๋ค๋ฉด, ๋ง์ฝ ์ด๋ฅผ ์ํ์ค์ธ ์์ฒญ์ ๋ฌธ์ ๊ฐ ์๊ฒจ ๋น์ ์ ์ข ๋ฃ๋๋ฉด Lock์ด ์ ๋ ํด์ ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค. DB๋ ์ด๋ฅผ ์ํ ํด๊ฒฐ์ฑ ์ด ์๋์? ์๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๊น์?
- DB ์๋ฒ๋ฅผ ๋ถ์ฐํ์ง ์๊ณ , ํธ๋ํฝ์ ๊ฐ๋นํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น์?
- Schema์ 3๊ณ์ธต์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- DB์ Client๊ฐ Connection์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋์ง ์ค๋ช ํด ์ฃผ์ธ์.
- ๊ฐ๋์ ์ธ๋ฑ์ค๋ฅผ ํ๋ ์ฟผ๋ฆฌ์์๋ Table Full Scan ๋ฐฉ์์ผ๋ก ๋์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ ๊ทธ๋ด๊น์?
- COUNT (๊ฐ์๋ฅผ ์ธ๋ ์ฟผ๋ฆฌ) ๋ ์ด๋ป๊ฒ ๋์ํ๋์? COUNT(1), COUNT(*), COUNT(column) ์ ๋์ ๊ณผ์ ์๋ ์ฐจ์ด๊ฐ ์๋์?
- ๊ทธ๋ ๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ์๋ฒ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ฌ์ฉํ๋ ์๋ง์ DB ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น์?