์ด์ ๋ ธ์ ๋ธ๋ก๊ทธ์ Transaction ์ด๋? (2020.12.22)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์ ๋ ๊ธ์ ๋๋ค.
ํธ๋์ญ์ , Transaction ์ด๋?
Transaction์ด๋, DB์ ์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ์ํด ์ํํ๋ ์์ ์ ๋จ์๋ฅผ ๋ปํ๋ค. DB์ ์ํ๋ฅผ ๋ณํ์ํจ๋ค๋ ๊ฒ์ ์๋์ SQL์ ์ด์ฉํด์ DB์ ์ ๊ทผํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- SELECT
- INSERT
- DELETE
- UPDATE
์ฐฉ๊ฐํ์ง ๋ง์์ผ ํ ๊ฒ์ ์์ ์ ๋จ์๋ SQL ํ ๋ฌธ์ฅ์ด ์๋๋ค. ๋ง์ SQL ๋ช ๋ น๋ฌธ๋ค์ ์ฌ๋์ด ์ ํ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ํ๋ ๊ฒ์ด ์์ ์ ๋จ์๋ค.
๊ณ์ํ์ ์๋ฅผ๋ค์ด ๋ณด๋ฉด, ์ฌ์ฉ์๊ฐ ๊ฒ์๊ธ์ ์์ฑํ๊ณ , ์ ๋ก๋ ๋ฒํผ์ ๋๋ฅธ๋ค. ๊ทธ ํ์ ๋ค์ ๊ฒํ์ ๋์์์ ๋, ๊ฒ์ํ์ ์์ ์ ๊ธ์ ํฌํจํ ์ ๋ฐ์ดํธ๋ ๊ฒ์ํ์ ๋ณด๊ฒ ๋๋ค.
์ด๋ฌํ ์ํฉ์ DB ์์ ์ผ๋ก ์ฎ๊ธฐ๋ฉด, ์ฌ์ฉ์๊ฐ ์ ๋ก๋ ๋ฒํผ์ ๋๋ ์ ์, INSERT ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅํ ๊ฒ์๊ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฆฐ๋ค. ๊ทธ ํ์ ๊ฒ์ํ์ ๊ตฌ์ฑํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ SELECT ํ์ฌ ์ต์ ์ ๋ณด๋ก ์ ์งํ๋ค. ์ฌ๊ธฐ์ ์์ ์ ๋จ์๋ INSERT๋ฌธ๊ณผ SELECT ๋ฌธ ๋๋ค๋ฅผ ํฉ์น ๊ฒ์ด๋ค. ์ด๋ฌํ ์์ ๋จ์๋ฅผ ํ๋์ Transaction์ด๋ผ ํ๋ค.
๐ ์ค๋ช ์ ์ํด ๊ฒ์๋ฌผ์ ์ ๋ก๋์ ์ ๋ฐ์ดํธ๋ฅผ ์๋ฅผ ๋ค์์ง๋ง, ํธ๋์ญ์ ์ ํต์ฌ์ **์์์ฑ**, ๋ชจ๋ ์ฑ๊ณต ํน์ ์คํจ์ ํน์ฑ์ผ๋ก ๋ฌถ์ผ ์ ์๋ ์์ ๋ค์ ๋จ์๋ก ๋ณด๋ฉด๋๋ค. ๋ํ, ๊ฐ ์์ ๋ค์ ์๋ก ์์กด์ ์ด์ฌ์ผ๋ง ํ๋ ๊ฒ๋ ์๋๋ค.
Transaction์ ํน์ง
Transaction์ ํน์ง์ ํฌ๊ฒ 4๊ฐ์ง๋ก ๊ตฌ๋ถ๋๋ค.
- ์์์ฑ, Atomicity : Transaction์ด DB์ ๋ชจ๋ ๋ฐ์๋๊ฑฐ๋, ์๋๋ฉด ์ ํ ๋ฐ์๋์ง ์์์ผ ํ๋ค.
- ์ผ๊ด์ฑ, Consistency : Transaction์ ์์ ํฐ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ํญ์ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๋ค. Transaction์ด ์งํ๋๋ ๋์์ DB๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ์ฒ์์ ์ฐธ์กฐํ DB๋ก ์งํ์ด ๋๋ค.
- ๋ ๋ฆฝ์ฑ, Isolation : ๋ ์ด์์ Transaction์ด ๋์์ ์คํ๋๊ณ ์์ ๊ฒฝ์ฐ, ์ด๋ค ํ๋์ Transaction์ด๋ผ๋, ๋ค๋ฅธ Transaction์ ์ฐ์ฐ์ ๋ผ์ด๋ค ์ ์๋ค. ์ํ์ค์ธ Transaction์ด ์๋ฃ๋ ๋ ๊น์ง ๋ค๋ฅธ Transaction์ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ ์๊ฐ ์๋ค.
- ์ง์์ฑ, Durability : Transaction์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ฌ์ ๊ฒฝ์ฐ, ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋์ด์ผ ํ๋ค.
Transaction์ Commit, Rollback ์ฐ์ฐ
Commit์ด๋ ํ๋์ Transaction์ด ์ฑ๊ณต์ ์ผ๋ก ๋๋ฌ๊ณ , DB๊ฐ ์ผ๊ด์ฑ์๋ ์ํ์ ์์ ๋, ํ๋์ Transaction์ด ๋๋ฌ๋ค๋ ๊ฒ์ ์๋ ค์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฐ์ฐ์ด๋ค. ์ด ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ์ํํ๋ Transaction์ด ๋ก๊ทธ์ ์ ์ฅ๋๋ฉฐ, ํ์ Rollback ์ฐ์ฐ์ ์ํํ์๋ Transaction๋จ์๋ก ํ๋ ๊ฒ์ ๋์์ค๋ค.
Rollback์ด๋ ํ๋์ Transaction ์ฒ๋ฆฌ๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ด Transaction์ ์์์ฑ์ด ๊นจ์ง๊ฒฝ์ฐ, Transaction์ ์ฒ์๋ถํฐ ๋ค์ ์์ํ๊ฑฐ๋, Transaction์ ๋ถ๋ถ์ ์ผ๋ก๋ง ์ฐ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ทจ์์ํจ๋ค. ํ์ ์ฌ์ฉ์๊ฐ Transaction ์ฒ๋ฆฌ๋ ๋จ์๋๋ก Rollback์ ์งํํ ์๋ ์๋ค.