소프트웨어/Refactoring & TDD

리팩토링이란?

falconer 2007. 6. 15. 13:47
리팩토링이란?
여기저기 중복된 코드는 모아서 하나의 메소드로 만들고, 의미가 불명확한
메소드 이름은 명확한 이름으로 바꾸고, 하나의 메소드가 지나치게 길다면
보다 짧고 이해하기 쉬운 메소드들의 조합으로 바꾸면 코드가 훨씬 깔끔해지고
관리하기도 쉬워질 것이다. 이와 같이 리팩토링은 겉으로 보이는 동작의
변화없이 소프트웨어의 내부구조(디자인)을 바꾸는 작업니다.
이해하기 어려운 코드를 리팩토링하여 이해하기 쉽게 할 수 있고, 새로운
기능을 추가하기 전에 리팩토링을 하여 기능추가가 쉽도록 코드 구조를
바꿀 수도 있다. 요구사항이 바뀌거나 새로운 요구사항이 추가되면서 이를
코드에 반영하다 보면 코드가 처음에 의도했던 디자인과 점점 멀어질수 있는데,
이때도 리팩토링을 통해 디자인을 항상 적절한 상태로 유지시킬 수 있다.

저는 리팩토링기능 중에 move기능만 사용해봤는데요
예를 들어 Test.java 라는 코드가 c:\java\에 있는데
이 코드를 c:\java\example\test\로 이동한다면
Test.java 코드 맨 윗줄에
package example.test; <- 이런 구문이 추가되어야 하는데
이것을 리팩토링이 자동으로 해준다는 것이지요..

만약 옮긴 코드가 하나가 아니라 100개라면 일일히 손으로
바꾸어 줘야 하는 수고를 덜어주는것이지요

이클립스에서 프로젝트에서 새로운 package(폴더) 만든다음
하나의 소스파일을 선택하시고 메뉴에서 refactor->move 기능선택하셔서
새로만드신 폴더로 이동한다음에
소스파일을 열어보시면 새로운 구문이 추가된게 보일겁니다..

출처 : Java세상을 덮치는 eclipse 책 참조