๊ฐ๋ฐ์ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ง์ฃผํ๊ฒ ๋๋ ๊ฐ๋
, ํด๋ฆฐ ์ฝ๋. ๊ทธ์ค์์๋ ใClean Codeใ๋ผ๋ ์ฑ
์ด ๊ฐ์ฅ ์ ๋ช
ํ๋ค.
์ด๋ฒ์ ์ข์ ๊ธฐํ๋ก ํด๋ฆฐ์ฝ๋ ์คํฐ๋๋ฅผ ์งํํ๊ฒ ๋๋ค.

๊ฐ ์ฅ์ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๊ฐ๋จํ ์ ๋ฆฌํด๋ณผ ์์ ์ด๊ณ , ์ค๋์ 1์ฅ๊ณผ 2์ฅ์ ๋ด์ฉ์ ํจ๊ป ๋ค๋ค๋ณด์.
1์ฅ. ๊นจ๋ํ ์ฝ๋
๐งผ ๊นจ๋ํ ์ฝ๋๋?
ํด๋ฆฐ ์ฝ๋๋ฅผ ์ง์ผ ํ๋ค๋ ๋ง์ ์ฐ๋ฆฌ๋ ์ ๋ง ์๋ ์์ด ๋ฃ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ ๊ทธ๋์ผ ํ ๊น? ์ด๋ป๊ฒ ์ง๋ ๊ฒ ํด๋ฆฐ ์ฝ๋์ผ๊น?
๊นจ๋ํ ์ฝ๋๊ฐ ์ ํ์ํ์ง๋ ์ฌ์ค ๋ค๋ค ํ ๋ฒ์ฏค ๊ฒช์ด๋ดค์ ๊ฑฐ๋ค.
“ํ ์ค๋ง ๊ณ ์น๋ฉด ๋ ์ค ์์๋๋ฐ, ๋ชจ๋ ์๋ฐฑ ๊ฐ๋ฅผ ๊ฑด๋๋ฆฌ๊ฒ ๋์ด์…”
“์ฝ๋ ์์ ํ ๋๋ง๋ค ์๋ฑํ ๋ฐ์ ๋ฒ๊ทธ๊ฐ ๋์…”
์ฑ
์์๋ ์ด๋ ๊ฒ ๋งํ๋ค.
๊ธฐํ์ ๋ง์ถ๋ ์ ์ผํ ๋ฐฉ๋ฒ์, ์ฝ๋๋ฅผ ๊นจ๋ํ๊ฒ ์ง๋ ๊ฒ๋ฟ์ด๋ค.
๋์ ์ฝ๋๋ ๊ฒฐ๊ตญ ์๋๋ฅผ ๋๋ฆฌ๊ฒ ํ๋ค.
์ค์ํ ๊ฑด, ์ด๊ฑธ ๋จ์ํ ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋๋ผ ‘์ ๋ฌธ๊ฐ๋ก์์ ํ๋’๋ก ๋ณธ๋ค๋ ์ ์ด๋ค.
๊ฐ๋ฐ์๋ ์์ฌ์ฒ๋ผ ์ ๋ฌธ์ฑ์ ๊ฐ์ถ ์ฑ
์ ์๋ ์ง์
์ธ์ด๋ผ๋ ๋ป์ด๋ค.
ํ์๊ฐ ์๊ฐ ์๋ค๊ณ ์์ ์ ์ ์ ์ป์ง ๋ง๋ผ๊ณ ํด๋, ์์ฌ๋ ์ ๋ ๊ทธ ๋ง์ ๋ฐ๋ฅด์ง ์๋๋ค.
๊ทธ๊ฒ ํ์๋ฅผ ์ํ ๊ธธ์ด๊ณ , ์์ ์ด ์ง์ผ์ผ ํ ์์น์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ๋ฐ์๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
๊ธฐํ์ ์ซ๊ธด๋ค๊ณ ํด์ ๋์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋๋ฉด ์ ๋๋ค.
์ข์ ์ฝ๋๋ฅผ ์งํค๋ ์ผ์ ๊ฒฐ๊ตญ ์ฐ๋ฆฌ ๋ชซ์ด๋ค.
๐ง ๊นจ๋ํ ์ฝ๋๋ ์ด๋ค ์ฝ๋์ผ๊น?
์ฑ ์์๋ ์ฌ๋ฌ ์ ๋ช ๊ฐ๋ฐ์๋ค์ ์๊ฐ์ ์ธ์ฉํด ์ด๋ ๊ฒ ์ ๋ฆฌํ๋ค.
- ์ ์ฝํ๋ ์ฝ๋: ๋ง์น ์ ์ด ๋ฌธ์ฅ์ฒ๋ผ
- ํ๋์ ์ฑ ์๋ง ๊ฐ์ง ์ฝ๋: ๊ฐ ํจ์์ ํด๋์ค๊ฐ ‘๋ฑ ํ๋’์ ์ผ์ ํจ
- ์ฃผ์ ๊น๊ฒ ์ง์ธ ์ฝ๋: ๊ดํ ์๋๊ธฐ ์ซ์ ์ ๋๋ก ์์ฑ๋๊ฐ ๋์ ์ฝ๋
- ์ฝ๋ ์ฌ๋์ ๋ฐฐ๋ คํ ์ฝ๋: ๋ค๋ฅธ ์ฌ๋์ด ์ฝ๊ฒ ์ดํดํ๊ณ ๊ณ ์น ์ ์๋ ์ฝ๋
๊ฒฐ๊ตญ ๊นจ๋ํ ์ฝ๋๋ ‘์ฝ๋ ์ฌ๋์ ์ํด ์ด ์ฝ๋’๋ค.
์ฐ๋ฆฌ๋ ์ฝ๋์ ์ ์๋๊น, ๋
์๋ฅผ ์ํ ์ฑ
์๋ ์๋ค๋ ์๊ธฐ๋ค.
2์ฅ. ์๋ฏธ ์๋ ์ด๋ฆ
๊นจ๋ํ ์ฝ๋์ ์ฒซ๊ฑธ์์ ๋ฐ๋ก ์ด๋ฆ ์ง๊ธฐ์์ ์์๋๋ค.
์ฐ๋ฆฌ๋ ๋ณ์, ํจ์, ํด๋์ค, ํ์ผ ๋ฑ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์ด๋ฆ์ ๋ถ์ธ๋ค.
์ด๋ฆ ํ๋ ์ ์ง์ผ๋ฉด ์ฝ๋ ์ดํด๋ ์ฌ์์ง๊ณ , ํ์
ํ ๋ ์ค๋ช
ํ ์ผ๋ ์ค์ด๋ ๋ค!
โ
์ด๋ฆ ์ง๋ ๊ธฐ๋ณธ ๊ท์น
- ์๋๋ฅผ ๋ถ๋ช
ํ ๋๋ฌ๋ด๋ผ
int d; → int elapsedTimeInDays;
→ ์ฃผ์ ์์ด๋ ๋ฌด์จ ๋ป์ธ์ง ์ ์ ์๋๋ก! - ํจ์ถ์ ์ธ ํํ์ ํผํ๋ผ
getThem() → getFlaggedCells()
→ ๋ฌด์จ ๊ฑธ ๊ฐ์ ธ์ค๋์ง, ๋๊ตฌ๋ฅผ ์ํ ํจ์์ธ์ง ๋ถ๋ช ํ๊ฒ! - ๊ทธ๋ฆ๋ ์ ๋ณด๋ ์ฃผ์ง ๋ง๋ผ
accountList๊ฐ ์ค์ ๋ก List๊ฐ ์๋๋ผ๋ฉด?
→ accountGroup, accounts ๋ฑ ๋ ์ ํํ ํํ ์ฌ์ฉํ๊ธฐ - ์๋ฏธ ์๋ ๊ตฌ๋ถ์ ํผํ๋ผ
getActiveAccount(), getActiveAccounts(), getActiveAccountInfo()
→ ํท๊ฐ๋ฆฌ๊ธฐ๋ง ํ๊ณ ์ ๋ณด๋ ์์ - ๋ฐ์ ๊ฐ๋ฅํ ์ด๋ฆ์ ์จ๋ผ
genymdhms → generationTimestamp
→ ์ฝ๋๋ ๋ง์ฒ๋ผ ์์ฐ์ค๋ฝ๊ฒ ์ฝํ์ผ ํ๋ค - ๊ฒ์ ๊ฐ๋ฅํ ์ด๋ฆ์ ์จ๋ผ
MAX_CLASSES_PER_STUDENT๋ grep์ ์ ์กํ์ง๋ง 7์ ์๋๋ค
๐ ์ด๋ฐ ๋ค์ด๋ฐ์ ํผํ์
- a1, a2์ฒ๋ผ ์ฐ์๋ ์ซ์ ๋ถ์ด๊ธฐ
- Info, Data, Object, Variable, Table ๊ฐ์ ๋ถ์ฉ์ด ์ฐ๊ธฐ
- e, l, O์ฒ๋ผ ํท๊ฐ๋ฆฌ๋ ๋จ์ผ ๋ฌธ์
- HolyHandGrenade() ๊ฐ์ ๊ธฐ๋ฐํ์ง๋ง ์๋ฏธ ์๋ ์ด๋ฆ
๐ ์ผ๊ด์ฑ๊ณผ ๋งฅ๋ฝ๋ ์ค์ํ๋ค
- get, fetch, retrieve๋ฅผ ํด๋์ค๋ง๋ค ๋ค๋ฅด๊ฒ ์ฐ๋ฉด ํท๊ฐ๋ฆผ
- ์ปจํธ๋กค๋ฌ๋ Controller, ๋งค๋์ ๋ Manager์ฒ๋ผ ํต์ผ์ฑ ์๊ฒ
- Address, PostalAddress์ฒ๋ผ ๋ถ๋ช ํํ ์ด๋ฆ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ผ๋ก!
๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค ์ค์ํ ๊ฑด, ์ด๋ฆ์ด ๋งฅ๋ฝ ์์์ ์์ฐ์ค๋ฝ๊ฒ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ๊ฒ.
์๋ฅผ ๋ค์ด, state๋ผ๋ ๋ณ์๊ฐ ์์ ๋ ์ด๊ฒ ์ฃผ์์ ์ผ๋ถ์ธ์ง ํผ๋์ค๋ฝ๋ค๋ฉด
→ Address.state์ฒ๋ผ ํด๋์ค๋ ์ด๋ฆ๊ณต๊ฐ์ผ๋ก ๊ฐ์ธ์ ๋ช
ํํ๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ฒ ์ข๋ค.
โ๏ธ ๋ง๋ฌด๋ฆฌํ๋ฉฐ
๊นจ๋ํ ์ฝ๋๋ ๊ฒฐ๊ตญ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋, ์๋๊ฐ ๋ช ํํ๊ฒ ๋๋ฌ๋๋ ์ฝ๋๋ค.
์ด๋ฆ์ ์ ์ง๋ ๊ฒ๋ง์ผ๋ก๋ ์ฝ๋ ์ ์ฒด๊ฐ ๊น๋ํด์ง๊ณ , ํ์ ์ด ์ฌ์์ง๊ณ , ๋ฒ๊ทธ๊ฐ ์ค์ด๋ ๋ค.
๋น์ฅ์ ๊ท์ฐฎ์ ๋ณด์ฌ๋, ๊ฒฐ๊ตญ์ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์์ ํ ๊ธธ์ด๋ผ๋ ๊ฑธ ๊ธฐ์ตํ๋ฉฐ ๋๋ ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด ๊ณ์ํด์ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
'๐ > Clean Code(ํด๋ฆฐ ์ฝ๋)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 6์ฅ. ๊ฐ์ฒด์ ์๋ฃ ๊ตฌ์กฐ (0) | 2025.05.01 |
|---|---|
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 5์ฅ. ํ์ ๋ง์ถ๊ธฐ (0) | 2025.05.01 |
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 4์ฅ. ์ฃผ์ (0) | 2025.05.01 |
| [ํด๋ฆฐ์ฝ๋ ์คํฐ๋] 3์ฅ. ํจ์ (0) | 2025.04.30 |