Skip to content

Latest commit

ย 

History

History
91 lines (60 loc) ยท 6.56 KB

File metadata and controls

91 lines (60 loc) ยท 6.56 KB

1. Key (๊ธฐ๋ณธํ‚ค, ํ›„๋ณดํ‚ค, ์Šˆํผํ‚ค ๋“ฑ๋“ฑ...) ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ๊ธฐ๋ณธํ‚ค๋Š” ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?
  • ์‚ฌ์‹ค MySQL์˜ ๊ฒฝ์šฐ, ๊ธฐ๋ณธํ‚ค๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์•„๋„ ํ…Œ์ด๋ธ”์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ด๊ฒŒ ๊ฐ€๋Šฅํ•œ ๊ฑธ๊นŒ์š”?
  • ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ NULL์ด ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‚˜์š”?
  • ์–ด๋–ค ์นผ๋Ÿผ์˜ ์ •์˜์— UNIQUE ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ์ด ์นผ๋Ÿผ์„ ํ™œ์šฉํ•œ ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ์€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ๊ณผ ๋น„๊ตํ•ด์„œ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ์š”?

2. RDB์™€ NoSQL์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • NoSQL์˜ ๊ฐ•์ ๊ณผ, ์•ฝ์ ์ด ๋ฌด์—‡์ธ๊ฐ€์š”?
  • RDB์˜ ์–ด๋– ํ•œ ํŠน์ง• ๋•Œ๋ฌธ์— NoSQL์— ๋น„ํ•ด ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ๊ฑธ๋ฆด "์ˆ˜" ์žˆ์„๊นŒ์š”? (์ฃผ์˜: ๋ฌด์กฐ๊ฑด NoSQL์ด RDB ๋ณด๋‹ค ๋น ๋ฅด๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํฐ์ผ ๋‚ฉ๋‹ˆ๋‹ค!)
  • NoSQL์„ ํ™œ์šฉํ•œ ๊ฒฝํ—˜์ด ์žˆ๋‚˜์š”? ์žˆ๋‹ค๋ฉด, ์™œ RDB๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น DB๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

3. ํŠธ๋žœ์žญ์…˜์ด ๋ฌด์—‡์ด๊ณ , 3.ACID ์›์น™์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ACID ์›์น™ ์ค‘, Durability๋ฅผ DBMS๋Š” ์–ด๋–ป๊ฒŒ ๋ณด์žฅํ•˜๋‚˜์š”?
  • ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋‚˜์š”? ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
  • ์ฝ๊ธฐ์—๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ฑธ์ง€ ์•Š์•„๋„ ๋ ๊นŒ์š”?

4. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ๋ชจ๋“  DBMS๊ฐ€ 4๊ฐœ์˜ ๋ ˆ๋ฒจ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋‚˜์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?
  • ๋งŒ์•ฝ MySQL์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, (InnoDB ๊ธฐ์ค€) Undo ์˜์—ญ๊ณผ Redo ์˜์—ญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ๊ทธ๋Ÿฐ๋ฐ, ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ํ•˜๋Š” ๊ฑด๊ฐ€์š”?

5. ์ธ๋ฑ์Šค๊ฐ€ ๋ฌด์—‡์ด๊ณ , ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ๋ฑ์Šค๋Š” ์ˆ˜์ •์ด ์žฆ์€ ํ…Œ์ด๋ธ”์—์„  ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๊ถŒํ•ฉ๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ์š”?
  • ์•ž ๊ผฌ๋ฆฌ์งˆ๋ฌธ์— ๋Œ€ํ•ด, ๊ทธ๋ ‡๋‹ค๋ฉด ์ธ๋ฑ์Šค์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ์„ ํƒํ•œ ๊ฐ’์€ ์œ„ ์ •์ฑ…์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ๊ฐ€๋‚˜์š”?
  • ORDER BY/GROUP BY ์—ฐ์‚ฐ์˜ ๋™์ž‘ ๊ณผ์ •์„ ์ธ๋ฑ์Šค์˜ ์กด์žฌ์—ฌ๋ถ€์™€ ์—ฐ๊ด€์ง€์–ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ๊ธฐ๋ณธํ‚ค๋Š” ์ธ๋ฑ์Šค๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ์ธ๋ฑ์Šค์™€ ๊ธฐ๋ณธํ‚ค๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋‚˜์š”?
  • ๊ทธ๋ ‡๋‹ค๋ฉด ์™ธ๋ž˜ํ‚ค๋Š”์š”?
  • ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋‚˜์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ค ์ˆœ์„œ๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ €์žฅ๋˜๋‚˜์š”?
  • ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” RDB๊ฐ€ ์•„๋‹Œ NoSQL (ex. Redis, MongoDB ๋“ฑ)๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‚˜์š”? ๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด, RDB์˜ ์ธ๋ฑ์Šค์™€๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ์š”?
  • (A, B) ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์„ค์ •ํ•œ ํ…Œ์ด๋ธ”์—์„œ, A ์กฐ๊ฑด ์—†์ด B ์กฐ๊ฑด๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฟผ๋ฆฌ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํƒˆ๊นŒ์š”?

6. RDBMS, NoSQL์—์„œ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ง/๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ์ด๋Ÿฌํ•œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„ , ํŠธ๋žœ์žญ์…˜์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?
  • ๋งˆ์Šคํ„ฐ, ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์ „ ๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ์ง€ํ‚ค๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?
  • ๋‹ค์ค‘ ํŠธ๋žœ์žญ์…˜ ์ƒํ™ฉ์—์„œ์˜ Deadlock ์ƒํ™ฉ๊ณผ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ์ƒค๋”ฉ ๋ฐฉ์‹์€ ๋ฌด์—‡์ธ๊ฐ€์š”? ๋งŒ์•ฝ ๋ณธ์ธ์ด DB๋ฅผ ๋ถ„์‚ฐํ•ด์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉ์‹๊ณผ ์ƒค๋”ฉ ๋ฐฉ์‹ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๊ฒƒ ๊ฐ™๋‚˜์š”?

7. ์ •๊ทœํ™”๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ์ •๊ทœํ™”๋ฅผ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ƒํ˜„์ƒ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ๊ฐ ์ •๊ทœํ™”์— ๋Œ€ํ•ด, ๊ทธ ์ •๊ทœํ™”๊ฐ€ ์ง„ํ–‰๋˜๊ธฐ ์ „/ํ›„์˜ ํ…Œ์ด๋ธ”์˜ ๋ณ€ํ™”์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ์ •๊ทœํ™”๊ฐ€ ๋ฌด์กฐ๊ฑด ์ข‹์€๊ฐ€์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์—ญ์ •๊ทœํ™”๋ฅผ ํ•˜๋Š”๊ฒŒ ์ข‹์€์ง€ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

8. View๊ฐ€ ๋ฌด์—‡์ด๊ณ , ์–ธ์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

  • ๊ทธ๋ ‡๋‹ค๋ฉด, View์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ด๋„ ์‹ค์ œ ํ…Œ์ด๋ธ”์—๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š๋‚˜์š”?

9. DB Join์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ์‚ฌ์‹ค, JOIN์€ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ธฐ์— ๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์˜ˆ์‹œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ๊ทธ๋ ‡๋‹ค๋ฉด ์ž…๋ ฅํ•œ ์ฟผ๋ฆฌ์—์„œ ์–ด๋–ค ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š”์ง€๋Š” ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‚˜์š”?
  • ์•ž ์งˆ๋ฌธ๋“ค์„ ํ†ตํ•ด ์ธ๋ฑ์Šค์˜ ์ค‘์š”์„ฑ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ๋ ‡๋‹ค๋ฉด JOIN์˜ ์„ฑ๋Šฅ๋„ ์ธ๋ฑ์Šค์˜ ์œ ๋ฌด์˜ ์˜ํ–ฅ์„ ๋ฐ›๋‚˜์š”?
  • 3์ค‘ ์กฐ์ธ ๋ถ€ํ„ฐ๋Š” ๋™์ž‘ ๋ฐฉ์‹์ด ์•ฝ๊ฐ„ ๋ฐ”๋€๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฐฉ์‹์ด ์„ฑ๋Šฅ์— ์–ด๋– ํ•œ ์˜ํ–ฅ์„ ์ฃผ๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

10. B-Tree์™€ B+Tree์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ๊ทธ๋ ‡๋‹ค๋ฉด, B+Tree๊ฐ€ B-Tree์— ๋น„ํ•ด ๋ฐ˜๋“œ์‹œ ์ข‹๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์–ด๋–ค ๋‹จ์ ์ด ์žˆ์„๊นŒ์š”?
  • DB์—์„œ RBT๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , B-Tree/B+Tree๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”?
  • ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์‹œ๋„ํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? B-Tree/B+Tree์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

11. DB Locking์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • Optimistic Lock/Pessimistic Lock์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.
  • ๋ฌผ๋ฆฌ์ ์ธ Lock์„ ๊ฑด๋‹ค๋ฉด, ๋งŒ์•ฝ ์ด๋ฅผ ์ˆ˜ํ–‰์ค‘์ธ ์š”์ฒญ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜๋ฉด Lock์ด ์ ˆ๋Œ€ ํ•ด์ œ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. DB๋Š” ์ด๋ฅผ ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋‚˜์š”? ์—†๋‹ค๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์„๊นŒ์š”?

12. ํŠธ๋ž˜ํ”ฝ์ด ๋†’์•„์งˆ ๋•Œ, DB๋Š” ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

  • DB ์„œ๋ฒ„๋ฅผ ๋ถ„์‚ฐํ•˜์ง€ ์•Š๊ณ , ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ์š”?

13. Schema๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • Schema์˜ 3๊ณ„์ธต์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

14. DB์˜ Connection Pool์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • DB์™€ Client๊ฐ€ Connection์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

15. Table Full Scan, Index Range Scan์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ๊ฐ€๋”์€ ์ธ๋ฑ์Šค๋ฅผ ํƒ€๋Š” ์ฟผ๋ฆฌ์ž„์—๋„ Table Full Scan ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ์š”?
  • COUNT (๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ์ฟผ๋ฆฌ) ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜์š”? COUNT(1), COUNT(*), COUNT(column) ์˜ ๋™์ž‘ ๊ณผ์ •์—๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‚˜์š”?

16. SQL Injection์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ๊ทธ๋ ‡๋‹ค๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜๋งŽ์€ DB ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ๊นŒ์š”?