본문 바로가기

리팩토링

[리팩토링] 제6장 메서드 정리 리팩토링 제6장 메서드 정리 리팩토링의 주된 작업은 코드를 포장하는 메서드를 적절히 정리하는 것이다. 거의 모든 문제점은 장황한 메서드로 인해 생긴다. 장황한 메서드에는 많은 정보가 들어 있는데 마구 얽힌 복잡한 로직에 정보들이 묻혀버린다. 메서드 추출 Extract Method 어떤 코드를 그룹으로 묶어도 되겠다고 판단될 땐 그 코드를 빼내어 목적을 잘 나타내는 직관적인 이름의 메서드로 만들자. 메소드 추출 기법은 제일 많이 사용되는 리팩토링 기법이다. 메서드가 너무 길거나 코드에 주석을 달아야만 의도를 이해할 수 있을 때 코드를 빼내어 별도의 메서드로 만든다. 메서드 추출로 코드의 명료성이 향상되기만 한다면, 메서드명이 추출한 코드보다 길어도 메서드 추출을 실시해야 한다. 메서드가 적절히 잘게 쪼개져..
[리팩토링] 제3장 코드의 구린내 리팩토링 제3장 코드의 구린내 리팩토링을 언제 적용할지 파악하는 능력은 리팩토링 기법을 적용하는 방법만큼 중요하다. 중복코드 Duplicated Code 중복코드는 반드시 리팩토링을 통해 개선할 필요가 있다. 똑같은 코드 구조가 두 군데 이상 있을 때는 그 부분을 하나로 통일해서 개선한다. 중복된 코드는 코드를 관리하기 어렵게 한다. 장황한 메서드 Long Method 메서드가 길면 길수록 코드를 이해하기 이려워지고, 메서드를 재사용하기 힘들어 진다. 리팩토링으로 코드의 재사용성을 높이고 메서드를 이해하기 쉽도록 나누어서 개선한다. 특히 기능 설명이 주석으로 처리된 코드 구간을 메서드로 만들 수 있다면 좋다. 방대한 클래스 Large Class 코드 분량이 너무 방대하거나 기능이 지나치게 많은 클래스는 ..
[리팩토링] 제2장 리팩토링 개론 리팩토링 제2장 리팩토링 개론 이 장에서는 이론적인 설명으로 돌아가서 리팩토링의 주요 원리와 리팩토링할 때 고려해야 할 사안에 대해 설명하겠다. 리팩토링은 무엇인가 리팩토링이란 겉으로 드러나는 기능은 그대로 둔 채, 알아보기 쉽고 수정하기 간편하게 소프트웨어 내부를 수정하는 작업 또는 리팩토링 기법을 연달아 적용해서 겉으로 드러나는 기능은 그대로 둔 채 소프트웨어 구조를 변경하는 작업 리팩토링은 단순한 코드 정리가 아니다. 리팩토링 과정을 통해 코드 효울성도 높일 수 있고 코드 구조도 체계화할 수 있다. 상황에 따라 어느 리팩토링 기법을 적용하는 것이 적절한지 파악할 줄 알아야 한다. 또한 리팩토링으로 인한 버그를 최소화하는 방식을 따르는 것이 중요하다. 리팩토링의 정의로부터 강조할 사항은 다음 두가지다..
[리팩토링] 제1장 맛보기 예제 리팩토링 제 1장 맛보기 예제 설계가 조잡한 시스템은 어디를 수정해야 하는지 찾기 힘들어 수정도 어렵다. 수정할 위치를 찾기 힘들면 개발자가 실수할 가능성이 높아져서 버그가 생긴다. 코드를 복사해서 붙이게 되면 나중에 그 코드를 수정할 때마다 계속 같은 부분을 복사해서 붙여야 하기 때문에 아주 번거롭고 에러가 생길 수도 있다. 사용 기간이 길고 추후 수정해야 할 가능성이 있는 프로그램은 복사해서 붙이는 과정에서 큰 문제가 생길 수 있다. 그래서 매번 코드를 복사해서 붙일 필요가 없게 프로그램을 개선해야 한다. 프로그램이 당장은 문제가 없을지 몰라도 나중엔 사용자가 요구한 기능을 수정하기 힘들어서 애먹을 것이다. 이 상황이 리팩토링해야 할 시점이다. 프로그램에 기능을 추가해야 하는데 코드 구조가 조잡해서 ..