Tiny Bunny
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/DB

[DB] ๋กœํ‚น(Locking) ๋‹จ์œ„ , ๋กœํ‚น๊ณผ ๋ณ‘ํ–‰์„ฑ, DB ๋กœํ‚น ๊ธฐ๋ฒ•

by soonybutter 2025. 2. 26.
728x90


๋กœํ‚น ๋‹จ์œ„๋ž€?

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

๋งˆ์น˜ ์šด์˜์ฒด์ œ์˜ ์Šค๋ ˆ๋“œ ์Šค์ผ€์ค„๋ง์ฒ˜๋Ÿผ,
ํ•œ ๋ฒˆ์— ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๋‹จ์œ„๋ฅผ โ€˜๋กœํ‚น ๋‹จ์œ„โ€™๋ผ๊ณ  ํ•œ๋‹ค.

์‹ค์งˆ์ ์ธ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด,
ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํŒ€์›๊ณผ DB๋ฅผ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ์ผ์€ ๋นˆ๋ฒˆํ•˜๋‹ค.
๋งŒ์•ฝ ๋‚ด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŒ€์›๋„ ๋™์‹œ์— ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑด๋“ค๊ฒŒ ๋  ๊ฒฝ์šฐ, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. โ—๏ธ


์ด ๊ฒฝ์šฐ, ๋กœํ‚น๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜๋Š” ๋ฐ์— ์žˆ์–ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์•„๋ž˜์˜ ๋กœํ‚น ๋‹จ์œ„๋ฅผ ์„ค์ •ํ•ด๋ณด์ž.

1) ๋กœํ‚น ๋‹จ์œ„๊ฐ€ โ€˜ํด๋”โ€™ ์ผ ๋•Œ
์ด ๊ฒฝ์šฐ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์–ด๋–ค ํด๋”์˜ ํŒŒ์ผ์„ ์ž‘์—…ํ•  ๋•Œ ๋‹ค๋ฅธ ํŒ€์›์€ ์ด ํด๋”๋ฅผ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค.

2) ๋กœํ‚น ๋‹จ์œ„๊ฐ€ โ€˜ํ”„๋กœ์ ํŠธโ€™ ์ผ ๋•Œ
์ด๋•Œ๋Š” ์šฐ๋ฆฌ ํŒ€์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—… ์ค‘์ผ ๋•Œ, ๋‹ค๋ฅธ ํŒ€์˜ ํ”„๋กœ์ ํŠธ ์ ‘๊ทผ์„ ๋ง‰๋Š” ๊ฒƒ์„ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ๋‹ค.





๋Œ€๋ถ€๋ถ„์˜ DBMS(MySQL, PostgreSQL, Oracle ๋“ฑ)์—์„œ๋Š” ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„ ๋ฝ(Row Lock) ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘ํ–‰์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ์กฐ์ ˆํ•œ๋‹ค.

1) ํ…Œ์ด๋ธ” ๋ฝ
-  ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ์ž ๊ธˆ
-  ๋ณ‘ํ–‰์„ฑ์ด ๋‚ฎ์ง€๋งŒ ๋‹จ์ˆœํ•œ ์ž‘์—…์— ์ ํ•ฉ

2) ํŽ˜์ด์ง€ ๋ฝ
- ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€(๋ฐ์ดํ„ฐ ๋ธ”๋ก) ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ํŽ˜์ด์ง€(๋ธ”๋ก) ๋งŒ ์ž ๊ธˆ
- ๋ณ‘ํ–‰์„ฑ๊ณผ ๋ฝ ์˜ค๋ฒ„ํ—ค๋“œ์˜ ๊ท ํ˜•

3) ๋ ˆ์ฝ”๋“œ ๋ฝ ๐ŸŒŸ
- ํ–‰(Row) ๋งŒ ์ž ๊ธˆ
- ๋ณ‘ํ–‰์„ฑ์ด ๋†’์ง€๋งŒ ๋ฝ ๊ด€๋ฆฌ ๋น„์šฉ ์ฆ๊ฐ€

4) ํ•„๋“œ ๋ฝ
- ํŠน์ • ์ปฌ๋Ÿผ(column) ๋งŒ ์ž ๊ธˆ
- ๋ณ‘ํ–‰์„ฑ์ด ๊ฐ€์žฅ ๋†’์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ.



๋กœํฌ ๋‹จ์œ„์™€ ๋ณ‘ํ–‰์„ฑ


: ๋ฐ˜๋น„๋ก€

๋กœํฌ ๋‹จ์œ„๊ฐ€ ํด ์ˆ˜๋ก,
๋กœํฌ์˜ ์ˆ˜๋Š” ๊ฐ์†Œ, ์ œ์–ด ๊ธฐ๋ฒ•์ด ๊ฐ„๋‹จํ•ด์ง„๋‹ค.
โžก๏ธ ๋ณ‘ํ–‰์„ฑ์€ ๊ฐ์†Œ , ์˜ค๋ฒ„ํ—ค๋“œ ๊ฐ์†Œ

๋กœํฌ์˜ ๋‹จ์œ„๊ฐ€ ์ž‘์œผ๋ฉด,
๋กœํฌ์˜ ์ˆ˜๋Š” ์ฆ๊ฐ€, ์ œ์–ด ๊ธฐ๋ฒ•์ด ๋ณต์žกํ•ด์ง„๋‹ค.
โžก๏ธ ๋ณ‘ํ–‰์„ฑ์€ ์ฆ๊ฐ€ , ์˜ค๋ฒ„ํ—ค๋“œ ์ฆ๊ฐ€





+
๋ณ‘ํ–‰์„ฑ๊ณผ ๋กœํฌ๋‹จ์œ„ ๊ด€๊ณ„๋Š” ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ธฐ์ถœ ๋‹จ๊ณจ !












728x90

TOP

Designed by ํ‹ฐ์Šคํ† ๋ฆฌ