잊지 않겠습니다.

Kent Beck의 두개의 모자.
개발하기 위해 리팩토링을 사용할 때, 두가지 구별된 작업(기능 추가와 리팩토링)을 위해 시간을 나눠야지 된다. 기능을 추가할 때는 기존 코드를 건드려서는 안되고 단지 새로운 기능을 추가해야지 된다. 테스트를 추가하고, 테스트가 잘 동작하는지를 확인함으로써 진행상황을 알수 있다. 리팩토링을 할 때는 기능을 추가해서는 안되고, 단지 코드의 구조에만 신경 써야 한다. 그리고 어떤 테스트도 추가하지 않는다. 단지 인터페이스가 변하여 작업을 계속하기 위해서 어쩔 수 없는 경우에만 테스트를 수정 한다. 작업을 할때.. 자신이 어떤 모자를 쓰고 있는지를 알고 있어야지 된다. 


가장 어려운 이야기인듯.; 
기능을 추가하다보면, 이 기능이 추가될때, 구조를 변경시켜야지 될 때가 있을때.. 계속해서 모자를 바꿔쓰면서 나중에는 어떤 모자를 쓰고 있는지를 헛갈릴때가 많은 것 같은데...

좀더 어떤 일을 하고 있는지에 대한 자신에게 명확히 하는 것이 좋을듯. 쉬워보이는 말이지만 매우매우 어려운 이야기.
Posted by Y2K
,