github-blog.png


โš’๏ธ Refactoring

  • ALL-CON์—์„œ๋Š” ํ•œ๋‹ฌ๊ฐ„์˜ ์ฝ˜์„œํŠธ ์ •๋ณด๋งŒ allConcerts ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.

    ํ•œ๋‹ฌ์ด ์ง€๋‚˜๊ฒŒ๋˜๋ฉด ์ฝ˜์„œํŠธ ์ •๋ณด์ค‘ activation์ด 0์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์„œ๋ฒ„์—์„œ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๊ณ  ์žˆ๋‹ค. (์ฝ˜์„œํŠธ ์‚ญ์ œ๋Š” ๊ด€๋ จ ๋Œ“๊ธ€ ๋ฐ ๊ฒŒ์‹œ๊ธ€๋“ค์ด ๋ชจ๋‘ ์‚ญ์ œ๋˜๋ฏ€๋กœ ๋น„ํ™œ์„ฑํ™”๋ฅผ ์„ ํƒ)

    ์Šคํฌ๋ฆฐ์ƒท, 2022-02-15 17-45-59

  • ๊ธฐ์กด์—๋Š” ์ฝ˜์„œํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋  ์‹œ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€์€ ์กฐํšŒ์ˆ˜๋ฅผ -999999 ์Œ์ˆ˜๊ฐ’์œผ๋กœ ๊ฐ•์ œ๋กœ ํ• ๋‹นํ•˜์—ฌ ์กฐํšŒ์ˆ˜๋กœ ๊ฒ€์ƒ‰์‹œ ๋งจ ๋’ค๋กœ ๋‚˜์—ด๋˜๊ฒŒ๋” ์ˆ˜์ •ํ•ด์ฃผ์—ˆ์œผ๋‚˜ ๋งŒ์•ฝ ๋ถˆ์ˆœํ•œ(?) ๋ชฉ์ ์œผ๋กœ ์กฐํšŒ์ˆ˜๋ฅผ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ์‹œ๊ฐ„์ด ์˜ค๋ž˜์ง€๋‚˜ ์กฐํšŒ์ˆ˜๊ฐ€ 0 ์ด์ƒ์˜ ์–‘์ˆ˜๊ฐ’์œผ๋กœ ์ „ํ™˜๋œ๋‹ค๋ฉด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ์ดˆ๋ž˜๋˜๋ฏ€๋กœ Articles ํ…Œ์ด๋ธ”์—๋„ activation ์ปฌ๋Ÿผ๊ฐ’์„ ์ถ”๊ฐ€ํ•ด ๋น„ํ™œ์„ฑํ™” ํ•ด์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค.



1. ๋ณด์™„์ด ํ•„์š”ํ•œ ์‚ฌํ•ญ


  • Articles ํ…Œ์ด๋ธ”์˜ ํ˜„์žฌ ์Šคํ‚ค๋งˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    ์Šคํฌ๋ฆฐ์ƒท, 2022-02-15 17-44-23

    ํ•ด๋‹น 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๋กœ ๋น„ํ™œ์„ฑํ™” ๋œ๋‹ค.) , ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์˜ต์…˜์„ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

    ์Šคํฌ๋ฆฐ์ƒท, 2022-02-16 00-23-06

    ์Šคํ‚ค๋งˆ๋ฅผ ์ˆ˜์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ๊ฒŒ์‹œ๊ธ€๋“ค์„ ์ˆ˜๋™์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•˜๋‚˜ ์‹ถ์—ˆ๋Š”๋ฐ, defaultValue๊ฐ’์„ true๋กœ ์ค€ ํƒ“์ธ์ง€ ๊ธฐ์กด ๊ฒŒ์‹œ๊ธ€๋“ค๋„ ๋ชจ๋‘ activation ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด true๋กœ ํ™œ์„ฑํ™”๋˜์—ˆ๋‹ค. (ํœดโ€ฆ)



2-2. concertCleaner() ํ•จ์ˆ˜ ๋ฐ Controller ๋ณ€๊ฒฝ


  • ๋งค์ผ ์˜ค์ „ 09์‹œ์— ์„œ๋ฒ„์—์„œ๋Š” ์ฝ˜์„œํŠธ ์ •๋ณด๋ฅผ concertCleaner() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํ‹ฐ์ผ“ ์˜คํ”ˆ์ผ์ด ํ•œ๋‹ฌ ์ง€๋‚œ ์ฝ˜์„œํŠธ DB์˜ activation์„ false๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๊ณ  ์žˆ๋‹ค.

    ์—ฌ๊ธฐ์— ๋”๋ถˆ์–ด ํ•ด๋‹น ์ฝ˜์„œํŠธ์— ์ข…์†๋œ ๊ฒŒ์‹œ๊ธ€ DB๋“ค์˜ activation ๋˜ํ•œ ํ•จ๊ป˜ false๋กœ ๋ฐ”๊พธ์–ด ์ฃผ์—ˆ๋‹ค.

  • ๋˜ํ•œ, ์ด์ œ๋Š” Controller ๋˜ํ•œ ์ˆ˜์ •ํ•˜์—ฌ ๊ฒŒ์‹œ๊ธ€์„ ๋ฑ‰์–ด์ฃผ๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜จ๋‹ค๋ฉด, order๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ฃผ์–ด์„œ activation์ด false์ธ ๊ฒŒ์‹œ๋ฌผ์€ ํ›„์ˆœ์œ„๋กœ ๋ฐ€๋ฆฌ๊ฒŒ๋” ์„ค๊ณ„ํ•˜์˜€๋‹ค.




3. ๊ฒฐ๊ณผ


  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด์ œ ์กฐํšŒ์ˆ˜์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•˜์—ฌ๋„ order์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ activation ๋‚ด๋ฆผ์ฐจ์ˆœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํ™œ์„ฑํ™”๋œ ์ฝ˜์„œํŠธ์— ์ข…์†๋œ ๊ฒŒ์‹œ๋ฌผ๋“ค์„ ํ›„์ˆœ์œ„๋กœ ๋ฐ€๋ฆฌ๊ฒŒ ์„ค๊ณ„ํ•˜์˜€๋‹ค.

    ์Šคํฌ๋ฆฐ์ƒท, 2022-02-16 00-40-09

    ์ฝ˜์„œํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ๋ชฉ๋ก์—์„œ๋Š” ์‚ฌ๋ผ์กŒ์ง€๋งŒ ๊ฒŒ์‹œ๊ธ€์€ ํ›„์ˆœ์œ„๋กœ ๋ฐ€๋ ธ์„ ๋ฟ์ด๋ผ์„œ ์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œ ์ฒ˜๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ด๋‹ค.

    ์Šคํฌ๋ฆฐ์ƒท, 2022-02-16 00-59-54

  • ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ƒ๋‹จ ์ฝ˜์„œํŠธ ๋ชฉ๋ก์€ ๊ณต๋ฐฑ์œผ๋กœ ๋ณด์—ฌ์ง€๊ณ  ์žˆ๋‹ค.

    ๋นˆ ์ฝ˜์„œํŠธ ๋ชฉ๋ก ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋‹ด๋‹นํ•œ ํŒ€์›๋ถ„๊ณผ ์กฐ์œจํ•ด์„œ ๋‚ด์ผ๊นŒ์ง€ Task๋ฅผ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•  ๋“ฏ ํ•˜๋‹ค.