[Sequelize] paranoid

[์›๋ณธ ๋งํฌ]

paranoid๋Š” ํŽธ์ง‘์ฆ์ด๋ž€ ๋œป์ด๋‹ค.

์š”์†Œ์˜ ์‚ญ์ œ๋Š” ์„œ๋ฒ„์˜ ์ค‘์‹ฌ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋‹ค.
๊ฐ€๋ น ๋‚ด๊ฐ€ ์“ด ์ด ๊ธ€์„ ์ง€์šฐ๋”๋ผ๋„ ์‚ญ์ œ์— ๋Œ€ํ•œ ๋กœ์ง์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜์ง€ ์•Š๊ฒ ๋Š”๊ฐ€?

ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋กœ DELETE๋ฅผ ๋‚ ๋ฆฌ๋Š” ๊ฒƒ์€ ์‹ค ์„œ๋น„์Šค์—์„œ๋Š” ๊ธˆ๊ธฐ์‹œ๋˜๋Š” ํ–‰์œ„๋‹ค.
ํ–‰์—ฌ๋ผ๋„ ๋‹ค์‹œ ๋ณต๊ตฌํ•˜๊ฒŒ ๋  ์ผ์ด ์ƒ๊ธด๋‹ค๋ฉด ์–ด์ฉŒ๊ฒ ๋‚˜? ๋ถ€๋ถ„์ ์œผ๋กœ ๋‹ค์‹œ ์‚ฌ์šฉ๋  ์ผ์ด ์žˆ๋‹ค๋ฉด?

๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ญ์ œ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์‚ญ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ปฌ๋Ÿผ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๋…ผ๋ฆฌ์  ์‚ญ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.
paranoid๋Š” ์ด๋Ÿฌํ•œ ๋™์ž‘์„ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ํŽธ์˜๊ธฐ๋Šฅ์ด๋‹ค.

๋ณด์ž.
ํ…Œ์ŠคํŠธ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

paranoid๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ” ์ •์˜์—์„œ paranoid ์†์„ฑ์„ true๋กœ ํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  sync๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด deletedAt์ด๋ผ๋Š” ์‚ญ์ œ์šฉ ์ปฌ๋Ÿผ์ด ์ถ”๊ฐ€๋  ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ชจ๋ธ์˜ destroy ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด

DELETE๊ฐ€ ์•„๋‹Œ UPDATE๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ด๊ณ 

deletedAt์ด null์ด ์•„๋‹Œ ๊ฐ’์€ ์กฐํšŒ๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ฉด deletedAt๋งŒ ํ• ๋‹น์ด ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์ž„์‹œ๋กœ deletedAt์„ ๋ฌด์‹œํ•˜๊ณ  ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด paranoid ์˜ต์…˜์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋งŒ์•ฝ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์‚ญ์ œ๋œ ๊ฐ’์„ ๋‹ค์‹œ ๋ณต์›ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด restore ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค.


์ฐธ์กฐ
https://sequelize.org/master/manual/paranoid.html