본문 바로가기
Etc

Refactoring 간단 예제

by SuperDT 2024. 8. 25.


실제 사례를 살펴보기 전에 
간단한 예제를 살펴보도록 할게요

 

리팩토링은 누구나 흔하게 다 하고 있습니다

다만, 정의된 용어에 해당하는 것을 인지를 못할 뿐입니다

 

 

Remove Duplication (중복 코드 제거)

 

아래 코드는 할인 금액과 세금을 계산하는 함수입니다

 

총 금액에서 빼거나 더하는 것은 다르지만

비율에 해당하는 실제 금액을 계산하는 부분이 동일한 형태로 포함되어 있어요

public double getDiscount(double price, double rate) {
    double p = price * discountRate;  //비용 * 할인율을 통해 실제 할인액을 계산
    return price - p;
}

public double getTax(double price, double rate) {
    double t = price * taxRate; //비용 * 세율을 통해 실제 세액을 계산
    return price + t;
}

 

굳이 중복 제거를 할 필요는 없지만

한 번 제거 해본다면 아래와 같은 형태로 리팩토링 가능합니다

public double rateToPrice(double price, double rate) {
    return price * rate;
}

public double getDiscount(double price, double rate) {
    double p = rateToPrice(price, rate); 
    return price - p;
}

public double getTax(double price, double rate) {
    double t = rateToPrice(price, rate);
    return price + t;
}

 

 

변수 이름 변경 (Rename Variable)

 

getDiscount와 getTax는 알아보기가 힘들어서 리팩토링이 필요해라고 생각든다면

아래와 같이 리팩토링도 가능합니다

public double rateToPrice(double price, double rate) {
    return price * rate;
}

public double getPriceWithDiscount(double price, double rate) {
    double p = rateToPrice(price, rate); 
    return price - p;
}

public double getPriceWithTax(double price, double rate) {
    double t = rateToPrice(price, rate);
    return price + t;
}

 

 

'Etc' 카테고리의 다른 글

서블릿(Servlet)  (0) 2024.09.01
Eclipse 'Loading descriptor for ~' 에러  (1) 2024.08.30
Ajax 요청시 사용하는 withCredentials 옵션의 의미  (0) 2024.08.25
용어정리  (0) 2024.08.18
Refactoring이란  (0) 2024.08.11