[CS] ๐Ÿ“• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค

๊น€์˜ํ•œยท2020๋…„ 10์›” 18์ผ
1

CS

๋ชฉ๋ก ๋ณด๊ธฐ
1/3

๐Ÿ“– ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜์˜€๋Š”๋ฐ ์ด ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ ์ข…์†์„ฑ, ์ค‘๋ณต์„ฑ, ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ“–ํŠน์ง•

  1. ๋ฐ์ดํ„ฐ์˜ ๋…๋ฆฝ์„ฑ
    • ๋ฌผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ๋•Œ ๊ด€๋ จ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ : ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์š”๊ตฌ๋ฅผ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ
    • ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ(๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)
  3. ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ฑ
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋“ค๋งŒ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
  4. ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ
    • ์—ฐ๊ด€๋œ ์ •๋ณด๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌํ•จ(์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ถˆ์ผ์น˜์„ฑ์„ ๋ฐฐ์ œํ•จ)
  5. ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ตœ์†Œํ™”
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ์ž๋ฃŒ์˜ ์ค‘๋ณต๊ณผ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

โšก ๋””์Šคํฌ I/O๋ฅผ ์ค„์ผ ์ˆ˜๋ก ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ์€ ์ข‹์•„์ง„๋‹ค.



๐Ÿ“– Index

๐Ÿ“š ์ธ๋ฑ์Šค๋ž€?

  • ์ธ๋ฑ์Šค๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์ƒ‰์ธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์ฑ…์˜ ๋‚ด์šฉ์ด๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๋ ˆ์ฝ”๋“œ ์ฃผ์†Œ๋Š” ์ธ๋ฑ์Šค ๋ชฉ๋ก์— ์žˆ๋Š” ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์ด๋‹ค.
    ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์œผ๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋‹ˆ๊นŒ ์ปฌ๋Ÿผ์˜ ๊ฐ’๊ณผ ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด๋‘”๋‹ค.
  • DBMS(๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ)์€ ํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. (์ฆ‰, ํƒ์ƒ‰ํ•˜๋Š”๋ฐ๋Š” ๋น ๋ฅด์ง€๋งŒ ๊ฐ’์„ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋Š๋ฆฌ๋‹ค.)

๐Ÿ“š ์ธ๋ฑ์Šค ์ž๋ฃŒ๊ตฌ์กฐ

  1. B-Tree
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๋ณ€ํ˜•ํ•˜์ง€ ์•Š๊ณ  ์›๋ž˜์˜ ๊ฐ’์„ ์ด์šฉํ•ด ์ธ๋ฑ์‹ฑํ•œ๋‹ค.
  2. Hash
    • ์ปฌ๋Ÿผ์˜ ๊ฐ’์œผ๋กœ ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ ์ธ๋ฑ์Šคํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ๊ฒ€์ƒ‰์†๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ’์„ ๋ณ€ํ˜•ํ•ด์„œ ์ธ๋ฑ์‹ฑํ•˜๋ฏ€๋กœ ๊ฐ’์˜ ์ผ๋ถ€๋งŒ์œผ๋กœ ๊ฒ€์ƒ‰ ํ•  ๋•Œ๋Š” hash๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

โšก B-tree๋ณด๋‹ค Hash๊ฐ€ ํšจ์œจ์ ์ผ ๊ฒƒ ๊ฐ™์ง€๋งŒ SELECT ์งˆ์˜์˜ ์กฐ๊ฑด์— ๋ถ€๋“ฑํ˜ธ(<>)๋„ ํฌํ•จ๋˜๋ฏ€๋กœ hash์—์„œ ๋“ฑํ˜ธ(=) ์—ฐ์‚ฐ์ด ์•„๋‹Œ ๋ถ€๋“ฑํ˜ธ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ“š ํด๋Ÿฌ์Šคํ„ฐ

์ธ๋ฑ์Šค์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ธ์ ‘ํ•œ ์žฅ์†Œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฌถ์–ด์„œ ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ ํ‚ค์— ์˜ํ•ด ๋ ˆ์ฝ”๋“œ ์ €์žฅ ์œ„์น˜๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ‚ค๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๐Ÿ“š ์„ฑ๋Šฅ๊ณผ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด INSERT, DELETE, UPDATE ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•  ๋•Œ ๋ณ„๋„์˜ ๊ณผ์ •์ด ์ถ”๊ฐ€๋œ๋‹ค.
INSERT๋Š” ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๊ณ  DELETE๋Š” ์ธ๋ฑ์Šค์— ์กด์žฌํ•˜๋Š” ๊ฐ’์€ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ‘œ์‹œ๋กœ ๋‚จ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ row์˜ ์ˆ˜๋Š” ๊ทธ๋Œ€๋กœ์ด๋ฏ€๋กœ ์‹ค์ œ ๋ฐ์ดํ„ฐ์— ๋น„ํ•ด ํ—ˆ์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.



๐Ÿ“– ์ •๊ทœํ™”

๐Ÿ“š ์ •๊ทœํ™”๋ž€?

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ์ž‘์—…์ด๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜๋ฉด ์–ด๋– ํ•œ ํ•จ์ˆ˜์  ์ข…์†์„ฑ์„ ๋งŒ์กฑํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ์ •๊ทœํ˜•์ด ์ •์˜๋˜๊ณ  ๊ทธ ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜์„ ๋‚˜๋ˆ„์–ด์„œ ๋งŒ์กฑํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ์ž‘์—…์ด๋‹ค.
  • ํ•จ์ˆ˜์  ์ข…์†์„ฑ : ์†์„ฑ๋“ค ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„๋กœ๋ถ€ํ„ฐ ์œ ๋„๋˜๋Š” ์ œ์•ฝ์กฐ๊ฑด์˜ ์ผ์ข…(X์˜ ๊ฐ’์ด Y์˜ ๊ฐ’์„ ์œ ์ผํ•˜๊ฒŒ ๊ฒฐ์ •ํ•˜๋ฉด X๋Š” Y๋ฅผ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.)
  • ์ •๊ทœํ˜•์˜ ์กฐ๊ฑด
    • ๋ถ„ํ•ด์˜ ๋Œ€์ƒ์ธ ๋ถ„ํ•ด ์ง‘ํ•ฉ์€ ๋ฌด์†์‹ค ์กฐ์ธ์„ ๋ณด์žฅํ•ด์•ผ ํ•œ๋‹ค.
    • ๋ถ„ํ•ด ์ง‘ํ•ฉ์€ ํ•จ์ˆ˜์  ์ข…์†์„ฑ์„ ๋ณด์กดํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ“š ์ •๊ทœํ™”์˜ ์ข…๋ฅ˜

  • ์ œ 1 ์ •๊ทœํ˜•
    • ์†์„ฑ์˜ ๋„๋ฉ”์ธ์ด ์˜ค์ง ์›์ž ๊ฐ’(ํ•˜๋‚˜์˜ ๊ฐ’)๋งŒ์„ ํฌํ•จํ•˜๊ณ , ํŠœํ”Œ์˜ ๋ชจ๋“  ์†์„ฑ์ด ๋„๋ฉ”์ธ์— ์†ํ•˜๋Š” ํ•˜๋‚˜์˜ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ œ 2 ์ •๊ทœํ˜•
    • ์ œ 1 ์ •๊ทœํ˜•์— ์†ํ•˜๋ฉด์„œ ๋ชจ๋“  ๋น„์ฃผ์š” ์†์„ฑ๋“ค์ด ์ฃผ์š” ์†์„ฑ์— ๋Œ€ํ•ด์„œ ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†์ด๋ฉด ๋งŒ์กฑํ•œ๋‹ค.(์™„์ „ ํ•จ์ˆ˜์  ์ข…์† : x -> y ๋ผ๊ณ  ํ•  ๋•Œ, x์˜ ์–ด๋– ํ•œ ์†์„ฑ์ด๋ผ๋„ ์ œ๊ฑฐํ•˜๋ฉด ๋” ์ด์ƒ ํ•จ์ˆ˜์  ์ข…์†์„ฑ์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ. ์ฆ‰, ํ‚ค๊ฐ€ ์•„๋‹Œ ์—ด๋“ค์ด ๊ฐ๊ฐ ํ›„๋ณดํ‚ค์— ๋Œ€ํ•ด ๊ฒฐ์ •๋˜๋Š” ๋ฆด๋ ˆ์ด์…˜ ํ˜•ํƒœ)
  • ์ œ 3 ์ •๊ทœํ˜•
    • ์ œ 2 ์ •๊ทœํ˜•์— ์†ํ•˜๋ฉด์„œ ์–ด๋– ํ•œ ๋น„์ฃผ์š” ์†์„ฑ๋„ ๊ธฐ๋ณธํ‚ค์— ๋Œ€ํ•ด์„œ ์ดํ–‰์ ์œผ๋กœ ์ข…์†๋˜์ง€ ์•Š์œผ๋ฉด ๋งŒ์กฑํ•œ๋‹ค.(์ดํ–‰ ํ•จ์ˆ˜์  ์ข…์† : x -> y , y -> z ์˜ ๊ฒฝ์šฐ์— x -> z๋ฅผ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„. ์ฆ‰, ๋น„์ฃผ์š” ์†์„ฑ์ด ๋น„์ฃผ์š” ์†์„ฑ์— ์˜ํ•ด ์ข…์†๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†๋Š” ๋ฆด๋ ˆ์ด์…˜ ํ˜•ํƒœ)
  • BCNF ์ •๊ทœํ˜•
    • ์ œ 3 ์ •๊ทœํ˜•์— ์†ํ•˜๋ฉด์„œ 3 ์ •๊ทœํ˜•์„ ๋ณด์™„ํ•˜๋Š” ์ •๊ทœํ˜•์œผ๋กœ, ํ›„๋ณดํ‚ค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ์ œ 3 ์ •๊ทœํ˜•์„ ๋งŒ์กฑ์‹œํ‚ค์ง€๋งŒ ์ด์ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
      ๋ชจ๋“  ๊ฒฐ์ •์ž(์ฃผ์š”์†์„ฑ??)๊ฐ€ ํ›„๋ณดํ‚ค ์ง‘ํ•ฉ์— ์†ํ•˜๋ฉด ๋งŒ์กฑํ•œ๋‹ค.

๐Ÿ“š ์ •๊ทœํ™”์˜ ์žฅ์ 

  • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด์ƒ ํ˜„์ƒ๋“ค์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด์ƒ ํ˜„์ƒ
      1. ์‚ฝ์ž… ์ด์ƒ : ์›ํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ฐ€ ์‚ฝ์ž…, ์‚ฝ์ž…ํ•˜๋Š”๋ฐ ์ž๋ฃŒ๊ฐ€ ๋ถ€์กฑํ•ด ์‚ฝ์ž…x
      2. ์‚ญ์ œ ์ด์ƒ : ํ•˜๋‚˜์˜ ์ž๋ฃŒ๋งŒ ์‚ญ์ œํ–ˆ์„ ๋•Œ ๊ทธ ์ž๋ฃŒ๊ฐ€ ํฌํ•จ๋œ ํŠœํ”Œ ์ „์ฒด๊ฐ€ ์‚ญ์ œ๋จ(์›ํ•˜์ง€ ์•Š๋Š” ์ •๋ณด ์†์‹ค)
      3. ๊ฐฑ์‹  ์ด์ƒ : ์ •ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ผ๋ถ€์˜ ํŠœํ”Œ๋งŒ ๊ฐฑ์‹ ๋˜์–ด ์ •๋ณด๊ฐ€ ์ผ๊ด€์„ฑ์ด ์—†์–ด์ง
  • ์—ฐ๋™๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ตœ์†Œํ•œ์˜ ์˜ํ–ฅ๋งŒ ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ค์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆ˜๋ช…์„ ์—ฐ์žฅ์‹œํ‚จ๋‹ค.

๐Ÿ“š ๋‹จ์ 

  • ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ์—ฐ์‚ฐ(JOIN ์—ฐ์‚ฐ)์ด ๋งŽ์•„์ง„๋‹ค. ์ด๋กœ ์ธํ•ด์„œ ์‘๋‹ต ์‹œ๊ฐ„์ด ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค.(๋นจ๋ผ์งˆ ์ˆ˜๋„, ๋Š๋ ค์งˆ ์ˆ˜๋„ ์žˆ์Œ)

    โšก ๋Œ€์‘์ฑ… : ๋ฐ˜์ •๊ทœํ™”

    • ์ •๊ทœํ™”๋œ ์†์„ฑ, ๊ด€๊ณ„๋ฅผ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐ ๊ฐœ๋ฐœ๊ณผ ๋‹จ์ˆœํ™”๋ฅผ ์œ„ํ•ด ํ†ตํ•ฉ, ๋ถ„๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.
    • ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ๊ฒƒ์ด ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.(but, ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์‘๋‹ต ์‹œ๊ฐ„์ด ๋Šฆ์–ด์ง„๋‹ค.)


๐Ÿ“– ํŠธ๋žœ์žญ์…˜

๐Ÿ“š ํŠธ๋žœ์žญ์…˜์ด๋ž€?

์ž‘์—…์˜ ์™„์ „์„ฑ์„ ๋ณด์žฅํ•ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ์…‹์„ ๋ชจ๋‘ ์™„๋ฒฝํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ์—๋Š” ์› ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•ด์„œ ์ž‘์—…์˜ ์ผ๋ถ€๋งŒ ์ ์šฉ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

โšก ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ๋Š” ์ž‘์—…์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ  ์‹œ์Šคํ…œ์˜ ์ž…์žฅ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ ‘๊ทผ ๋˜๋Š” ๋ณ€๊ฒฝํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹จ์œ„๊ฐ€ ๋œ๋‹ค.

๐Ÿ“š ํŠธ๋žœ์žญ์…˜๊ณผ Lock

์ด ๋‘˜์€ ์„œ๋กœ ๋น„์Šทํ•œ ๊ฐœ๋… ๊ฐ™์ง€๋งŒ ์‚ฌ์‹ค ์ž ๊ธˆ์€ ๋™์‹œ์„ฑ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๊ณ  ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

  • Lock : ์—ฌ๋Ÿฌ ์ปค๋„ฅ์…˜์—์„œ ๋™์‹œ์— ๋™์ผํ•œ ์ž์›์„ ์š”์ฒญํ•  ๊ฒฝ์šฐ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์‹œ์ ์—๋Š” ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜๋งŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• 
  • ํŠธ๋žœ์žญ์…˜ : ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ์…‹ ์ž์ฒด๊ฐ€ 100% ์ ์šฉ๋˜๊ฑฐ๋‚˜ ์•„๋ฌด๊ฒƒ๋„ ์ ์šฉ๋˜์ง€ ์•Š์•„์•ผ ํ•จ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ

๐Ÿ“ ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ

ํŠธ๋žœ์žญ์…˜์€ ACID๋ผ๋Š” 4๊ฐ€์ง€ ํŠน์„ฑ์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

  1. ์›์ž์„ฑ(Atomicity) : ํŠธ๋žœ์žญ์…˜ ์ค‘๊ฐ„์— ์–ด๋– ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜์— ํ•ด๋‹นํ•˜๋Š” ์–ด๋– ํ•œ ์ž‘์—… ๋‚ด์šฉ๋„ ์ˆ˜ํ–‰๋˜์–ด์„œ๋Š” ์•ˆ๋˜๋ฉฐ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋งŒ ๋ชจ๋“  ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

  2. ์ผ๊ด€์„ฑ(Consistenct) : ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋œ ๋‹ค์Œ์˜ ์ƒํƒœ์—์„œ๋„ ํŠธ๋žœ์žญ์…˜์ด ์ผ์–ด๋‚˜๊ธฐ ์ „์˜ ์ƒํ™ฉ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•ด์•ผ ํ•œ๋‹ค.

  3. ๊ณ ๋ฆฝ์„ฑ(Isolation) : ๊ฐ๊ฐ์˜ ํŠธ๋žœ์žญ์…˜์€ ์„œ๋กœ ๊ฐ„์„ญ์—†์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

  4. ์ง€์†์„ฑ(Durability) : ํŠธ๋žœ์žญ์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ ๋‹ค์Œ์—๋Š” ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ž‘์—…์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

๐Ÿ“ ํŠธ๋žœ์žญ์…˜์˜ ์ƒํƒœ

  • Active
    • ํŠธ๋žœ์žญ์…˜์˜ ํ™œ๋™ ์ƒํƒœ
    • ํŠธ๋ž˜์žญ์…˜์ด ์‹คํ–‰์ค‘์ด๋ฉฐ ๋™์ž‘์ค‘์ธ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.
  • Failed
    • ํŠธ๋žœ์žญ์…˜ ์‹คํŒจ ์ƒํƒœ
    • ํŠธ๋žœ์žญ์…˜์ด ๋” ์ด์ƒ ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰ ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.
  • Partially Committed
    • ํŠธ๋žœ์žญ์…˜์˜ Commit ๋ช…๋ น์ด ๋„์ฐฉํ•œ ์ƒํƒœ
    • ํŠธ๋žœ์žญ์…˜์ด commit ์ด์ „ sql๋ฌธ์ด ์ˆ˜ํ–‰๋˜๊ณ  commit๋งŒ ๋‚จ์€ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.
  • Committed
    • ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ ์ƒํƒœ
    • ํŠธ๋žœ์žญ์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.
  • Aborted
    • ํŠธ๋ž™์žญ์…˜ ์ทจ์†Œ ์ƒํƒœ
    • ํŠธ๋žœ์žญ์…˜์ด ์ทจ์†Œ๋˜๊ณ  ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ด์ „ ๋ฐ์ดํ„ฐ๋กœ ๋Œ์•„๊ฐ„ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.

โšก Partially Committed์™€ Committed์˜ ์ฐจ์ด์ 
Commit ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์ƒํƒœ๋Š” Partial Committed์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์ดํ›„ Commit์„ ๋ฌธ์ œ์—†์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด Committed์ƒํƒœ๋กœ ์ „์ด๋˜๊ณ , ๋งŒ์•ฝ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Failed์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
์ฆ‰, Partial Committed๋Š” Commit์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ๋ฅผ ๋œปํ•˜๊ณ 
Committed๋Š” Commit์„ ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒํ•œ ์ƒํƒœ๋ฅผ ๋œปํ•œ๋‹ค.

๐Ÿ’Š ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•  ์ 
๊ผญ ํ•„์š”ํ•œ ์ตœ์†Œ์˜ ์ฝ”๋“œ์—๋งŒ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.(ํŠธ๋žœ์žญ์…˜์˜ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”)
๊ทธ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜์€ ๊ฐœ์ˆ˜๊ฐ€ ์ œํ•œ์ ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ ๋‹จ์œ„ ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ฅ์…˜์„ ์†Œ์œ ํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฌ์œ  ์ปค๋„ฅ์…˜์˜ ๊ฐœ์ˆ˜๋Š” ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฐ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ปค๋„ฅ์…˜์„ ๊ฐ€์ ธ๊ฐ€๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค.



๐Ÿ“– ๊ต์ฐฉ์ƒํƒœ

๐Ÿ“š ๊ต์ฐฉ์ƒํƒœ๋ž€(deadlock)?

๋‘ ๊ฐœ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ํŠน์ • ์ž์›์˜ ์ž ๊ธˆ(Lock)์„ ํš๋“ํ•œ ์ฑ„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž ๊ธˆ์„ ์š”๊ตฌํ•˜๋ฉด ์•„๋ฌด๋ฆฌ ๊ธฐ๋‹ค๋ ค๋„ ์ƒํ™ฉ์ด ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ์ƒํƒœ๊ฐ€ ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋œปํ•œ๋‹ค.
๊ฐฑ์‹ ์—ฐ์‚ฐ(Insert, Update, Delete)๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž ๊ธˆ์„ ํš๋“ํ•œ๋‹ค.

โšก ์˜ˆ์‹œ

ํŠธ๋žœ์žญ์…˜ 1์ด ํ…Œ์ด๋ธ” B์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ ์ž ๊ธˆ์„ ์–ป๊ณ  ํŠธ๋žœ์žญ์…˜ 2๋„ ํ…Œ์ด๋ธ” A์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ ์ž ๊ธˆ์„ ์–ป์—ˆ๋‹ค๊ณ  ํ•˜์ž.
ํŠธ๋žœ์žญ์…˜์„ commitํ•˜์ง€ ์•Š์€ ์ฑ„ ์„œ๋กœ์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์— ๋Œ€ํ•œ ์ž ๊ธˆ์„ ์š”์ฒญํ•˜๋ฉด Deadlock์ด ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ“ ๊ต์ฐฉ์ƒํƒœ์˜ ๋นˆ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐฉ๋ฒ•

  • ํŠธ๋žœ์žญ์…˜์„ ์ž์ฃผ ์ปค๋ฐ‹ํ•œ๋‹ค.
  • ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•œ๋‹ค.
  • ์ฝ๊ธฐ ์ž ๊ธˆ ํš๋“(SELECT ~ FOR UPDATE)์˜ ์‚ฌ์šฉ์„ ํ”ผํ•œ๋‹ค.
  • ํ…Œ์ด๋ธ” ๋‹จ์œ„์˜ ์ž ๊ธˆ์„ ํš๋“ํ•ด ๊ฐฑ์‹ ์„ ์ง๋ ฌํ™” ํ•˜๋ฉด ๋™์‹œ์„ฑ์€ ๋–จ์–ด์ง€์ง€๋งŒ ๊ต์ฐฉ์ƒํƒœ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“ ๊ต์ฐฉ์ƒํƒœ ๋ฐฉ์ง€ ํ”„๋กœํ† ์ฝœ

  • ํƒ€์ž„์•„์›ƒ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ํŠธ๋žœ์žญ์…˜ Ti ์‹คํ–‰ ์‹œ, ํƒ€์ž„์•„์›ƒ ๊ธฐ๊ฐ„(timeout interval)์„ ์„ค์ •
    • Ti์‚ฌ lock ํš๋“์„ ์œ„ํ•ด ๋Œ€๊ธฐํ•  ๊ฒฝ์šฐ, ํƒ€์ž„์•„์›ƒ ๊ธฐ๊ฐ„ ๋™์•ˆ๋งŒ ๋Œ€๊ธฐ
    • ํƒ€์ž„์•„์›ƒ ๊ธฐ๊ฐ„์ด ์ง€๋‚˜๋ฉด Ti๋ฅผ ์ฒ ํšŒํ•˜๊ณ  ๋กค๋ฐฑ
    • ์žฅ์ 
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ„๋‹จํ•˜๋‹ค.
      • ์ผ์ • ์‹œ๊ฐ„ ํ›„ ๊ต์ฐฉ์ƒํƒœ๋ฅผ ์ผ์œผํ‚ค๋Š” ํŠธ๋žœ์žญ์…˜์ด ๋ฌด์กฐ๊ฑด ์ทจ์†Œ๋˜๋ฏ€๋กœ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค.
    • ๋‹จ์ 
      • ์ตœ์ ์˜ ํƒ€์ž„์•„์›ƒ ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๋‹ค.
      • ๊ธฐ์•„ ํ˜„์ƒ์ด ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค.
        โšก ๊ธฐ์•„(starvation) : ๋™์ผํ•œ ํŠธ๋žœ์žญ์…˜์ด ๊ณ„์† ๋กค๋ฐฑ๋˜๋Š” ํ˜„์ƒ
  • ํƒ€์ž„์Šคํƒฌํ”„(TimeStamp) TS๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๋จผ์ € ์‹œ์ž‘ํ•œ ํŠธ๋žœ์žญ์…˜์ด ์–ด๋–ค ๊ฒƒ์ธ์ง€์— ๋”ฐ๋ผ ๋Œ€๊ธฐํ•˜๊ฑฐ๋‚˜ ๋กค๋ฐฑ์‹œํ‚จ๋‹ค.
    • ๊ธฐ์•„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์žฌ์‹œ์ž‘๋˜๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ์˜ค๋ฆฌ์ง€๋„ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์‚ฌ์šฉ
      • Ti์˜ ์˜ค๋ฆฌ์ง€๋„ ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ TS(Ti)๋ผ๊ณ  ํ•  ๋•Œ, Ti๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ TS(Ti)๋กœ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹
  • Wait-Die ๋ฐฉ์‹
    • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ์„ ๋•Œ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜(Wait) ํฌ๊ธฐ(Die)ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
    • ํŠธ๋žœ์žญ์…˜ Ti๊ฐ€ Tj์— ์˜ํ•ด ๋กœํ‚น๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ
      • Ti๊ฐ€ ๋จผ์ € ๋“ค์–ด์˜จ ํŠธ๋žœ์žญ์…˜์ด๋ผ๋ฉด ๋Œ€๊ธฐ(Wait)
      • Ti๊ฐ€ ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ํŠธ๋žœ์žญ์…˜์ด๋ผ๋ฉด ํฌ๊ธฐ(Die)ํ•˜๊ณ , ๋‚˜์ค‘์— ์žฌ์‹œ์ž‘ํ•˜์—ฌ ๋‹ค์‹œ ์š”์ฒญ
        • ์žฌ์‹œ์ž‘ ๋  ๋•Œ, Ti์˜ ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ์˜ค๋ฆฌ์ง€๋„ ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์ธ TS(Ti)๋กœ ๋ถ€์—ฌํ•œ๋‹ค.
  • Wound-Wait ๋ฐฉ์‹
    • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ๋นผ์•—๊ฑฐ๋‚˜(Wound) ๊ธฐ๋‹ค๋ฆฌ๋Š”(Wait) ๋ฐฉ์‹์ด๋‹ค.
    • ํŠธ๋žœ์žญ์…˜ Ti๊ฐ€ Tj์— ์˜ํ•ด ๋กœํ‚น๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ
      • Ti๊ฐ€ ๋จผ์ € ๋“ค์–ด์˜จ ํŠธ๋žœ์žญ์…˜์ด๋ผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์ (Wound)
      • Tj๋Š” ์ฒ ํšŒ์‹œํ‚ค๊ณ , ๋‚˜์ค‘์— ์žฌ์‹œ์ž‘
        • ์žฌ์‹œ์ž‘ ๋  ๋•Œ, Ti์˜ ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ์˜ค๋ฆฌ์ง€๋„ ์‹œ์ž‘ ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์ธ TS(Ti)๋กœ ๋ถ€์—ฌํ•œ๋‹ค.
      • Ti๊ฐ€ ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ํŠธ๋žœ์žญ์…˜์ด๋ผ๋ฉด ๋Œ€๊ธฐ(Wait)

โšก Wound-Wait ๋ฐฉ์‹์ด Wait-Die ๋ฐฉ์‹์— ๋น„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ roll-back ํšŸ์ˆ˜๊ฐ€ ์ ๋‹ค.

๐Ÿ“ ๊ต์ฐฉ์ƒํƒœ ํƒ์ง€ ํ”„๋กœํ† ์ฝœ

  • ๋Œ€๊ธฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ต์ฐฉ ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.
  • ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ธ์„ ๋•Œ, ์ˆœํ™˜๊ตฌ์กฐ(cycle)์ด ์ƒ์„ฑ๋˜๋ฉด ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ
    โšก ํ•ด๊ฒฐ๋ฐฉ์•ˆ
    • ํฌ์ƒํ•  ํŠธ๋žœ์žญ์…˜ ์„ ์ •(victim) : ์ง„ํ–‰๋ฅ , ์‹œ์ž‘์‹œ๊ฐ„, ์—ฐ์‚ฐ๋Ÿ‰ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ตœ์†Œ๋น„์šฉ ํŠธ๋žœ์žญ์…˜์„ ์„ ์ •ํ•œ๋‹ค.
    • ํฌ์ƒํ•  ํŠธ๋žœ์žญ์…˜์„ ์™„์ „ํ•˜๊ฒŒ ๋กค๋ฐฑ : ์ด ๋•Œ, ๊ธฐ์•„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ธฐ์•„ ๋ฐœ์ƒ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด, ๋กค๋ฐฑ ํšŸ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ํฌ์ƒ ํŠธ๋žœ์žญ์…˜ ์„ ์ •์‹œ ๋น„์šฉ ๊ณ„์‚ฐ์— ํฌํ•จ์‹œํ‚จ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ : Tech Interview

0๊ฐœ์˜ ๋Œ“๊ธ€