TCL(ํธ๋์ญ์ ์ ์ด ์ธ์ด)์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ํ ์ธก๋ฉด์ด๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS) ๋ด์์ ํธ๋์ญ์ ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋งฅ๋ฝ์์ ํธ๋์ญ์ ์ ๋จ์ผ ๋จ์๋ก ์๋ํ๋ ์ผ๋ จ์ ์์ ์ ์๋ฏธํ๋ฉฐ, ์ฃผ์ ๋ชฉ์ ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค. TCL์ ํธ๋์ญ์ ์ ์ ์ด ๋ฐ ๊ด๋ฆฌํ๊ณ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค ์ค์ ๋ฐ์ํ ์ ์๋ ๋ฐ์ดํฐ ๋ถ์ผ์น๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์์ ์ ์ธ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ค์ํ ๋ช ๋ น๊ณผ ๋ฌธ์ ํฌํจํ๋ SQL(๊ตฌ์กฐ์ ์ฟผ๋ฆฌ ์ธ์ด)์ ํ์ ์งํฉ์ ๋๋ค.
์ผ๋ฐ์ ์ธ ๊ด๊ณํ DBMS์์๋ ๋ง์ ์์ ์ฌ์ฉ์๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํฉ๋๋ค. ์ด๋ฌํ ๋ณ๋ ฌ ์ํธ ์์ฉ์ผ๋ก ์ธํด ์ ์ฌ์ ์ธ ์ถฉ๋, ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฐ ๋ฐ์ดํฐ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ TCL์ ์ ๋ขฐํ ์ ์๋ ํธ๋์ญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ํ์ ํน์ฑ์ธ ์์์ฑ, ์ผ๊ด์ฑ, ๊ฒฉ๋ฆฌ ๋ฐ ๋ด๊ตฌ์ฑ(ACID) ์์ฑ์ ํตํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ํํ๋ ๋ฐ ํ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
TCL์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ ์ ์ดํ๊ธฐ ์ํ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๋ช ๋ น์ด ํฌํจ๋์ด ์์ต๋๋ค.
- BEGIN TRANSACTION: ์ด ๋ฌธ์ ์ ํธ๋์ญ์ ์ ์์์ ๋ํ๋ด๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ด ๋จ์ผ ์์ ๋จ์๋ก SQL ๋ฌธ ๊ทธ๋ฃน์ ์คํํ๊ธฐ ์ํด ์ค๋นํ ์ ์๋๋ก ํฉ๋๋ค. ์ด ๋จ์๋ ํธ๋์ญ์ ๋ด์ ๋ชจ๋ ๋ฌธ์ด ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๊ฑฐ๋ ์๋ฌด ๊ฒ๋ ์คํ๋์ง ์์์ ์๋ฏธํ๋ฏ๋ก ์์์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- COMMIT: ์ด ๋ช ๋ น์ ํธ๋์ญ์ ์ค์ ๋ณ๊ฒฝ๋ ๋ชจ๋ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํฉ๋๋ค. COMMIT ๋ฌธ์ด ์คํ๋ ํ์๋ ๋กค๋ฐฑ์ด๋ ์คํ ์ทจ์๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ํ์ฌ ํธ๋์ญ์ ์ ๋ง๋ฌด๋ฆฌํ๋ ๊ฒ ์ธ์๋ COMMIT๋ ์ธ์ ์ด ๋ณด์ ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ธ์ ํด์ ํ๊ณ ํ์ SQL ๋ฌธ์ด ์คํ๋๋ฉด ์์์ ์ผ๋ก ์ ํธ๋์ญ์ ์ ์์ํฉ๋๋ค.
- ROLLBACK: ์ด ๋ฌธ์ ํธ๋์ญ์ ์ค์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋๋๋ ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ ์ํ๋ก ๋ณต์ํ์ฌ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํฉ๋๋ค. ROLLBACK ๋ช ๋ น์ ์ผ๋ฐ์ ์ผ๋ก ํธ๋์ญ์ ์คํ ์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ํธ๋์ญ์ ์ ์๋์ ์ผ๋ก ์ค๋จํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
- SAVEPOINT: ์ด ๋ช ๋ น์ ํธ๋์ญ์ ๋ด์ ์ค๊ฐ ์ง์ ์ ์ค์ ํ์ฌ ํ์ํ ๊ฒฝ์ฐ ์ง์ ๋ ์ ์ฅ์ ์ผ๋ก ๋ถ๋ถ ๋กค๋ฐฑ์ ํ์ฉํฉ๋๋ค. ์ด๋ ํธ๋์ญ์ ์ ๋ํ ๋ณด๋ค ์ธ๋ถ์ ์ธ ์์ค์ ์ ์ด๋ฅผ ์ ๊ณตํ๊ณ ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ํธ๋์ญ์ ์ ์ญ์ ํ์ง ์๊ณ ๋ ํน์ ์ค๋ฅ๋ฅผ ๋ณต๊ตฌํ ์ ์๋๋ก ํด์ค๋๋ค.
- ROLLBACK TO: ์ด ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ SAVEPOINT ๋ช ๋ น์ผ๋ก ์ ์ํ ํน์ ์ ์ฅ์ ์ผ๋ก ํธ๋์ญ์ ์ ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ์ด๋ ์ค๋ฅ ์ฒ๋ฆฌ ์ค์ ์ ์ฉํ๋ฉฐ, ํธ๋์ญ์ ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ณด์กดํ๋ฉด์ ํน์ ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ทจ์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์ผ๋ก ์์ ํ๋ ๋์ ํธ๋์ญ์ ์ ์ด ์ธ์ด๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์์ฑ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ์ํํ ์ํธ ์์ฉ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ํฉ๋๋ค. AppMaster Postgresql๊ณผ ํธํ๋๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์๊ฐ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํ ํจ์จ์ ์ธ ํ๊ฒฝ์ ์ ๊ณตํ์ฌ ๋ค์ํ ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๋ ๋์ ์์ค์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ํธ๋์ญ์ ์ ์ด๋ฅผ ๋ณด์ฅํฉ๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๊ฐ๋ ฅํ ํธ๋์ญ์ ์ ์ด ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ๋ ๊ฒ์ ์ฑ๊ณต์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋ณดํธํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๋ณด๋ค ์์ ์ ์ด๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ๊ฒฝํ์ผ๋ก ์ด์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค. AppMaster ์ ๊ฐ์ ํ๋ซํผ์์ ์ ๊ณตํ๋ TCL ์ง์์ ์ด๋ฌํ ์ฉ๋์ ํฅ์์์ผ ๊ฐ๋ฐ์๊ฐ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค์ ๊ด๋ จ๋ ์ํ์ ์ํํ๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ํฉ๋๋ค.
์์ฝํ์๋ฉด, ํธ๋์ญ์ ์ ์ด ์ธ์ด๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ํ์ ๊ตฌ์ฑ ์์๋ก์ ํธ๋์ญ์ ์ ์ ์ดํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ธ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ACID ์์ฑ์ ์ค์ํจ์ผ๋ก์จ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค๋ก ์ธํด ๋ฐ์ํ๋ ์ถฉ๋์ ๋๋นํ์ฌ ๋ฐ์ดํฐ ์ผ๊ด์ฑ, ๋ฌด๊ฒฐ์ฑ ๋ฐ ๋ณต์๋ ฅ์ ๋ณด์ฅํฉ๋๋ค. AppMaster ์ ๊ฐ์ no-code ํ๋ซํผ์ TCL ์ง์์ ํตํฉํ๋ฉด ์ฌ์ฉ์์๊ฒ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํํ๊ฒ ํตํฉ๋๋ ๊ฐ๋ ฅํ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ธฐ ์ํ ์๋ํฌ์๋ ์๋ฃจ์ ์ ์ ๊ณตํ์ฌ ์ฐ์ํ ์ฑ๋ฅ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํจ์ผ๋ก์จ ํจ์จ์ฑ์ด ๋์ฑ ํฅ์๋ฉ๋๋ค.