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
[ ์์ฝ์ ๋ฆฌ ]
๋ฆฌํฉํ ๋ง์ ์ค์ํ๋ค. ๊ทธ๋ฌ๋, ๋๋ถ๋ถ ๊ฐ๋ฐ์๋ค์ด ์๋ก ๋ฆฌํฉํฐ๋ง ๋ ์ฝ๋์ ๋ํด ์ดํด์ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ ์ด๋ ค์ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ๋๋ฆฌ๊ณ ๋ฒ๊ทธ๋ ๋ง์๋ค.
๊ทธ๋ ๋ค๊ณ ๋ฆฌํฉํ ๋ง์ด ๋์ ๊ฒ์ ์๋๋ค. ๊ฑด๊ฐํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ํด ์ค์ํ๋ค. ๋ฆฌํฉํ ๋ง์ด ๋์ ๊ฒ์ด ์๋๋ผ, ๋์ ๋ฆฌํฉํ ๋ง์ด ๋์ ๊ฒ์ด๋ค.
1. ํฌ๊ฒ ๋ฐ๊พธ๋ ์ฝ๋ฉ ์คํ์ผ
- ๊ฐ์ฅ ํํ ์ค์ ์ค ํ๋๋ ๊ฐ๋ฐ์๊ฐ ์ฝ๋ฉ ์คํ์ผ์ ์์ ํ ๋ฐ๊พธ๋ ๊ฒ์ด๋ค.(์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ ๋ฑ)
- ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ์์ ํ ์๋ก์ด ํจ๋ฌ๋ค์๋ณด๋ค๋, ๋ณด๋ค ๊ด์ฉ์ ์ธ ๋ฉ์๋ ๋ฑ์ ํ์ฉํ์ฌ ์ฝ๋ ๊ฐ์ ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ข๋ค.
2. ๋ถํ์ํ ์ถ์ํ, ์ง๋์น ํตํฉ
- ๊ธฐ์กด ์ฝ๋๋ฅผ ์ดํดํ์ง ๋ชปํ ์ฑ ์๋ง์ ์๋ก์ด ์ถ์ํ๋ ์ง์ํด์ผ ํ๋ค.
- ๊ทธ๋ฃนํํด์ ์ ๋ ๊ฒ๋ค์ ๊ทธ๋ฃนํํ๋ ๋ฑ์ ์ค์๋ฅผ ์ ์ง๋ฅผ ์ ์๋ค.
- ํ๋ก๊ทธ๋๋ฐ ๋ ผ๋ฆฌ๋ฅผ ์๊ณ , ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ์๋๋ก ๋ฌถ๊ฑฐ๋ ๋ถํดํ๋ ๋ฐฉํฅ์ผ๋ก ๋ฆฌํฉํฐ๋ง ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ข๋ค.
- ๋ํ, ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ฌด๋ฆฌํ๊ฒ ํ๋๋ก ๋ฌถ๋ ๊ฒ ๋ํ ์ข์ง ์์ ๋ฐฉ๋ฒ์ด๋ค.
- ๋๋๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋ํด ๋ค๋ฅธ ์ค์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ํ์ํ ์ ์ฐ์ฑ์ ์ ์งํ๋ฉด์ ์ถ์ํ์ ๊ฐ์ ์ ๊ฐ์ ธ๊ฐ์ผ ํ๋ค.
- ๋จ์ํ "๊น๋ํ ์ฝ๋"๋ฅผ ์ํด ์ ์ฐ์ฑ์ ์ ๊ฑฐํ๋ ๊ฒ์ ์ข์ง ์์ ๋ฐฉ๋ฒ์ด๋ค.
3. ๊ธฐ์กด ์ฝ๋ ์ดํด๋ ํ์!!
- ๊ธฐ์กด ์ฝ๋๋ฅผ ์ดํดํ์ง ๋ชปํ ์ฑ ์ฝ๋๋ฅผ ๋ฐฐ์ฐ๋ ๋์ ์งํํ๋ ๋ฆฌํฉํ ๋ง์ ์๋ง์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ค.
- ๋ฒ๊ทธ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ค์ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ฑฐํ์ฌ ์ฑ๋ฅ์ ์ ํ์ํค๋ ๋ฑ์ ๋ค์ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ๋ํ ๋น์ฆ๋์ค ๋งฅ๋ฝ์ ์ดํดํ๋ ๊ฒ๋ ์ค์ํ๋ค.
[๊ฒฐ๋ก ]: ์ฌ๋ฐ๋ฅธ ๋ฆฌํฉํ ๋ง ๋ฐฉ๋ฒ
1. ์์ ๊ฒ๋ถํฐ ์ ์ง์ ์ผ๋ก ๋ฆฌํฉํ ๋ง ํด๋๊ฐ์
2. ์ฝ๋๋ฒ ์ด์ค ์ผ๊ด์ฑ
3. ์ ํํ๊ณ ์์ ํ ์ดํด
4. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ๋ฑ ์๋ก์์ ์ถ๊ฐํ ๋๋ ํ์ ๋์๊ฐ ํ์ํ๋ค
5. ๋ฆฌํฉํ ๋ง ์ ์ ํ ์คํธ๋ฅผ ์งํํ๋ฉด์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ฅผ ํตํด ๊ธฐ์กด ๊ธฐ๋ฅ์ ์ ์งํ ์ ์๋ค
*๋ฆฌํฉํ ๋ง ๋๊ตฌ
> ๋ฆฐํ ๋๊ตฌ(Prettier, Eslint ), ์ฝ๋ ๋ฆฌ๋ทฐ, ํ ์คํธ(Vitest, Storybook ๋ฑ), ์ ์ ํ AI ํ์ฉ
๐ค ์ด์ ๋ํ ๋์ ์๊ฐ
๋ฆฌํฉํ ๋ง์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋ค์ ํ๋ฒ ๋๊ผ๋ค. ๋, ์ข์ ๋ฆฌํฉํ ๋ง๊ณผ ๋์ ๋ฆฌํฉํ ๋ง์ ํ ๋ ์ฐจ์ด์์ ๊นจ๋ฌ์๋ค.
๊ณผ๋ํ ๋ณ๊ฒฝ์ด ๊ฒฐ๊ตญ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ค. ๊ทธ๋งํผ ๊ธฐ์กด ์ฝ๋ ์ดํด๋ ํ์์ธ ๊ฒ ๊ฐ๋ค.
์ ์ด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ์์ ๋ฌด์๋ฏธํ ์ฝ๋๋ ์์ผ๋ฉฐ, ์ ๋ฐฐ๋ค์ด ์์ฑํ ์ฝ๋ ํ ์ค ํ ์ค ์ ํํ ์ดํดํ๊ณ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ค์ํ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
'๐๏ธ IT ๋ํฅ ํ์ ๋ฐ ๋์ ์๊ฐ ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
GN+: Nginx, Github๋ก ์ด์ โก๏ธโGitHub์ ์ฅ์ โ (1) | 2024.09.09 |
---|---|
BOM, DevSecOps: ์ํํธ์จ์ด ๊ณต๊ธ๋ง ๋ณด์์ ์ค์์ฑ (3) | 2024.09.05 |
CI์ CD๋ ์ ๋ถ๋ฆฌ๋์ด์ผ ํ๋ ๊ฐ? (3) | 2024.09.03 |
Linux: SSH ๋ฐ Key-Based ์ธ์ฆ (0) | 2024.09.02 |
๋ฆฌ๋ ์ค xz ๊ฒฐํจ: ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ์๋ ์ค๋ฆฌ์ ๋ฌธ์ (0) | 2024.08.30 |