Page 10 - 006963
P. 10
“리팩토링(refactoring)은 코드를 변경하는 것이 아닙니다.”
맞는 말이지만, 여기에는 더 많은 것이 포함됩니다. 리팩토링은 코드를 변경하는 방법 중 하나이
지만, ‘코드를 변경하다’는 모호한 말을 설명하려면 한 가지 중요한 제약 조건이 있습니다. ‘코드
동작’을 바꾸면 안 된다는 것입니다. 이 말을 들으면 두 가지 궁금증이 생길 것입니다.
● 코드 동작이 변하지 않는다는 것을 어떻게 보장할 수 있을까요?
● 코드 동작은 변하지 않으면서 코드를 변경한다는 것은 어떤 의미일까요?
이 장에서는 이러한 궁금증의 답을 찾아 나갈 것입니다. 이미 웹에서 광범위하게 다루는 자바스크
립트 역사는 설명하지 않습니다.
1.1 Refacto R ing JavaSc R ipt
코드 동작이 변하지 않는다는 것을
어떻게 보장할 수 있을까?
이 질문의 답은 매우 어렵습니다. 하지만 다행히도 리팩토링을 할 때 동작의 모든 유형을 다루지
는 않습니다. 일반적으로 다음 내용을 다룹니다.
● 구현 세부 사항
● 불특정하고 검증되지 않은 동작
● 성능
간단히 정리하면 테스트와 버전 관리를 사용합니다.
기본적인 리팩토링 작업을 다룬 논문(http://www.ai.univ-paris8.fr/~lysop/opdyke-thesis.pdf)에
서 윌리엄 옵다이크(William Opdyke)가 이야기한 새로운 접근법에 따르면, 코드 변경과 안전성을 보
장하는 자동화 도구를 사용하는 것입니다. 전문적인 프로그래머는 이미 코드의 변경 감지를 도구
에 맡김으로써 사람이 발생시킬 수 있는 문제들을 제거하여 변화의 유형들을 줄여 나갈 수 있다고
눈치챘을 것입니다.
026
리팩토링 자바스크립트(본문)최종.indd 26 2018-09-19 오전 1:31:09