4์ฅ. ์ฃผ์
๐งพ ์ฃผ์์ ‘ํ์์ ’์ด๋ค
์ฃผ์์ ์ข์ ์ฝ๋์ ๋์ฒด์ฌ๊ฐ ์๋๋ค.
์ฃผ์์ด ๋ง๋ค๋ ๊ฑด, ์ด์ฉ๋ฉด ์ฝ๋๋ง์ผ๋ก๋ ์๋๊ฐ ์ ์ ๋ฌ๋์ง ์์๋ค๋ ์ ํธ์ผ ์๋ ์๋ค.
๋ฌผ๋ก ์ฃผ์์ด ํญ์ ๋์๋ค๋ ๋ป์ ์๋๋ค. ํ์ํ ๊ฒฝ์ฐ๋ ๋ถ๋ช ํ ์๋ค.
๋ค๋ง ์ด ์ฅ์์๋ ์ด๋ ๊ฒ ๊ฐ์กฐํ๋ค:
“์ฃผ์์ ์คํจ์ ์งํ๋ค.”
์กฐ๊ธ ๊ณผ๊ฐํ ํํ์ด์ง๋ง, ๊ทธ๋งํผ ‘์ฃผ์ ์์ด๋ ์ถฉ๋ถํ ์ฝํ๋ ์ฝ๋’๋ฅผ ์งํฅํ์๋ ๋ฉ์์ง๋ก ๋ฐ์๋ค์ด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์ฃผ์์ ๋ฌ๊ธฐ ์ , “ํน์ ์ฝ๋ ์์ฒด๋ก ๋ ๋ช
ํํ๊ฒ ํํํ ์๋ ์์๊น?” ํ๊ณ ํ ๋ฒ์ฏค ๋๋์๋ณด๋ ์ต๊ด์ด ํ์ํ๋ค๋ ์ด์ผ๊ธฐ๋ค.
โ ๋์ ์ฃผ์ vs โ
์ข์ ์ฃผ์
โ ๋์ ์ฃผ์
- ์ฝ๋๋ฅผ ๋ณด์ํ๋ ค๋ ๋ณ๋ช ์ฉ ์ฃผ์
- ๋๋ฌด ์ค๋๋ผ์ ์ฌ์ค๊ณผ ์ด๊ธ๋ ์ฃผ์
- ์ค๋ณต๋๊ฑฐ๋ ์๋ฏธ ์๋ ์ค๋ช
- ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํด๋ฒ๋ฆฐ ์ฃฝ์ ์ฝ๋
- ๋๋ฌด ์ฅํฉํ๊ฑฐ๋ ๋ชจํธํ ํํ
โ ์ข์ ์ฃผ์
- ๋ฒ์ , ๋ผ์ด์ ์ค ๊ด๋ จ ์ค๋ช
- ์ ๊ท์, ๋ ์ง ํฌ๋งท ๋ฑ ์ต์ํ์ง ์์ ํํ ์ค๋ช
- ๊ตฌํ ๋ฐฉ์์ ๋ํ ๊ฒฐ์ ์๋ ๊ณต์
- ๊ฒฝ๊ณ ์ฑ ์๋ด, ํ ์คํธ ์กฐ๊ฑด, // TODO ์ฃผ์ ๋ฑ
๐ฅ ์ฃผ์์ด ๋ฌธ์ ๊ฐ ๋๋ ์ด์
- ์๊ฐ์ด ์ง๋๋ฉด ์ฝ๋๋ง ๋ฐ๋๊ณ ์ฃผ์์ ๋ฐฉ์น๋๊ธฐ ์ฝ๋ค
- ์๋ชป๋ ์ฃผ์์ ์๋ ๊ฒ๋ณด๋ค ๋ ์ํํ๋ค
- IDE, ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์๋ ์ง๊ธ์ “์ฃผ์ ์ด๋ ฅ”๋ ๋ถํ์ํ๋ค
์ง์ค์ ์ฝ๋์ ์๋ค.
์ฝ๋๋ง์ด ์๊ธฐ ์ผ์ ์ง์ค๋๊ฒ ๋งํ๋ค.
๐ ์ฃผ์๋ณด๋ค ๋ ์ข์ ์ ํ: ์ฝ๋๋ก ๋งํ์
์ฃผ์์ ๋ฌ๊ธฐ ์ ์ ์ด๋ ๊ฒ ์๊ฐํด๋ณด์.
“์ด๊ฑธ ํจ์๋ก ๋นผ๊ฑฐ๋, ๋ณ์ ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด ์ค๋ช
์์ด๋ ์ ์ ์์ง ์์๊น?”
๐ฌ ์์ 1: ์กฐ๊ฑด๋ฌธ ์ค๋ช ์ ํจ์๋ก ๋ฐ๊พธ๊ธฐ
// ์ง์์ด ๋ณต์ง ํํ ๋์์ธ์ง ํ์ธ if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))
→ ์ด๋ ๊ฒ ๋ฐ๊พธ๋ฉด ์ฃผ์์ด ํ์ ์๋ค:
if (employee.isEligibleForFullBenefits())
๐ฌ ์์ 2: ๊ณ์ฐ ์ฃผ์ ๋์ ๋ณ์๋ก ๋ถ๋ฆฌ
// ๊ธฐ๋ณธ ๊ธ์ฌ + ์๋น - ์ธ๊ธ double salary = (basePay + bonus) - tax;
→ ๋ ์ฝ๊ธฐ ์ฌ์ด ๋ฐฉ์:
double grossIncome = basePay + bonus; double salary = grossIncome - tax;
๐งน ๊ทธ๋ฐ์ ํผํด์ผ ํ ์ฃผ์ ์ต๊ด
- ์ฃผ์์ผ๋ก ์ฒ๋ฆฌ๋ ์ฝ๋ → ์ง์ฐ๊ณ Git์ ๋งก๊ธฐ์
- ๋ซ๋ ๊ดํธ ์ ์ฃผ์ → ํจ์๊ฐ ๋๋ฌด ํฌ๋ค๋ ์ ํธ์ผ ์ ์์
- ๋ฐฐ๋์ฒ๋ผ ์ค ๊ธ๋ ์ฃผ์ → ํ์์์1
- ์๋ฏธ ์๋ Javadoc (/** the name */) → ํ์์์2
- ์ ์ญ ์์คํ ์ค๋ช ์ ํน์ ํจ์ ์ฃผ์์ → ํผ๋๋ง ์ค
โ๏ธ ๋ง๋ฌด๋ฆฌํ๋ฉฐ
“์ฃผ์์ ์คํจ๋ฅผ ๋งํํ๋ ์๋จ์ด์ง, ์๋ํ ๊ฒ ์๋๋ค.”
์กฐ๊ธ ๊ฐํ๊ฒ ๋ค๋ฆด ์๋ ์์ง๋ง, ์ด ๋ง์ ํต์ฌ์ “์ฝ๋ ์์ฒด๊ฐ ๋งํ ์ ์๋ค๋ฉด ๊ตณ์ด ์ฃผ์์ ์์กดํ์ง ์์๋ ๋๋ค”๋ ๋ป์ด๋ค.
์ ๋ง ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด, ์ฃผ์์ ๋ฌ๊ธฐ ์ ์ ์ฝ๋๋ก ๋ ์ ํํํ ๋ฐฉ๋ฒ์ด ์๋์ง ๋จผ์ ๊ณ ๋ฏผํด๋ณด์.
์๋๋ฅผ ๋๋ฌ๋ด๋ ์ด๋ฆ, ์งง๊ณ ๋ช
ํํ ํจ์, ๊ฐ๊ฒฐํ ๊ตฌ์กฐ๋ง์ผ๋ก๋ ์ฝ๊ธฐ ์ข์ ์ฝ๋๋ ์ถฉ๋ถํ ๊ฐ๋ฅํ๋ค.
์กฐ๊ธ์ฉ ๊ฐ์ ํด๋๊ฐ๋ฉฐ ์ฃผ์ ์์ด๋ ์๋๊ฐ ๋ณด์ด๋ ์ฝ๋๋ฅผ ๋ง๋๋ ์ต๊ด์ ๊ฐ์ ธ๋ด์ผ๊ฒ ๋ค๐
'๐ > Clean Code(ํด๋ฆฐ ์ฝ๋)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 6์ฅ. ๊ฐ์ฒด์ ์๋ฃ ๊ตฌ์กฐ (0) | 2025.05.01 |
|---|---|
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 5์ฅ. ํ์ ๋ง์ถ๊ธฐ (0) | 2025.05.01 |
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 3์ฅ. ํจ์ (0) | 2025.04.30 |
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 1&2์ฅ. ํด๋ฆฐ ์ฝ๋์ ์๋ฏธ ์๋ ์ด๋ฆ (0) | 2025.04.30 |