2023. 9. 25. 15:44ใ๊ธฐ์ ์์ /Clean Code
์๋๋ฅผ ๋ถ๋ช ํ ๋ฐํ๋ผ p.22
์ข์ ์ด๋ฆ์ ์ง์ผ๋ ค๋ฉด ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง ์ข์ ์ด๋ฆ์ผ๋ก ์ ์ฝํ๋ ์๊ฐ์ด ํจ์ฌ ๋ ๋ง๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ด๋ฆ์ ์ฃผ์๊น๊ฒ ์ฌํด ๋ ๋์ ์ด๋ฆ์ด ๋ ์ค๋ฅด๋ฉด ๊ฐ์ ํ๊ธฐ ๋ฐ๋๋ค. ๊ทธ๋ฌ๋ฉด (์์ ์ ํฌํจํด) ์ฝ๋๋ฅผ ์ฝ๋ ์ฌ๋์ด ์ข ๋ ํ๋ณตํด์ง๋ฆฌ๋ผ.
๋ณ์๋ ํจ์ ๊ทธ๋ฆฌ๊ณ ํด๋์ค ์ด๋ฆ์ ์ง์ ๋ ์ง๋ฌธ์ ๋ชจ๋ ๋ต ํ ์ ์์ด์ผ ํ๋ค.
1. ๋ณ์(ํน์ ๋ฉ์๋๋ ํด๋์ค)์ ์กด์ฌ ์ด์ ๋ ?
2. ์ํ ๊ธฐ๋ฅ์ ?
3. ์ฌ์ฉ ๋ฐฉ๋ฒ์ ?
์ฃผ์์ด ํ์ํ๋ค๋ฉด ์๋๋ฅผ ๋ถ๋ช ํ๊ฒ ๋๋ฌ๋ด์ง ๋ชปํ๋ค๋ ๋ง์ด๋ค.
๐ฉโ๐ป ์ง๊ธ๊น์ง ๋ด๊ฐ ์งฐ๋ ์ฝ๋์์ ์ฃผ์์ผ๋ก ์๋ฏธ๋ฅผ ๋๋ฌ๋ธ๊ฒ ์ผ๋ง๋ ๋ง์๊ฐ... ์ง๊ธ ๋น์ฅ ๋ด๊ฐ ์์ฆ ์งํ ์ค์ธ ํ๋ก์ ํธ์์ ํ ํด๋์ค๋ง ๋ค์ด๊ฐ๋ ๋ฐ๋ก ๋ณด์ผ ๊ฒ์ด๋ค... ์ง๊ธ ๋น์ฅ ๊ทธ๊ฒ๋ถํฐ ๊ณ ์น๋ ๊ฒ์ผ๋ก Clean Code ์์ํ๋ค.
๊ทธ๋ฆ๋ ์ ๋ณด๋ฅผ ํผํ๋ผ p.24
ํ๋ก๊ทธ๋๋จธ๋ ์ฝ๋์ ๊ทธ๋ฆ๋ ๋จ์๋ฅผ ๋จ๊ฒจ์๋ ์ ๋๋ค. ๊ทธ๋ฆ๋ ๋จ์๋ ์ฝ๋์ ์๋ฏธ๋ฅผ ํ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
๋๋ฆ๋๋ก ๋๋ฆฌ ์ฐ์ด๋ ์๋ฏธ๊ฐ ์๋ ๋จ์ด๋ฅผ ๋ค๋ฅธ ์๋ฏธ๋ก ์ฌ์ฉํด๋ ์๋๋ค.
์๋ฅผ ๋ค์ด ์ฌ๋ฌ ๊ณ์ ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ ๋ AccountList ์์ List๋ ํ๋ก๊ทธ๋๋จธ์๊ฒ ํน์ํ ์๋ฏธ์ด๋ค. ์ค์ ๊ณ์ ์ ๋ด๋ ์ปจํ ์ด๋๊ฐ List๊ฐ ์๋๋ผ๋ฉด ํ๋ก๊ทธ๋๋จธ์๊ฒ ๊ทธ๋ฆ๋ ์ ๋ณด๋ฅผ ์ฃผ๋ ๊ฒ์ด๋ค. List๊ฐ ์๋์๋ค๋ฉด Accounts ๋ผ๋๊ฐ AccountGroup ์ด๋ฐ์์ผ๋ก ๋ช ๋ช ํ์ด์ผ ํ๋ค.
๋ํ ์๋ก ํก์ฌํ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๋๋ก ํ๋ค.
์ผ๊ด์์ด ๋จ์ด์ง๋ ํ๊ธฐ๋ฒ์ ๊ทธ๋ฆ๋ ์ ๋ณด์ด๋ฏ๋ก ์ ์ฌํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ์.
์ด๋ฆ์ผ๋ก ๊ทธ๋ฆ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋์ฐํ ์๋ก๋ ์๋ฌธ์ L๊ณผ ๋๋ถ์ O๊ฐ ์๋ค. (๐ฉโ๐ป ์ด๊ฑด ์กฐ๊ธ๋ง ๊ฐ๋ฐํด๋ดค๋ค๋ฉด ์ํ ์ฌ ์ํฉ์ด๋ค. ๋คํํ ๋๋ ํ๋ฒ๋ L๊ณผ O๋ฅผ ์ฌ์ฉํด์ ํท๊ฐ๋ ธ๋ ๊ฒฝํ์ ์๋ค.. ^^ ๋คํ)
์๋ฏธ ์๊ฒ ๊ตฌ๋ถํ๋ผ p.25
ProductInfo, ProductData ๋ผ๊ณ ๋ถ๋ฅธ๋ค๋ฉด ๊ฐ๋ ์ ๊ตฌ๋ถํ์ง ์๊ณ ๊ทธ๋ฅ ์ด๋ฆ๋ง ๋ฌ๋ฆฌํ๊ฒ์ด๋ค. ๋ญ๊ฐ ๋ญ์ง ํ์ ์ด ์๋์ง ์๋๊ฐ..!! Info, Data, a, an, the ๋ ์๋ฏธ๊ฐ ๋ถ๋ถ๋ช ํ ๋ถ์ฉ์ด์ด๋ค.
๋ถ์ฉ์ด๋ฅผ ์ถ๊ฐํ ์ด๋ฆ์์๋ ์๋ฌด๋ฐ ์ ๋ณด๋ฅผ ์ ๊ณต๋ฐ์ง ๋ชปํ๋ค.
๋ถ์ฉ์ด๋ ์ค๋ณต์ด๋ค. NameString๊ณผ Name ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ. Customer์ CustomerObject ์ฐจ์ด๋ฅผ ์๊ฒ ๋๊ฐ?
์ฝ๋ ์ฌ๋์ด ์ฐจ์ด๋ฅผ ์๋๋ก ์ด๋ฆ์ ์ง์ด๋ผ.
๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๋ผ p.27
์ฌ๋๋ค์ ๋จ์ด์ ๋ฅ์ํ๋ค. ์ฐ๋ฆฌ ๋๋์์ ์๋น ๋ถ๋ถ์ ๋จ์ด๋ผ๋ ๊ฐ๋ ๋ง ์ ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์์์ผ๋ก ๋จ์ด๋ ๋ฐ์์ด ๊ฐ๋ฅํ๋ค. ๋ง์ ์ฒ๋ฆฌํ๋ ค๊ณ ๋ฐ๋ฌํ ๋๋๋ฅผ ํ์ฉํ์ง ์๋๋ค๋ฉด ์ํ๊น์ด ์ํด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ ํํ๋ผ.
๐ฉโ๐ป ๋ค๋ฅธ ๋ถ๊ณผ ์ฝ๋์ ๋ํด ์๊ธฐํ ๋ ๋ฐ์ํ๊ธฐ ์ฌ์ด ๋จ์ด ์ด๋ฆ์ ๊ฐ์ง ๋ณ์๋ช ์ผ๋ก ์๊ธฐํ๋๊ฒ ๋ซ์ง ์๊ฒ ๋๊ฐ..ใ
๋ฐ์ํ ๋.. ์.. ์ด.. ์ด๋ฌ๋ฉด์ ์๊ธฐํ๋ ๊ฒ๋ณด๋จ...
๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๋ผ p.28
WORK_DAYS_PER_WEEK ๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ผ๋ง๋ ์ฌ์ด์ง ์๊ฐํด๋ณด๋ผ. ๊ทธ๋ฅ 5๋ฅผ ์ฌ์ฉํ๋ค๋ฉด 5๊ฐ ๋ค์ด๊ฐ๋ ์ด๋ฆ์ ๋ชจ๋ ์ฐพ์ ํ ์๋ฏธ๋ฅผ ๋ถ์ํด ์ํ๋ ์์๋ฅผ ๊ฐ๋ ค๋ด์ผ ํ๋ฆฌ๋ผ.
๐ฉโ๐ป IDE์์๋ ์ด๋์๋ ๊ฒ์ํ ๋ ์ฐพ๊ธฐ ์ฌ์ด ์ด๋ฆ์ผ๋ก ํ์! ์ฌ๊ธฐ์ ๊ธฐ์ ๋ค ์ฌ์ฉํ๊ฑฐ๋ ๊ทธ๋ฐ ์ด๋ฆ์ผ๋ก ํ๋ค๋ฉด ๊ฒ์ํ์ ๋ ์ฐ๋ฅด๋ฅด ๋์์ ๊ฑฐ๊ธฐ์๋ ์ฐพ์์ผ ํ๋,,,
ํด๋์ค, ๋ฉ์๋ ์ด๋ฆ p.32
ํด๋์ค ์ด๋ฆ
ํด๋์ค ์ด๋ฆ๊ณผ ๊ฐ์ฒด ์ด๋ฆ์ ๋ช ์ฌ๋ ๋ช ์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค. Customer, WikiPage, Account, AddressParser ๋ฑ์ด ์ข์ ์์ด๋ค. Manager, Info, Data, Processor ๊ฐ์ ๋จ์ด๋ ํผํ๊ณ , ๋์ฌ๋ ์ฌ์ฉํ์ง ์๋๋ค.
๋ฉ์๋ ์ด๋ฆ
๋ฉ์๋ ์ด๋ฆ์ ๋์ฌ๋ ๋์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค. postPyament, deletePage,save ๋ฑ์ด ์ ํฉํ ์์ด๋ค.
์ ๊ทผ์, ๋ณ๊ฒฝ์, ์กฐ๊ฑด์๋ javaBean ํ์ค์ ๋ฐ๋ผ get,set, is ๋ฅผ ๋ถ์ธ๋ค.
ํ ๊ฐ๋ ์ ํ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ผ p.33
์ถ์์ ์ธ ๊ฐ๋ ํ๋์ ๋จ์ด ํ๋๋ฅผ ์ ํํด ์ด๋ฅผ ๊ณ ์ํ๋ค.
์๋ฅผ ๋ค์ด ๋๊ฐ์ ๋ฉ์๋๋ฅผ ํด๋์ค๋ง๋ค get, retrieve, fetch ์ด๋ ๊ฒ ์ ๊ฐ๊ฐ ๋ถ๋ฅด๋ฉด ๋์ค์ ์ฌ์ฉํ ๋ ํผ๋์ค๋ฝ๋ค.
์ด๋ ํด๋์ค์์ ์ด๋ ์ด๋ฆ์ ์ผ๋์ง ๊ธฐ์ตํ๊ธฐ ์ด๋ ต๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๋์ผ ์ฝ๋ ๊ธฐ๋ฐ์ controller, manager, driver๋ฅผ ์์ด ์ฐ๋ฉด ํผ๋์ค๋ฝ๋ค.
์ผ๊ด์ฑ ์๋ ์ดํ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฐ๊ฐ๊ฒ ์ฌ๊ธธ ์ ๋ฌผ์ด๋ค.
๐ฉโ๐ป ์ฌ์ค ๊ฐ๋ฐํ๋ฉด์ ์ด๋ฆ ์ง๋๊ฒ ์๋นํ ์ด๋ ต๋ค.๋ณ์ ์ด๋ฆ์ ๋ญ๋ก ํ ์ง.. ๋ฉ์๋ ์ด๋ฆ์ ๋ญ๋ก ํ ์ง ํ๋ค๊ฐ ๊ฒฐ๊ตญ ๋๋ํ ์ธํ ๋ฆฌ์ ์ด์ ๋์์ ๋ฐ์์ ใ ใ ํด๊ฒฐํ๊ณค ํ๋๋ฐ... ํด๋ฆฐ ์ฝ๋์์ ์๋ ค์ค? ์ด ๊ท์น๋ค์ ์ ์ฉํด์ ์ง๊ธ ๋น์ฅ ์งํ์ค์ธ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณผ ์์ ์ด๋ค.
์ฐ์ ๋ด๊ฐ ์ง ์ฝ๋๋ถํฐ ์์ ํ๊ณ ... ๊ทธ ํ์ ๋ณด์...
'๊ธฐ์ ์์ > Clean Code' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Clean Code] 3. ํจ์ (0) | 2023.09.26 |
---|---|
[Clean Code] 1. ๊นจ๋ํ ์ฝ๋ (0) | 2023.09.25 |
[Clean Code] 0. ์ด ์ฑ ์ ๊ณต๋ถํ๋ ์ด์ (0) | 2023.09.25 |