E D R , A S I H C RSS

How To Study Refactoring

Refactoring„ ˜น€ ๋™๋ช…˜ …„ ๊ณต๋ถ€•˜๋Š” ๋ฒ•


OOP๋ฅผ •˜๋“  •ˆ•˜๋“  ”„๋กœ๊ทธ๋ž˜๋ฐด๋ž€ —…„ •˜๋Š” ‚ฌ๋žŒด๋ผ๋ฉด ด …€ ž‹ ˜ ๊ณต๋ ฅ„ „œ๋„ˆ ๋‹จ๊ณ„ ๋ ˆ๋ฒจ—…‹œผœ „ ˆ˜ žˆ๋‹ค. žˆ๊ตฌ๋ ˆ•œ ๊ธฐˆ „ ตžˆ๋Š” ๊ฒƒด •„๋‹ˆ๊ณ  ๊ธฐ๊ฐ๊ณผ ๋‚ด๊ณต„ ฆ๊ฐ••˜๋Š” ๊ฒƒด๋‹ค. ˜นž๋Š” DesignPatterns ด „— Refactoring„ ๋ด•ผ •œ๋‹ค๊ณ ๋„ •œ๋‹ค. ด ๋งด –ด๋А  •๋„ ผ๋ฆฌ๊ฐ€ žˆ๋Š” ๊ฒƒด, šจ๊ณผ ธ •™Šต€ ๋ฌธ œ ˜‹ด „ –‰๋˜–ด•ผ •˜๊ธฐ ๋•Œ๋ฌธด๋‹ค. DesignPatterns๋Š” ๊‹œ  ฐจ›—„œ •ด๊ฒฐ•ˆ๋“ค„ ๋ชจ•„๋†“€ ๊ฒƒด๋‹ค. Refactoring„ ๋ณด๊ณ  ๋‚˜œ ๋ƒ„ƒˆ(Bad Smell)๋ฅผ ๋งก„ ˆ˜ žˆ๋Š” ›„๊ฐ„ ๋ฐœ๋‹ฌ‹œผœ•ผ •œ๋‹ค. Refactoring˜ ๋ชฉ๋ก„ ๋ชจ๋‘ ™ธšฐ๋Š” ๊ฒƒ€ ฐ ˜๋ฏธ๊ฐ€ —†๋‹ค. ๊ทธ๊ฒƒ๋ณด๋‹ค ๋ƒ„ƒˆ๋‚˜๋Š” ฝ”๋“œ๋ฅผ ๋А๋‚„ ˆ˜ žˆ๋Š” ๊ฐˆ˜„„ ‚คšฐ๋Š” ๊ฒƒด ๋” ค‘š”•˜๋‹ค. ๋ณธธ€ ผฃผผ— •œ ๊ฐ€ง€”ฉ ๋‚˜œ ๋ƒ„ƒˆ๋ฅผ  ••ด๋†“๊ณ  ๊ทธ ๊ธฐ๊ฐ„ ๋™•ˆ—๋Š” ž‹ ด  ‘•˜๋Š” ๋ชจ๋“  ฝ”๋“œ—„œ ๊ทธ ๋ƒ„ƒˆ๋งŒด๋ผ๋„ ™•‹คžˆ ๋งก๋„๋ก ง‘ค‘•˜๋Š” ๋ฐฉ๋ฒ•„ ๊ถŒ•œ๋‹ค. ผ๋ช… ผทจง‘ค‘›„๊ฐ๋ฒ•. Œจ„ด ๊ฐœ๋…„ ๋งŒ๋“  ๊ถ•๊ฐ€ ฌ๋ฆฌŠค† ผ •Œ๋ ‰‚ฐ๋”๋‚˜ GoF˜ ๋ž„”„ กดŠจ€ ข‹€ ๋””žธด๋ž€ ๋‚˜œ ๊ฒƒด —†๋Š” ƒƒœ๋ผ๊ณ  •œ๋‹ค. ๋ฌดƒ‰ ๋ฌด๋ฏธ ๋ฌดทจ˜ ็„ก็ˆ  ่‡ช็„ฝ”๋“œ๊ฐ€ ๋˜๋Š” ๊ทธ๋‚ „ œ„•ด ˜ค๋Š˜๋„ šฐ๋ฆฌ๋Š” ๋ฆฌŒฉ† ๋งด๋ผ๋Š” ๆœ‰็ˆฒ๋ฅผ ตžŒ๋‹ค. -- ๊น€ฐฝค€, ๋งˆดฌ๋กœ†Œ”„Šธ›–ด 2001๋…„ 11›”˜ธ

๊ธฐ•™œผ๋กœ šฐ๋ฆฌ ‚ฌƒ‚ฌ— ฐ š„ ๊ทธ€ ฒ •™žš”, "„œšธ„œ …๋งŒ ‚ฌ๋‹ค ๋ง•œ ‚ฌ๋žŒ"œผ๋กœ ด๋ฆ„„ ๋‚ ๋ฆด  •๋„๋กœ —„ฒญ๋‚œ ง€‹š•„ ๊ณผ‹œ•˜๋˜ ‚ฌƒ๊ฐ€ ˜œ๊ฐ• ตœ•œ๊ธฐ๋Š” ๊ทธ˜  €ˆ  <็ฅžๆฐฃ้€š>—„œ ๋ˆˆ— †ต•˜๋Š” ๋ฒ•(็›ฎ้€š), ๊ท€— †ต•˜๋Š” ๋ฒ•(่€ณ้€š), ฝ”— †ต•˜๋Š” ๋ฒ•(้ผป้€š) ๋“„ ด•ผ๊ธฐ•˜๊ณ  žˆ๋‹ค. –ด๋–ป๊ฒŒ •˜๋ฉด šฐ๋ฆฌ๋Š” ฝ”— ๋„†ต•  ˆ˜ žˆ„๊นŒ? ๋ฆฌŒฉ† ๋ง„ ๊ณต๋ถ€•˜๊ฐ๋‚˜ ˜น€ –ˆ๋˜ ‚ฌ๋žŒ๋“ค—๊ฒŒ ๋งŽ€ ˜๊ฐ๊ณผ ๋ฉ”ƒ€ฌ๋ฅผ ฃผ๋Š” …ด๋‹ค. ผ๋…„ ๊ถŒ•œ๋‹ค. --๊น€ฐฝค€

ˆ˜๋ จ๋ฒ•
  • ผทจง‘ค‘›„๊ฐ๋ฒ•
  • Minimize Comments : ฝ”๋“œ˜ ๊ฐ€๋…„„ ๋–จ–ด๋œจ๋ฆฌง€ •Š๊ฐ๋‚˜ ˜น€ ˜คžˆ๋ ค ˜ฌ๋ฆฌ๋ฉด„œ ฃผ„„ ตœ†Œ™”•˜๋„๋ก ๋…ธ๋ ฅ•œ๋‹ค. ด๋ ‡๊ฒŒ •˜๋ฉด, ž๋™œผ๋กœ ๋ฆฌŒฉ† ๋งด ด๋ค„ง€๋Š” ๊ฒฝšฐ๊ฐ€ ๋งŽ๋‹ค.
  • Follow OAOO : OAOO ๋ฒ•น™„ ๊ฐ€๋Šฅ•˜๋ฉด ตœ๋Œ€•œ ๋”ฐ๋ฅด๋ ค๊ณ  •œ๋‹ค. ๋ฆฌŒฉ† ๋ง ž๋ฐœ๊ณตด „„๋‹ค.
  • Follow LawOfDemeter : ๋””๋ฏธ„ฐ ๋ฒ•น™„ ๊ฐ€๋Šฅ•˜๋ฉด ง€‚ค๋ ค๊ณ  •œ๋‹ค. –ด๋–ค ๋ฆฌŒฉ† ๋งด  € ˆ๋กœ ด๋ค„ง€๊ฐ๋‚˜ •„š” —†–ดง€๋Š”๊ฐ€?
  • Pair Refactoring : •จ๊ป˜ ๋ฆฌŒฉ† ๋ง•œ๋‹ค. ˜ผž •˜๋Š” ๊ฒƒ ๋ณด๋‹ค ›”ฌ ๋นจ๋ฆฌ ›”ฌ ๋” ๋งŽ€ ๊ฒƒ„ ๋ฐฐšธ ˆ˜ žˆ๋‹ค. Šนžˆ, ๊ฐž ž‘„–ˆ๋˜ ฝ”๋“œ๋ฅผ •จ๊ป˜ ๋ฆฌŒฉ† ๋ง•˜๊ณ ,  œ‚ผž˜ ฝ”๋“œ๋ฅผ ๋˜ •จ๊ป˜ ๋ฆฌŒฉ† ๋ง•ด ๋ณด๋ผ. ‚ฌ๋žŒด ๋งŽ๋‹ค๋ฉด ๋‹ค๋ฅธ Ž˜–ด๊ฐ€ ๋ฆฌŒฉ† ๋ง•œ ๊ฒƒ๊ณผ „œ๋กœ ๋น„๊ต•˜๊ณ  † ๋ก •ด๋ณด๋ผ.
  • Separate The What From The How : "–ด๋–ป๊ฒŒ"™€ "๋ฌด—‡„"„ ๋ถ„๋ฆฌ•˜๋„๋ก •˜๋ผ. –ด๋–ค ๋ฆฌŒฉ† ๋งด ฐฝ๋ฐœ•˜๋Š”๊ฐ€?


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:26
Processing time 0.0119 sec