์ผ๋‹จ ํ•˜๊ณ  ๋ณด๋Š” ์‚ฌ๋žŒ

๋‚˜์ค‘๋ณด๋‹จ ์ง€๊ธˆ์— ์ง‘์ค‘ํ•˜๋˜, ์ง€๊ธˆ๋ณด๋‹จ ๋‚˜์ค‘์— ์™„๋ฒฝํ•ด์ง€์ž๐Ÿ’ช๐Ÿป

๐Ÿ—ž๏ธ IT ๋™ํ–ฅ ํŒŒ์•… ๋ฐ ๋‚˜์˜ ์ƒ๊ฐ ์ •๋ฆฌ

๋‚˜์œ ๋ฆฌํŒฉํ† ๋ง์€ ๋‚˜์˜๋‹ค. ๋ฆฌํŒฉํ† ๋ง์€ ์ข‹๋‹ค.

JanginTech 2024. 9. 4. 09:45

1. Good Refactoring vs Bad Refactoring

https://www.builder.io/blog/good-vs-bad-refactoring

 

Good Refactoring vs Bad Refactoring

Refactoring can make your code way better - or way worse. Here's how to avoid messing up your codebase when you refactor code.

www.builder.io

builder.io Written By Steve Sewell

 

 

 

[ ์š”์•ฝ์ •๋ฆฌ ]

๋ฆฌํŒฉํ† ๋ง์€ ์ค‘์š”ํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๋Œ€๋ถ€๋ถ„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ƒˆ๋กœ ๋ฆฌํŒฉํ„ฐ๋ง ๋œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ดํ•ด์™€ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋” ์–ด๋ ค์›Œํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋А๋ฆฌ๊ณ  ๋ฒ„๊ทธ๋„ ๋งŽ์•˜๋‹ค. 

๊ทธ๋ ‡๋‹ค๊ณ  ๋ฆฌํŒฉํ† ๋ง์ด ๋‚˜์œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ฑด๊ฐ•ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•ด ์ค‘์š”ํ•˜๋‹ค. ๋ฆฌํŒฉํ† ๋ง์ด ๋‚˜์œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‚˜์œ ๋ฆฌํŒฉํ† ๋ง์ด ๋‚˜์œ ๊ฒƒ์ด๋‹ค. 

 

1. ํฌ๊ฒŒ ๋ฐ”๊พธ๋Š” ์ฝ”๋”ฉ ์Šคํƒ€์ผ

  • ๊ฐ€์žฅ ํ”ํ•œ ์‹ค์ˆ˜ ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋”ฉ ์Šคํƒ€์ผ์„ ์™„์ „ํžˆ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค.(์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์ž… ๋“ฑ)
  • ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„๋ณด๋‹ค๋Š”, ๋ณด๋‹ค ๊ด€์šฉ์ ์ธ ๋ฉ”์„œ๋“œ ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์ข‹๋‹ค. 

2. ๋ถˆํ•„์š”ํ•œ ์ถ”์ƒํ™”, ์ง€๋‚˜์นœ ํ†ตํ•ฉ

  • ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ์ˆ˜๋งŽ์€ ์ƒˆ๋กœ์šด ์ถ”์ƒํ™”๋Š” ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ฃนํ™”ํ•ด์„œ ์•ˆ ๋  ๊ฒƒ๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋“ฑ์˜ ์‹ค์ˆ˜๋ฅผ ์ €์ง€๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋…ผ๋ฆฌ๋ฅผ ์ž‘๊ณ , ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ๋กœ ๋ฌถ๊ฑฐ๋‚˜ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฆฌํŒฉํ„ฐ๋ง ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์ข‹๋‹ค.
  • ๋˜ํ•œ, ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋ฌด๋ฆฌํ•˜๊ฒŒ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๊ฒƒ ๋˜ํ•œ ์ข‹์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ๋•Œ๋•Œ๋กœ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์„ค์ •์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ํ•„์š”ํ•œ ์œ ์—ฐ์„ฑ์€ ์œ ์ง€ํ•˜๋ฉด์„œ ์ถ”์ƒํ™”์˜ ๊ฐ•์ ์„ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•œ๋‹ค.
  • ๋‹จ์ˆœํžˆ "๊น”๋”ํ•œ ์ฝ”๋“œ"๋ฅผ ์œ„ํ•ด ์œ ์—ฐ์„ฑ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

3. ๊ธฐ์กด ์ฝ”๋“œ ์ดํ•ด๋Š” ํ•„์ˆ˜!!

  • ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ์ฝ”๋“œ๋ฅผ ๋ฐฐ์šฐ๋Š” ๋™์•ˆ ์ง„ํ–‰ํ•˜๋Š” ๋ฆฌํŒฉํ† ๋ง์€ ์ˆ˜๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•œ๋‹ค.
  • ๋ฒ„๊ทธ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ค‘์š”ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ฑฐํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ค๋Š” ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
  • ๋˜ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค. 

 

 

[๊ฒฐ๋ก ]: ์˜ฌ๋ฐ”๋ฅธ ๋ฆฌํŒฉํ† ๋ง ๋ฐฉ๋ฒ•

1. ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ์ ์ง„์ ์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•ด๋‚˜๊ฐ€์ž

2. ์ฝ”๋“œ๋ฒ ์ด์Šค ์ผ๊ด€์„ฑ

3. ์ •ํ™•ํ•˜๊ณ  ์™„์ „ํ•œ ์ดํ•ด

4. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ๋“ฑ ์ƒˆ๋กœ์›€์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ํŒ€์˜ ๋™์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค

5. ๋ฆฌํŒฉํ† ๋ง ์ „์— ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค

 

*๋ฆฌํŒฉํ† ๋ง ๋„๊ตฌ

> ๋ฆฐํŒ… ๋„๊ตฌ(Prettier, Eslint ), ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ํ…Œ์ŠคํŠธ(Vitest, Storybook ๋“ฑ), ์ ์ ˆํ•œ AI ํ™œ์šฉ

 

 

 

 

 

 


 

๐Ÿค” ์ด์— ๋Œ€ํ•œ ๋‚˜์˜ ์ƒ๊ฐ

๋ฆฌํŒฉํ† ๋ง์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋А๊ผˆ๋‹ค. ๋˜, ์ข‹์€ ๋ฆฌํŒฉํ† ๋ง๊ณผ ๋‚˜์œ ๋ฆฌํŒฉํ† ๋ง์€ ํ•œ ๋— ์ฐจ์ด์ž„์„ ๊นจ๋‹ฌ์•˜๋‹ค.

๊ณผ๋„ํ•œ ๋ณ€๊ฒฝ์ด ๊ฒฐ๊ตญ ๋‚˜์œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค. ๊ทธ๋งŒํผ ๊ธฐ์กด ์ฝ”๋“œ ์ดํ•ด๋Š” ํ•„์ˆ˜์ธ ๊ฒƒ ๊ฐ™๋‹ค.

์ ์–ด๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„์—์„œ ๋ฌด์˜๋ฏธํ•œ ์ฝ”๋“œ๋Š” ์—†์œผ๋ฉฐ, ์„ ๋ฐฐ๋“ค์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ ํ•œ ์ค„ ํ•œ ์ค„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.