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

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

AppMasterno-code ํ”Œ๋žซํผ์—์„œ Go ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜์ธ PostgreSQL ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•˜๊ณ  ํšจ์œจ์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์ธ PostgreSQL์€ ๋‹ค์ค‘ ๋ฒ„์ „ ๋™์‹œ์„ฑ ์ œ์–ด(MVCC) ๋ฐ ๋ช…์‹œ์  ์ž ๊ธˆ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋™์‹œ์„ฑ ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ธํ•ด ํŠน์ • ์กฐ๊ฑด์—์„œ๋Š” ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ๊ฐœ์˜ ๋ฆฌ์†Œ์Šค R1๊ณผ R2์—์„œ ์ž‘๋™ํ•˜๋Š” ๋‘ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜ T1๊ณผ T2๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ํŠธ๋žœ์žญ์…˜ T1์€ R1์— ๋Œ€ํ•œ ์ž ๊ธˆ์„ ํš๋“ํ•œ ํ›„ R2 ์ž ๊ธˆ์„ ์‹œ๋„ํ•˜๊ณ , ํŠธ๋žœ์žญ์…˜ T2๋Š” R2์— ๋Œ€ํ•œ ์ž ๊ธˆ์„ ํš๋“ํ•œ ํ›„ R1 ์ž ๊ธˆ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ๋‘ ํŠธ๋žœ์žญ์…˜ ๋ชจ๋‘ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ž ๊ธˆ์„ ํ•ด์ œํ•  ๋•Œ๊นŒ์ง€ ๋ฌด๊ธฐํ•œ ๋Œ€๊ธฐํ•˜์—ฌ ์ˆœํ™˜ ์ข…์†์„ฑ์„ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

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

PostgreSQL์€ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋‚ด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ž ๊ธˆ์„ ์œ ์ง€ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ์ˆœํ™˜ ์ข…์†์„ฑ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๋Š” ๊ต์ฐฉ ์ƒํƒœ ๊ฐ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด PostgreSQL์€ ๊ด€๋ จ๋œ ํŠธ๋žœ์žญ์…˜ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ์ข…๋ฃŒํ•˜์—ฌ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํ•ด์ œํ•˜๊ณ  ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ง„ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํŠธ๋žœ์žญ์…˜์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ์ด์— ๋”ฐ๋ผ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL์˜ ๋‚ด์žฅ ๊ธฐ๋Šฅ ์™ธ์—๋„ AppMaster ์ƒ์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ต์ฐฉ ์ƒํƒœ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ธฐ๋ฐ˜ ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ: ๊ฐ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ์ง€์ •๋œ ์‹œ๊ฐ„ ๋‚ด์— ์™„๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์ž๋™์œผ๋กœ ๋กค๋ฐฑ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์žฅ๊ธฐ ์‹คํ–‰ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ธํ•ด ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.
  • ์žฌ์‹œ๋„ ๋ฉ”์ปค๋‹ˆ์ฆ˜: ๊ต์ฐฉ ์ƒํƒœ๋กœ ์ธํ•ด ์ข…๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์„ ์ž๋™์œผ๋กœ ์žฌ์‹œ๋„ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๋…ผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ „๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ๊ต์ฐฉ์ƒํƒœ๋Š” ๊ณต์œ  ์ž์›์„ ๋†“๊ณ  ๊ฒฝ์Ÿํ•˜๋Š” ๋™์‹œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ธํ•ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žกํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ฐ ๋™์‹œ์„ฑ ์ œ์–ด์˜ ์›์น™์„ ์ดํ•ดํ•˜๊ณ  ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์˜ ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ๊ณผ PostgreSQL์˜ ๋‚ด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๊ต์ฐฉ ์ƒํƒœ์— ๋œ ๋ฏผ๊ฐํ•˜๊ณ  ์›ํ™œํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๊ณ  ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.