리팩터링(refactoring)

리팩터링(refactoring)
1. 정의
– 기존 코드의 설계를 개선하는 절차
– 동작(operation)을 보존하는 변환
-> 겉으로 보이는 동작을 바꾸지 않고, 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 것 (Martin Fowler)

2. 리팩터링을 하는 이유
– 새로운 코드를 더 쉽게 추가할 수 있도록 하기 위해
– 기존 코드의 설계를 개선하기 위해
– 기존 코드를 더 잘 이해하기 위해
– 덜 짜증나는 코드로 만들기 위해

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
컴퓨터가 이해하는 코드는 어느 바보나 짤 수 있다. 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 짠다.” – Martin Fowler

<참고>
패턴(pattern) : 반복해 나나타는 설계 문제에 대한 표준 해법
설계 초기 단계부터 패턴을 적용하는 것보다 기존 설계를 개선하는 데 패턴을 사용하는 것이 더 낫다.