๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐฑ์—”๋“œ

PostgreSQL์˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€๊ณผ ๋น„๊ด€์  ๋ฝ

by sh119 2025. 4. 20.

PostgreSQL์˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์— ๋Œ€ํ•ด

PostgreSQL์˜ ๊ธฐ๋ณธ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ READ COMMITTED ์ด๋‹ค.

 

READ COMMITTED๋ž€ ?

๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ์ปค๋ฐ‹ํ•˜๋ฉด, ํ˜„์žฌ ํŠธ๋žœ์žญ์…˜ ๋„์ค‘์—๋„ ์ตœ์‹  ์ปค๋ฐ‹๋œ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ฆ‰, ํ˜„์žฌ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ๋™์ผํ•œ row๋ฅผ ๋‘ ๋ฒˆ ์ด์ƒ ์กฐํšŒ ํ–ˆ์„๋•Œ, ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

 

ํ•œ์ •๋œ ์ˆ˜๋Ÿ‰์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒ๋งคํ•˜๋Š”, ํ•œ์ •ํŒ๋งค ์ด๋ฒคํŠธ์—์„œ READ COMMITTED ์—ฌ์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ผ๊นŒ?

* ๋ฐ”๋กœ ์žฌ๊ณ ๊ฐ€ ์ค‘๋ณต ๊ฐ์†Œ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. *

  • ์˜ˆ๋ฅผ ๋“ค์–ด A ์™€ B๊ฐ€ ๋™์‹œ์— ์žฌ๊ณ ๋ฅผ ์กฐํšŒํ•˜์—ฌ ๋‘˜ ๋‹ค ๋‚จ์€ ์žฌ๊ณ ๊ฐ€ ํ•œ ๊ฐœ ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ๋‘˜ ๋‹ค ์ฃผ๋ฌธ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๊ณ , ๋‚จ์€ ์žฌ๊ณ ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์ฃผ๋ฌธ์ด ๋ฐœํ–‰๋  ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ ๋™์‹œ ์ ‘๊ทผ ์‹œ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ๊นจ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์›์ธ์€ ํŠธ๋žœ์žญ์…˜์ด ์™„์ „ํžˆ ๋๋‚˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋“ค๋„ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ

→ “๋ฝ”์„ ๊ฑธ์–ด ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ํ•œ ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ , ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ฒŒ ํ•˜์—ฌ ๋™์‹œ์„ฑ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋ฉด ๋œ๋‹ค.

 

๋ฝ์„ ์ ์šฉํ•˜์ง€ ์•Š์•˜์„๋•Œ์™€ ์ ์šฉํ–ˆ์„๋•Œ ๋น„๊ต ํ…Œ์ŠคํŠธ :

๋ฝ๊ณผ ํŠธ๋žœ์žญ์…˜์ด ์ ์šฉ์ด ์•ˆ๋œ ์ƒํƒœ๋กœ ํ…Œ์ŠคํŠธ :


์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋‘” ๋•๋ถ„์— ์ตœ์ข… ์žฌ๊ณ ๋Š” 0์ด์˜€์ง€๋งŒ,

100๊ฐœ์˜ ์žฌ๊ณ ๋ฅผ ํ›จ์”ฌ ์ดˆ๊ณผํ•˜๋Š” 1083๊ฐœ์˜ ์ฃผ๋ฌธ์ด ์ด๋ฃจ์–ด ์กŒ๋‹ค.

 

 

๋น„๊ด€์  ๋ฝ๊ณผ ํŠธ๋žœ์žญ์…˜์ด ์ ์šฉ๋œ ์ƒํƒœ๋กœ ํ…Œ์ŠคํŠธ :

 

์‹œ์ž‘ ์žฌ๊ณ ์™€ ์„ฑ๊ณต ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ™•ํžˆ ์ผ์น˜ํ–ˆ๊ณ , ์ •ํ•ฉ์„ฑ์ด ๋ณด์žฅ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๋ฝ์„ ์ ์šฉํ–ˆ์„ ๊ฒฝ์šฐ, ์ „์ฒด ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์•ฝ 1.5๋ฐฐ ๋” ๊ฑธ๋ ธ๋‹ค.

 

PostgreSQL์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฝ์„ ์–ป๊ธฐ ์œ„ํ•ด ๋ฌดํ•œํžˆ ๋Œ€๊ธฐํ•˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์–ด์„œ

์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์™€ ๋น ๋ฅธ ์‘๋‹ต์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค์—์„œ๋Š” ์‹ฌ๊ฐํ•œ ์ง€์—ฐ์„ ์œ ๋ฐœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด lock_timeout์„ ์„ค์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ,

ํ•œ์ •ํŒ๋งค ์ด๋ฒคํŠธ์ฒ˜๋Ÿผ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์ˆœ๋ฒˆ์•ˆ์— ๋“ค์–ด์™”๋Š”๋ฐ timeout ๋•Œ๋ฌธ์— ์ฃผ๋ฌธ์„ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ˆœ๋ฒˆ์ด ๋’ค๋กœ ๋ฐ€๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์–ด timeout ์„ค์ •์ด ์˜คํžˆ๋ ค ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ๋น„๊ด€์  ๋ฝ์˜ ์‹œ๊ฐ„์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ Redis ๋„์ž…ํ•  ์˜ˆ์ •์ด๋‹ค.

'๋ฐฑ์—”๋“œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

SOLID ์›์น™๊ณผ ์‚ฌ์šฉ ์˜ˆ์‹œ  (0) 2025.04.16
Docker๋ž€?  (0) 2025.02.21
Docker & CI/CD - 1  (1) 2025.02.11