Soft Delete vs Hard Delete
Soft Delete (๋ ผ๋ฆฌ ์ญ์ )
DB์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ง ์๊ณ , ์ฌ์ฉ์ ์
์ฅ์์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ํ๋ ๋ฐฉ์.
๋ณดํต์ is_deleted ์ปฌ๋ผ์ ๋ฐ๋ก ๋ง๋ค์ด boolean ๊ฐ์ผ๋ก ๋ฐ์ดํฐ์ ์ฌ์ฉ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค. is_deleted = 0 ์ด๋ฉด ์กฐํ ๊ฐ๋ฅ, is_deleted = 1 ์ด๋ฉด ์กฐํ ๋ถ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ. ๋๋ฌธ์, ํด๋น ํ๋์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํ ์, ์ด์ ๋ํด ์ฒดํฌํ๋ ์ฟผ๋ฆฌ๊ฐ ๋ค์ด๊ฐ์ผํ๋ค.
update user
set is_delete = 1
where user_name = "hello"
SQL
๋ณต์ฌ
Hard Delete (๋ฌผ๋ฆฌ ์ญ์ )
DB์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ญ์ ํ๋ ๋ฐฉ์. ๋์ด์ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ DB์์ ์์ ํ ์ญ์ ํด๋ฒ๋ฆฌ๋ฉฐ, ์ ์ฅ ๊ณต๊ฐ์ ํ๋ณดํ๋ ๊ฒ์ ๋งํ๋ค.
ํด๋น ๋ฐ์ดํฐ ํ์ ๋ํด ๊ทธ๋ฅ delete๋ฅผ ์จ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ์ด๋ค.
Soft Delete๋ฅผ ์ฌ์ฉํด์ผํ๋ ์ด์
1.
์ฌ์ฉ์, ๊ฒ์ ๊ธฐ๋ก๊ณผ ๊ฐ์ด ๋ ๋์ ์๋น์ค ๊ฐ์ ์ ์ํด ๋ถ์ํด์ผํ๋ ๋ฐ์ดํฐ๋ค์ด ํ์
2.
๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋ณต๊ตฌํด์ผํ๋ ์ํฉ
3.
update ์ฟผ๋ฆฌ๊ฐ delete ์ฟผ๋ฆฌ๋ณด๋ค ์ชผ์ค๊ธ ๋ ๋น ๋ฆ