๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋งฅ๋ฝ์์ ๊ต์ฐฉ ์ํ๋ ๋ ๊ฐ ์ด์์ ํธ๋์ญ์ ์ด ํ ์ด๋ธ ํ์ด๋ ์ ๊ธ ์ ์๋ ๊ฐ์ฒด์ ๊ฐ์ ๊ณต์ ๋ฆฌ์์ค์ ๋ํ ๋ฐฐํ์ ์ ์ด๋ฅผ ์ํด ๊ฒฝ์ํ๊ณ ๊ฐ ํธ๋์ญ์ ์ด ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ ๊ธ์ ํด์ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ํฉ์ ๋๋ค. ๋ฌดํ ๋๊ธฐ ๋ฃจํ์ ๋น ์ก์ต๋๋ค. ๋์ผํ ๋ฆฌ์์ค๋ฅผ ์ถฉ๋ํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทธ๋ ค๊ณ ์๋ํ๋ ํธ๋์ญ์ ์ ๋์ ์คํ์ผ๋ก ์ธํด ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ฉฐ, ์ํฅ์ ๋ฐ๋ ํธ๋์ญ์ ์ด ์์ ํ ์ค๋จ๋๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ์์คํ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ต์ฐฉ ์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํํ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ฉฐ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ๋์ผํ ๋ฆฌ์์ค์ ๋ํด ๋ค๋ฅธ ์์๋ก ์ ๊ธ์ ์์ฒญํ๋ ๊ฒฝ์ฐ ๋๋ ๋ณต์กํ ํธ๋์ญ์ ์น์ด ์ด๋ค ์ฌ์ด์ ์ํ ์ข ์์ฑ์ ์์ฑํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ ๋ค์ํ ์๋๋ฆฌ์ค์์ ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ต์ฐฉ ์ํ ๋ฐ์์ ์ต์ํํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋ค์ํ ๊ต์ฐฉ ์ํ ๋ฐฉ์ง ๋ฐ ๊ฐ์ง ๊ธฐ์ ๊ณผ ๊ต์ฐฉ ์ํ ๋ฐ์ ์ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์๋ ์ ๊ธ ์๊ฐ ์ด๊ณผ, ๊ต์ฐฉ ์ํ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ, ํธ๋์ญ์ ๋กค๋ฐฑ ๋๋ ๋๊ธฐ ๊ทธ๋ํ ๋ถ์์ ํตํ ๊ต์ฐฉ ์ํ ํด๊ฒฐ์ด ํฌํจ๋ฉ๋๋ค.
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์ ๋ด์ฅ ๋ฉ์ปค๋์ฆ์ ํตํด ๊ฐ๋ฐ์๋ ๊ต์ฐฉ ์ํ์ ๋ ๋ฏผ๊ฐํ๊ณ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.