๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋งฅ๋ฝ์์ ACID ์์ฑ์ ํธ๋์ญ์ ์ ์ ๋ขฐ์ฑ๊ณผ ๊ฒฌ๊ณ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)์ด ๋ณด์ ํด์ผ ํ๋ ๊ธฐ๋ณธ ํน์ฑ์ ๋ํ๋ ๋๋ค. ACID๋ ์์์ฑ(Atomicity), ์ผ๊ด์ฑ(Consistency), ๊ฒฉ๋ฆฌ์ฑ(Isolation), ๋ด๊ตฌ์ฑ(Durability)์ ์์ฑ์ ๋ํ๋ด๋ ์ฝ์ด์ ๋๋ค. ์ด๋ฌํ ์์ฑ์ด ์ ์ง๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ณต์กํ ๋ค์ค ์ฌ์ฉ์ ๋๋ ๋ก๋๊ฐ ๋ง์ ํ๊ฒฝ์์๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ ํ์ฑ์ ๊ฐ๋ ฅํ๊ฒ ๋ณด์ฅํ ์ ์์ต๋๋ค.
์์ ์ฑ์ ํธ๋์ญ์ ์ด ์์ ํ ์๋ฃ๋๊ฑฐ๋ ์ ํ ์คํ๋์ง ์๋๋ก ๋ณด์ฅํ๋ ์์ฑ์ ๋๋ค. ์ฆ, ๋จ์ผ ํธ๋์ญ์ ์ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ๋ถํ ํ ์ ์๋ ๋จ์ผ ๋จ์๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ํธ๋์ญ์ ๋ด์ ์์ ์ค ํ๋๋ผ๋ ์คํจํ๋ฉด ์ ์ฒด ํธ๋์ญ์ ์ด ์คํจํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๊ณ ํธ๋์ญ์ ์ค์ ์ด๋ฃจ์ด์ง ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋กค๋ฐฑ๋ฉ๋๋ค. ์์์ฑ์ ๋ถ๋ถ์ ์ผ๋ก ์๋ฃ๋ ํธ๋์ญ์ ์ผ๋ก ์ธํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ๊ด์ฑ ์๋ ์ํ๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ ๋ฐฉ์งํ๋ฏ๋ก ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ํ ์์คํ ์์ ๋ ๊ณ์ข ๊ฐ์ ์๊ธ์ ์ด์ฒดํ๋ ค๋ฉด ํ ๊ณ์ข์์ ์ธ์ถํ๊ณ ๋ค๋ฅธ ๊ณ์ข๋ก ์ ๊ธํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์์ ์ค ํ๋๋ง ์ฑ๊ณตํ๋ฉด ์์์ฑ์ ๋ค๋ฅธ ์์ ๋ ์คํ๋๋๋ก ๋ณด์ฅํ์ฌ ์ฌ๋ฌด ๊ธฐ๋ก์ ์ผ๊ด์ฑ์ ์ ์งํฉ๋๋ค.
์ผ๊ด์ฑ์ ํธ๋์ญ์ ์ด์ , ๋์ค, ์ดํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ๊ด๋ ์ํ๋ฅผ ์ ์งํ๋๋ก ๋ณด์ฅํ๋ ์์ฑ์ ๋ํ๋ ๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ๊ด๋ ์ํ๋ก ์์๋์ด์ผ ํ๋ฉฐ ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ด๋ ๋น์ฆ๋์ค ๊ท์น์ด ํธ๋์ญ์ ์ ๋ฐ์ ๊ฑธ์ณ ์ ์ง๋์ด์ผ ํฉ๋๋ค. ํธ๋์ญ์ ์ด ์๋ฃ๋ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์ ์ผ๊ด๋ ์ํ๊ฐ ๋์ด์ผ ํฉ๋๋ค. ์ผ๊ด์ฑ์ ๋ฐ์ดํฐ๊ฐ ๊ณ ์ ํค, ์ธ๋ ํค, ๊ฒ์ฌ ์ ์ฝ ์กฐ๊ฑด ๋ฑ ์ ์๋ ๋ชจ๋ ์คํค๋ง ์ ์ฝ ์กฐ๊ฑด์ ์ค์ํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๊ณ ๊ด๋ฆฌ ์์คํ ์์ ์ผ๊ด์ฑ ๊ท์น์ ๋ฐ๋ผ ์ ํ์ ์ฌ๊ณ ์์ค์ด ์์๊ฐ ๋ ์ ์์ต๋๋ค. ๊ฑฐ๋์์ ์ฌ๊ณ ์์ค์ 0 ์ดํ๋ก ๋ฎ์ถ๋ ค๊ณ ์๋ํ๋ฉด ๊ฑฐ๋๊ฐ ์ค๋จ๋์ด ์ฌ๊ณ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
๊ฒฉ๋ฆฌ ๋ ๊ฐ ํธ๋์ญ์ ์ด ๋ค๋ฅธ ๋์ ํธ๋์ญ์ ๊ณผ ๊ฒฉ๋ฆฌ๋์ด ์ด๋ฅผ ์ธ์ํ์ง ๋ชปํ๋๋ก ํ๋ ์์ฑ์ ๋๋ค. ์ด๋ ํธ๋์ญ์ ์ด ์์ ํ ์๋ฃ๋ ๋๊น์ง ํ ํธ๋์ญ์ ์ ์์ ์ด ๋ค๋ฅธ ํธ๋์ญ์ ์ ํ์๋์ง ์์์ ์๋ฏธํฉ๋๋ค. ๊ฒฉ๋ฆฌ๋ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ๋์ผํ ๋ฐ์ดํฐ์ ๋์์ ์ก์ธ์คํ๊ฑฐ๋ ์์ ํ๋ ค๊ณ ์๋ํ ๋ ๋ฐ์ํ ์ ์๋ ์ ๋ฐ์ดํธ ์์ค, ๋ํฐ ์ฝ๊ธฐ, ๋ฐ๋ณต ๋ถ๊ฐ๋ฅํ ์ฝ๊ธฐ ๋ฑ ๋ฐ๋์งํ์ง ์์ ๋ถ์์ฉ์ ๋ฐฉ์งํฉ๋๋ค. ์ฑ๋ฅ๊ณผ ๋์์ฑ์ ์ฐ์ ์ํ์ง๋ง ๋ถ์ผ์น๋ฅผ ํ์ฉํ ์ ์๋ ๋ฎ์ ์์ค๋ถํฐ ์ฑ๋ฅ์ ํฌ์ํ๋ฉด์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๊ฒฉ๋ฆฌ๋ฅผ ์ฐ์ ์ํ๋ ๋์ ์์ค๊น์ง ๊ฒฉ๋ฆฌ ์์ค์ ๋ค์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ผ๊ด์ฑ๊ณผ ์ฑ๋ฅ ๊ฐ์ ์ ์ ํ ๊ท ํ์ ๋ฌ์ฑํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
๋ด๊ตฌ์ฑ์ ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๋ฐ์ดํฐ์ ๋ํ ์ํฅ์ด ์๊ตฌ์ ์ด๊ณ ์์ค๋์ง ์์์ ๋ณด์ฅํฉ๋๋ค. ์ด ์์ฑ์ ์์คํ ์ค๋ฅ๋ ์ถฉ๋์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ ์ ์ธ ์ํ๋ฅผ ์ ์งํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋ด๊ตฌ์ฑ์ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊น ๋ฐ ์ ๋๋ง๊ณผ ๊ฐ์ ๋ค์ํ ๊ธฐ์ ์ ํตํด ๋ฌ์ฑํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉ๋๊ธฐ ์ ์ ๋จผ์ ๋ก๊ทธ์ ๊ธฐ๋ก๋ฉ๋๋ค. ์์คํ ์ฅ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ผ๊ด๋ ์ํ๋ก ๋ณต์ํ ์ ์์ต๋๋ค. ๋ด๊ตฌ์ฑ์ ๋ฐ์ดํฐ ์์ค์ด ์ฌ๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๋ ๊ธ์ต ๊ฑฐ๋์ ๊ฐ์ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ค์ํฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์ ACID ์์ฑ์ ์ฌ์ฉํ์ฌ ์์ฑ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ขฐ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ PostgreSQL์ ๊ฐ๋ ฅํ ACID ๋ณด์ฅ์ ํ์ฉํ์ฌ ๋ชจ๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ , ์ผ๊ด์ฑ ํ์ธ ๋ฐ ํธ๋์ญ์ ๊ด๋ฆฌ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ํตํด AppMaster ์ฌ์ฉ์๊ฐ ๋ถํ๊ฐ ๋๊ฑฐ๋ ๊ธฐ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ผ๊ด๋ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ด๋ฌํ ์ฌ์ฉ ์ฉ์ด์ฑ, ์ ์ฐ์ฑ ๋ฐ ACID ์์ฑ์ ๋ํ ์๊ฒฉํ ์ค์์ ์กฐํฉ์ AppMaster ์ ์ํ๊ณ ๋น์ฉ ํจ์จ์ ์ด๋ฉฐ ๋ฏธ๋ ์งํฅ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ์ ๋์ ์ธ ์๋ฃจ์ ์ด ๋๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.