본문 바로가기

리팩토링

리팩토링 is 리모델링 리팩토링은 다시 구조화 하는 것이다. 건물로 비유하면 리모델링 정도라고 보면 될거 같다. 보통 개발자들은 남들이 짜놓은 코드를 보면 코드가 엉망이라고 다시 짜야 한다고 한다. 대개는 다시 처음부터 짜고 그 복잡한 기능들을 구현하다보면 다시 스파게티 코드가 된다. (스파게티 코드라는 말을 쓴다. 엉망진창이라는 뜻이다.) 그러면 다른 누군가는 말을 한다. 다시 처음부터 짜야 한다고 역사는 반복된다고 했던가 그러면 건축물로 치면 처음부터 다시 짠다는 의미는 무너뜨린다는 것이다. 그리고 다시 짜는 것이다. 과연 효율적일까? 왜 그렇게 복잡한 코드가 되었을까 생각해보면 그럴만한 사연이 있기도 하다. 그러면 무엇이 좋을까? 개발을 처음할 때는 몰랐던 사실을 기능을 구현하고 나니 알았다면 알고 났을 때 어떤 구조가 .. 더보기
Refactoring 정의 - 프로그램의 외부사양(입력과 출력)을 변경하지 않은 채 내부구조를 안전하게 개선하는 테크닉 목적 - 프로그램을 이해하기 쉬운 상태로 유지하고, 확장성과 재이용성을 높이는 것 안전한 리팩토링을 위해서 - 리팩토링을 다른 작업을 분리하고, 리팩토링전후에 반드시 테스트한다. - 한 번에 최소한의 작업만 하고, 기존의 로직에 미치는 영향을 적게 하며, 반드시 백업 한다. 대표적인 리팩토링 '메소드 추출' 순서 - 적절한 이름의 새 메소드를 만든다. - 추출하고 싶은 로직을 새 메소드로 복사한다. - 추출된 로직 속의 로컬 변수를 새 메소드에 적합하도록 변경한다. - 컴파일하여 테스트한다. - 원래 메소드를 새로운 메소드를 호출하도록 변경한다. - 컴파일하여 테스트한다. 리팩토링 과정 - 이해하기 쉬운 변.. 더보기