TIL(μ½”λ“œλ¦¬νŽ™ν† λ§ Code-Refactoring)

2024. 6. 7. 22:57ㆍTIL

πŸ’‘μ½”λ“œλ¦¬νŽ™ν† λ§ (Code-Refactoring )μ΄λž€?

 

βœν”„λ‘œμ νŠΈ ν•˜λ‚˜λ₯Ό 끝내고 μ½”λ“œλ¦¬νŽ™ν† λ§ ν•œλ‹€λŠ” 말을 μ—¬λŸ¬λ²ˆ λ“£κ²Œ λ˜μ–΄ μ •ν™•νžˆ 이것이 무엇을 λ§ν•˜λŠ” μ§€ μ°Ύμ•„λ³΄κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

1. λ¦¬νŽ™ν† λ§μ΄λž€?

- λ¦¬νŽ™ν† λ§μ€(refactoring)은 결과의 변경없이 μ½”λ“œμ˜ ꡬ쑰λ₯Ό μž¬μ‘°μ •ν•¨μ„ μ˜λ―Έν•œλ‹€.- Martin Fowker와 Kent Beck에 μ˜ν•΄ μ •μ˜ λ˜μ—ˆμœΌλ©° μ½”λ“œμ˜ λ‘œμ§μ„ κΉ¨λ—ν•˜κ³  μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ λ””μžμΈν•œλ‹€ λ³Ό 수 μžˆλ‹€.- 주둜 가독성을 높이고 μœ μ§€λ³΄μˆ˜λ₯Ό νŽΈν•˜κ²Œ ν•˜λ©°, 버그λ₯Ό μ—†μ• κ±°λ‚˜ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” ν–‰μœ„λŠ” μ•„λ‹ˆλΌμ‚¬μš©μžκ°€ λ³΄λŠ” μ™ΈλΆ€ 화면은 κ·ΈλŒ€λ‘œ λ‘λ©΄μ„œ λ‚΄λΆ€ 논리 ꡬ쑰λ₯Ό κ°œμ„ ν•˜λŠ” μœ μ§€λ³΄μˆ˜ ν–‰μœ„λ₯Ό λœ»ν•œλ‹€.

 

 

2. λ¦¬νŽ™ν† λ§μ˜ λͺ©μ 

 - λ¦¬νŽ™ν† λ§μ˜ λͺ©μ μ€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 더 μ΄ν•΄ν•˜κΈ° 쉽고 μˆ˜μ •ν•˜κ²Œ μ‰½κ²Œ λ§Œλ“œλŠ” 것이닀.  μ„±λŠ₯을 μ΅œμ ν™” μ‹œν‚€λŠ” 것이 μ•„λ‹ˆλΌ μ½”λ“œμ˜ ν’ˆμ§ˆμ„ μ’‹κ²Œ λ§Œλ“€μ–΄ 개발 속도 증가에 도움을 μ€€λ‹€.(이해와 μˆ˜μ •μ΄ 쉽기 λ•Œλ¬Έμ—)

 

 

3. μ–΄λ–€ 뢀뢄을 λ¦¬νŽ™ν† λ§ ν•΄μ•Όν•˜λŠ”κ°€

- μ‚Όμ§„ κ·œμΉ™ : 3번 쀑볡, 즉 같은 ν–‰μœ„κ°€ 3번 반볡 λœλ‹€λ©΄ λ¦¬νŽ™ν† λ§μ„ μ§„ν–‰ν•œλ‹€.

- λ©”μ„œλ“œ, λ³€μˆ˜, 클래슀 λ“±λ“± 이름이 ν˜Όλ™λ  λ•Œ μ§„ν–‰ν•œλ‹€.

- μ½”λ“œλ₯Ό κ²€ν† ν•  λ•Œ μ§„ν–‰ν•œλ‹€. 

 

 

4. λ¦¬νŽ™ν† λ§μ˜ 절차

 

 - μ†Œκ·œλͺ¨ λ¦¬νŽ™ν† λ§ν›„ ν…ŒμŠ€νŠΈλ₯Ό 톡해 잘 μž‘λ™ν•˜λŠ” μ§€ λ‹€μŒ λ‹¨κ³„λ‘œ λ„˜μ–΄κ°€λŠ” μ‹μœΌλ‘œ μ§„ν–‰ν•œλ‹€.

 

 

5. ν΄λ¦°μ½”λ“œμ™€ λ¦¬νŽ™ν† λ§?

- λ¦¬νŽ™ν† λ§μ΄ 더 넓은 κ°œλ…μ΄λ‹€.

- ν΄λ¦°μ½”λ“œλŠ” λ‹¨μˆœνžˆ 가독성을 높이기 μœ„ν•œ μž‘μ—…μœΌλ‘œ 이루어져 μžˆλ‹€λ©΄, λ¦¬νŽ™ν† λ§μ€ ν΄λ¦°μ½”λ“œλ₯Ό ν¬ν•¨ν•œ μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•œ μ½”λ“œ κ°œμ„ μ„ ν•˜λŠ” ν–‰μœ„μ΄λ‹€.

- ν΄λ¦°μ½”λ“œλŠ” 섀계뢀터 잘 이루어져 μžˆλŠ” 것이 μ€‘μš”ν•˜κ³ , λ¦¬νŽ™ν† λ§μ€ 결과물이 λ‚˜μ˜¨ ν›„ μˆ˜μ •μ΄λ‚˜ μΆ”κ°€ μž‘μ—…μ΄ 진행될 λ•Œ κ°œμ„ ν•΄λ‚˜κ°€λŠ” 것이 μ˜¬λ°”λ₯Έ λ°©ν–₯이라 λ³Ό 수 μžˆλ‹€.

 

 

 

 

 

 

 

**μ°Έμ‘°λΈ”λ‘œκ·Έ

ν΄λ¦°μ½”λ“œμ™€ μ½”λ“œ λ¦¬νŒ©ν† λ§ (tistory.com)

 

ν΄λ¦°μ½”λ“œμ™€ μ½”λ“œ λ¦¬νŒ©ν† λ§

ν΄λ¦°μ½”λ“œμ™€ λ¦¬νŒ©ν† λ§ “컴퓨터가 μ΄ν•΄ν• μˆ˜ μžˆλŠ” μ½”λ“œλŠ” μ–΄λŠ λ°”λ³΄λ‚˜ λ‹€ μ§€ 수 μžˆλ‹€. 쒋은 ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” μ½”λ“œλ₯Ό μ§ λ‹€.” Martin Fowler ν”„λ‘œμ νŠΈλ₯Ό ν•˜κ²Œλ˜λ©΄ μ—¬λŸ¬ λͺ…μ˜ 개발자

devuna.tistory.com

Code-Refactoring(μ½”λ“œ λ¦¬νŽ™ν† λ§) μ΄λž€??✍✍ (velog.io)