ALL-CON Refactoring 6์ผ์ฐจ - Articles ํ ์ด๋ธ ์คํค๋ง ์์ (2)
โ๏ธ Refactoring
-
ALL-CON์์๋ ํ๋ฌ๊ฐ์ ์ฝ์ํธ ์ ๋ณด๋ง
allConcerts
๋ฐฐ์ด์ ๋ด์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค.ํ๋ฌ์ด ์ง๋๊ฒ๋๋ฉด ์ฝ์ํธ ์ ๋ณด์ค
activation
์ด0
์ผ๋ก ๋นํ์ฑํ๋์ด ์๋ฒ์์ ๋ณด์ฌ์ฃผ์ง ์๊ณ ์๋ค.(์ฝ์ํธ ์ญ์ ๋ ๊ด๋ จ ๋๊ธ ๋ฐ ๊ฒ์๊ธ๋ค์ด ๋ชจ๋ ์ญ์ ๋๋ฏ๋ก ๋นํ์ฑํ๋ฅผ ์ ํ) -
๊ธฐ์กด์๋ ์ฝ์ํธ๊ฐ ๋นํ์ฑํ ๋ ์ ๊ด๋ จ ๊ฒ์๊ธ์ ์กฐํ์๋ฅผ
-999999
์์๊ฐ์ผ๋ก ๊ฐ์ ๋ก ํ ๋นํ์ฌ ์กฐํ์๋ก ๊ฒ์์ ๋งจ ๋ค๋ก ๋์ด๋๊ฒ๋ ์์ ํด์ฃผ์์ผ๋ ๋ง์ฝ ๋ถ์ํ(?) ๋ชฉ์ ์ผ๋ก ์กฐํ์๋ฅผ ์ฌ๋ฆฌ๊ฑฐ๋ ์๊ฐ์ด ์ค๋์ง๋ ์กฐํ์๊ฐ0
์ด์์ ์์๊ฐ์ผ๋ก ์ ํ๋๋ค๋ฉด ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒฐ๊ณผ๊ฐ ์ด๋๋๋ฏ๋กArticles
ํ ์ด๋ธ์๋activation
์ปฌ๋ผ๊ฐ์ ์ถ๊ฐํด ๋นํ์ฑํ ํด์ฃผ๊ธฐ๋ก ํ๋ค.
1. ๋ณด์์ด ํ์ํ ์ฌํญ
-
Articles
ํ ์ด๋ธ์ ํ์ฌ ์คํค๋ง๋ ๋ค์๊ณผ ๊ฐ๋ค.ํด๋น
Articles
ํ ์ด๋ธ ์ปฌ๋ผ์คactivation
์ปฌ๋ผ๊ฐ์ ์ถ๊ฐํ๊ณ , ์๋ฒ์์nodeSchedule
์ ํตํ์ฌ 1์ผ 1ํ ํฐ์ผ ๋ฐ๋งค ํ ํ๋ฌ์ด ์ง๋ ์ฝ์ํธ๋ค์ ๋นํ์ฑํ๋ฅผ ์ํค๋๋ฐ ํด๋น ์ฝ์ํธ์ ์ข ์๋ ๊ฒ์๊ธ๋ค ๋ํ ๋ชจ๋ ๋นํ์ฑํ ์งํ์ด ํ์ํ๋ค.
2. ๋ฌธ์ ํด๊ฒฐ
2-1. Sequelize Model ํ์ผ ์คํค๋ง ์์ && addColumn() ํจ์๋ฅผ ํตํ ๋ง์ด๊ทธ๋ ์ด์
-
์ด์ ํ์ตํ ๋ด์ฉ๋๋ก
addColumn()
ํจ์๋ฅผ ํตํด ๋ง์ด๊ทธ๋ ์ด์ ์ผ๋กArticles
ํ ์ด๋ธ์ ์คํค๋ง๋ฅผ ์์ ํด์ฃผ์๋ค.up: async (queryInterface, Sequelize) => { return queryInterface.addColumn('Articles', 'activation', { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true, }); };
-
์ด๊ธฐ๊ฐ์
true
๋ก ์ค์ (ํฐ์ผ ์คํ ํ ํ๋ฌ์ด ์ง๋ ์ฝ์ํธ ๊ฒ์๊ธ์false
๋ก ๋นํ์ฑํ ๋๋ค.) , ๋ฐ์ดํฐ ํ์ ๊ณผ ์ต์ ์ ์ค์ ํด์ฃผ์๋ค.์คํค๋ง๋ฅผ ์์ ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ๊ฒ์๊ธ๋ค์ ์๋์ผ๋ก ํ๋ํ๋ ๋ฐ์ดํฐ ๊ฐ์ ์์ ํด์ค์ผ ํ๋ ์ถ์๋๋ฐ,
defaultValue
๊ฐ์true
๋ก ์ค ํ์ธ์ง ๊ธฐ์กด ๊ฒ์๊ธ๋ค๋ ๋ชจ๋activation
์ปฌ๋ผ์ ๊ฐ์ดtrue
๋ก ํ์ฑํ๋์๋ค.(ํดโฆ)
2-2. concertCleaner() ํจ์ ๋ฐ Controller ๋ณ๊ฒฝ
-
๋งค์ผ ์ค์ 09์์ ์๋ฒ์์๋ ์ฝ์ํธ ์ ๋ณด๋ฅผ
concertCleaner()
ํจ์๋ฅผ ํตํด์ ํฐ์ผ ์คํ์ผ์ด ํ๋ฌ ์ง๋ ์ฝ์ํธ DB์activation
์false
๋ก ๋ฐ๊พธ์ด ์ฃผ๊ณ ์๋ค.์ฌ๊ธฐ์ ๋๋ถ์ด ํด๋น ์ฝ์ํธ์ ์ข ์๋ ๊ฒ์๊ธ DB๋ค์
activation
๋ํ ํจ๊ปfalse
๋ก ๋ฐ๊พธ์ด ์ฃผ์๋ค. -
๋ํ, ์ด์ ๋ Controller ๋ํ ์์ ํ์ฌ ๊ฒ์๊ธ์ ๋ฑ์ด์ฃผ๋ ์์ฒญ์ด ๋ค์ด์จ๋ค๋ฉด,
order
๊ฐ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ฃผ์ด์activation
์ดfalse
์ธ ๊ฒ์๋ฌผ์ ํ์์๋ก ๋ฐ๋ฆฌ๊ฒ๋ ์ค๊ณํ์๋ค.
3. ๊ฒฐ๊ณผ
-
ํด๋ผ์ด์ธํธ์์ ์ด์ ์กฐํ์์์ผ๋ก ์ ๋ ฌ์ ํ์ฌ๋
order
์ ์ฐ์ ์์๊ฐactivation
๋ด๋ฆผ์ฐจ์์ด๊ธฐ ๋๋ฌธ์ ๋นํ์ฑํ๋ ์ฝ์ํธ์ ์ข ์๋ ๊ฒ์๋ฌผ๋ค์ ํ์์๋ก ๋ฐ๋ฆฌ๊ฒ ์ค๊ณํ์๋ค.์ฝ์ํธ๊ฐ ๋นํ์ฑํ๋์ด ๋ชฉ๋ก์์๋ ์ฌ๋ผ์ก์ง๋ง ๊ฒ์๊ธ์ ํ์์๋ก ๋ฐ๋ ธ์ ๋ฟ์ด๋ผ์ ์กฐํ/์์ /์ญ์ ์ฒ๋ฆฌ๋ ๊ฐ๋ฅํ ์ํ์ด๋ค.
-
์ ์ฌ์ง๊ณผ ๊ฐ์ด ์๋จ ์ฝ์ํธ ๋ชฉ๋ก์ ๊ณต๋ฐฑ์ผ๋ก ๋ณด์ฌ์ง๊ณ ์๋ค.๋น ์ฝ์ํธ ๋ชฉ๋ก ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํด์ผํ ์ง ํด๋ผ์ด์ธํธ๋ฅผ ๋ด๋นํ ํ์๋ถ๊ณผ ์กฐ์จํด์ ๋ด์ผ๊น์ง Task๋ฅผ ๊ฐ์ ธ๊ฐ์ผ ํ ๋ฏ ํ๋ค.