[Clean Code] 2. ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„

2023. 9. 25. 15:44ใ†๊ธฐ์ˆ  ์„œ์ /Clean Code

728x90

 

์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ 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๋ฅผ ์„ž์–ด ์“ฐ๋ฉด ํ˜ผ๋ž€์Šค๋Ÿฝ๋‹ค. 

์ผ๊ด€์„ฑ ์žˆ๋Š” ์–ดํœ˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฐ˜๊ฐ‘๊ฒŒ ์—ฌ๊ธธ ์„ ๋ฌผ์ด๋‹ค. 

 

 

 

๐Ÿ‘ฉโ€๐Ÿ’ป ์‚ฌ์‹ค ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ด๋ฆ„ ์ง“๋Š”๊ฒŒ ์ƒ๋‹นํžˆ ์–ด๋ ต๋‹ค.๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋ญ˜๋กœ ํ• ์ง€.. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๋ญ˜๋กœ ํ• ์ง€ ํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ  ๋˜‘๋˜‘ํ•œ ์ธํ…”๋ฆฌ์ œ์ด์˜ ๋„์›€์„ ๋ฐ›์•„์„œ ใ…‹ใ…‹ ํ•ด๊ฒฐํ•˜๊ณค ํ–ˆ๋Š”๋ฐ... ํด๋ฆฐ ์ฝ”๋“œ์—์„œ ์•Œ๋ ค์ค€? ์ด ๊ทœ์น™๋“ค์„ ์ ์šฉํ•ด์„œ ์ง€๊ธˆ ๋‹น์žฅ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค. 

 

์šฐ์„  ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋ถ€ํ„ฐ ์ˆ˜์ •ํ•˜๊ณ ... ๊ทธ ํ›„์— ๋ณด์ž... 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90