๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋งฅ๋ฝ์—์„œ ACID ์†์„ฑ์€ ํŠธ๋žœ์žญ์…˜์˜ ์‹ ๋ขฐ์„ฑ๊ณผ ๊ฒฌ๊ณ ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS)์ด ๋ณด์œ ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋ณธ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ACID๋Š” ์›์ž์„ฑ(Atomicity), ์ผ๊ด€์„ฑ(Consistency), ๊ฒฉ๋ฆฌ์„ฑ(Isolation), ๋‚ด๊ตฌ์„ฑ(Durability)์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์•ฝ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์†์„ฑ์ด ์œ ์ง€๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณต์žกํ•œ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ๋˜๋Š” ๋กœ๋“œ๊ฐ€ ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ๋„ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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

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