Skip to content

imseongtae/martin-fowler-refactoring-2nd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ

๋ฆฌํŒฉํ„ฐ๋ง์ด ํ•„์š”ํ•œ ์ด์œ 

  • ์ผ๋ถ€ ์ฝ”๋“œ๋ฅผ ๋ฉ”์„œ๋“œ ๋ฐ–์œผ๋กœ ๋นผ์„œ ๋ณ„๋„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ , ์ฝ”๋“œ ์ผ๋ถ€๋ฅผ ์ƒ์† ๊ตฌ์กฐ์˜ ์œ„, ์•„๋ž˜๋กœ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ๋‚ด๋ฆฌ๋Š” ๋“ฑ์˜ ์ž‘์—…์ด ๋ˆ„์ ๋˜๋ฉด ์„ค๊ณ„๊ฐ€ ๋†€๋ž๋„๋ก ๊ฐœ์„ ๋œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ถ€์‹๋œ๋‹ค๋Š” ๊ฐœ๋…์˜ ์ •๋ฐ˜๋Œ€๊ฐ€ ๋ฐ”๋กœ ๋ฆฌํŒฉํ„ฐ๋ง์ด๋‹ค.
  • ์ž˜ ์ •๋ฆฌ๋œ ์šฉ์–ด๋Š” ๊ฐœ๋ฐœ ๋„๊ตฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ž๋™ํ™”๋œ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์„ ํƒํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค.

์Šคํ„ฐ๋””ํ•˜๋ฉฐ ์ •๋ฆฌํ•  ์‚ฌํ•ญ

  • ์ดํ•ด์— ์–ด๋ ค์›€์„ ๋Š๋‚€ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•˜๊ธฐ
  • ์™œ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š”์ง€ ํ˜น์€ ์™œ ์ดํ•ด ๋ชปํ•œ ๊ฒƒ ๊ฐ™์€์ง€ ๊ณ ๋ฏผํ•ด๋ณด๊ธฐ

table of contents

  1. ๋ฆฌํŒฉํ„ฐ๋ง-์˜ˆ์‹œ

๋ฆฌํŒฉํ„ฐ๋ง ์˜ˆ์‹œ

  1. ๊ธด ํ•จ์ˆ˜๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•  ๋•Œ๋Š” ๋จผ์ € ์ „์ฒด ๋™์ž‘์„ ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ง€์ ์„ ์ฐพ๋Š”๋‹ค.
  • ํ•จ์ˆ˜๋ช…: (~์— ๋Œ€ํ•œ ๊ธˆ์•ก), ์ถ”์ถœํ•œ ํ•จ์ˆ˜์—๋Š” ๊ทธ ์ฝ”๋“œ๊ฐ€ ํ•˜๋Š” ์ผ์„ ์„ค๋ช…ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์Œ
  • ์ถ”์ถœ๋œ ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ๋“ค์—ฌ๋‹ค ๋ณด๋ฉด์„œ ์ง€๊ธˆ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ์—†๋Š”์ง€ ๊ฒ€ํ† ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด thisAmount๋ฅผ result๋กœ ๋ณ€๊ฒฝ. ์ €์ž๋Š” ๋ณ€์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์— ํ•ญ์ƒ result ๋ผ๋Š” ์ด๋ฆ„์„ ์”€. ๊ทธ๋ž˜์•ผ ๋ณ€์ˆ˜์˜ ์—ญํ• ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ perf๋ฅผ aPerformance๋กœ ๋ฆฌํŒฉํ† ๋ง. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ๋™์  ํƒ€์ž… ์–ธ์–ด๋Š” ํƒ€์ž…์ด ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ๋„์›€์ด ๋จ. ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์— ์ ‘๋‘์–ด๋กœ ํƒ€์ž… ์ด๋ฆ„์„ ์ ๋Š”๋ฐ, ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์—ญํ• ์ผ ๋šœ๋ ทํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ๋ถ€์ • ๊ด€์‚ฌ(a/an)์„ ๋ถ™์ž„.
  • ์ž„์‹œ๋ณ€์ˆ˜๋ฅผ ์งˆ์˜ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ์ผ์˜ ๊ฐ€์น˜

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋ฐ”๋ณด๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง„์ •ํ•œ ์‹ค๋ ฅ์ž๋‹ค.

์ข‹์€ ์ฝ”๋“œ๋ผ๋ฉด ํ•˜๋Š” ์ผ์ด ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚˜์•ผ ํ•œ๋‹ค. ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ์ปค๋‹ค๋ž€ ์—ญํ• ์„ ํ•œ๋‹ค.

๋ฆฌํŒฉํ† ๋ง์„ ์œ„ํ•ด ๋‹จ๊ณ„๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •

  1. ๋ฐ˜๋ณต๋ฌธ ์ชผ๊ฐœ๊ธฐ: ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ˆ„์ ์‹œํ‚ค๋Š” ๋ถ€๋ถ„์„ ๋ถ„๋ฆฌ
  2. ๋ฌธ์žฅ ์Šฌ๋ผ์ด๋“œํ•˜๊ธฐ๋กœ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ๋ฌธ์ž์„ ๋ณ€์ˆ˜ ๊ฐ’ ๋ˆ„์  ์ฝ”๋“œ ๋ฐ”๋กœ ์•ž์œผ๋กœ ์˜ฎ๊น€
  3. ํ•จ์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ๋กœ ์ ๋ฆฝ ํฌ์ธํŠธ ๊ณ„์‚ฐ ๋ถ€๋ถ„์„ ๋ณ„๋„ ํ•จ์ˆ˜๋กœ ์ถ”์ถœ
  4. ๋ณ€์ˆ˜ ์ธ๋ผ์ธํ•˜๊ธฐ๋กœ volumeCredits ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐ

์Šคํ„ฐ๋”” ํ•จ๊ป˜ํ•˜๋Š” ๋ถ„๋“ค๊ณผ ๋Œ€ํ™”

๋ฆฌํŒฉํ„ฐ๋ง์— ๋Œ€ํ•ด

๋ฆฌํŒฉํ„ฐ๋ง์„ ์—…๋ฌด์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์งˆ๋ฌธ์„ ๋“œ๋ฆผ

Typing Duck
๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•™์Šตํ•œ ์ดํ›„ ํšŒ์‚ฌ์—์„œ ํ•˜๋ฃจ ์ข…์ผ ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•˜๊ณ  ์žˆ๋‹ค.

dev Jang
๊ฒฐ๊ตญ ํšŒ์‚ฌ๋Š” ์ด์ต์„ ์ถ”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌํŒฉํ„ฐ๋ง์„ ์‚ฌ์—…์ ์ธ ๊ด€์ ์—์„œ ์ด๋“์„ ์ถ”๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์œผ๋กœ ๋ณธ๋‹ค๋ฉด ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„๊ฐ€ ์–ด๋ ต๋‹ค ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

redrebel
๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„ ... ์ˆ˜์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์„ ์ˆ˜ ์—†๋‹ค. ๋ฆฌํŒฉํ„ฐ๋ง์€ ํ•„์ˆ˜์ด๋‹ค. 
๋ƒ„์ƒˆ๊ฐ€ ๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง€๋‚˜์น  ์ˆ˜๋Š” ์—†๋‹ค. ๋ฆฌํŒฉํ„ฐ๋ง์€ ํ”„๋กœ์˜ ์ž์„ธ์ด๋‹ค.

ํ•จ์ˆ˜ ์ด๋ฆ„ ์ง“๊ธฐ์— ๋Œ€ํ•ด

ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋˜ ์ค‘ 'ํ•จ์ˆ˜ ์ด๋ฆ„์ด ๋‚˜์˜๋ฉด ๊ทธ ์ฝ”๋“œ ๋˜ํ•œ ๋‚˜์˜๋‹ค'๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์™€์„œ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋‹ค๋“ค ์–ด๋–ป๊ฒŒ ์ง€์œผ์‹œ๋Š”์ง€ ๋ฌผ์–ด๋ด„

WhyBe
์ €๋„ ์ด๋ฆ„ ์ง€์„๋•Œ ๊ตฌ๊ธ€ ๋ฒˆ์—ญ๊ธฐ ๋งŽ์ด ๋Œ๋ ค์š”

dev Jang
์ €๋„ ๊ผญ ๋ฒˆ์—ญ๊ธฐ ๋Œ๋ฆฝ๋‹ˆ๋‹น

Typing Duck์˜คํ›„ 10:35
๊ฐ€๋…์„ฑ์ด ๋„ˆ๋ฌด ์•ˆ์ข‹์•„์„œ ์ถ”๊ฐ€๊ธฐ๋Šฅ์„ ๋„ฃ์„ ์ˆ˜ ์—†์–ด์š”

redrebel
์–ด๋–ค ๋‚ ์€ ์ถœ๊ทผํ•ด์„œ ์—…๋ฌด์˜ 80%๊ฐ€ ํ•จ์ˆ˜ ์ด๋ฆ„์ง“๋Š” ์ผ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.
ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ์—ญํ• ๋งŒ์„ ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค.

Releases

No releases published

Packages

No packages published