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

AppMaster ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋Š” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ ์ ˆํ•œ ๊ธฐ๋Šฅ์„ ๋ณด์žฅํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. AppMaster ๋Š” ๊ณ ํ’ˆ์งˆ ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋Š” ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด AppMaster ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋žต์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์ž‘๋™์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ์˜ ๊ธฐ๋ณธ ๊ธฐ์ˆ , ๊ตฌํ˜„ ๋ฐ ๊ด€๋ฆฌ๋Š” ์‚ฌ์šฉ ์ค‘์ธ DBMS(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ)์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ํ”Œ๋žซํผ๊ณผ ํ˜ธํ™˜๋˜๋Š” Postgresql ๊ณผ ๊ฐ™์€ ํŠน์ • DBMS ์‹œ์Šคํ…œ์€ ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ, ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ ๋ฐ ์ถฉ๋Œ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด WAL(Write-Ahead Logging)์„ ๋น„๋กฏํ•œ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ •๊ธฐ์ ์ธ ๋กœ๊ทธ ๋ฐฑ์—… ๋ฐ ๊ฒ€์‚ฌ์  ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๊ฐ™์€ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ๊ด€๋ฆฌ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ตœ์ ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ๋ฐ ๊ธฐ๋Šฅ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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