메서드 내용 직접 삽입

메서드 내용 직접 삽입 (Inline Method)은 메서드 내용을 호출한 곳에 직접 삽입하여 메서드 호출을 제거하는 리팩토링 기법입니다. 이 기법을 적용하면 메서드 호출에 따른 오버헤드를 줄일 수 있으며, 코드 가독성과 유지보수성을 향상시킬 수 있습니다.

예를 들어, 다음과 같은 메서드가 있다고 가정해보겠습니다.

func calculateTotalPrice(price: Double, count: Int) -> Double {
    var totalPrice = price * Double(count)
    if count > 10 {
        totalPrice *= 0.9
    }
    return totalPrice
}

이 메서드를 호출하여 계산 결과를 얻는 코드가 여러 군데에 사용된다면, 다음과 같이 메서드 내용을 직접 삽입할 수 있습니다.

// before
let totalPrice = calculateTotalPrice(price: 100, count: 15)
print(totalPrice)

// after
var totalPrice = 100 * Double(15)
if 15 > 10 {
    totalPrice *= 0.9
}
print(totalPrice)

위 예시에서는 calculateTotalPrice 메서드를 호출하는 대신 메서드 내용을 직접 삽입하여 코드를 간결하게 만들었습니다. 

장점은 불필요한 메서드 호출을 줄이고, 코드 가독성과 유지보수성을 향상시켰습니다.

단, 이 기법을 적용할 때는 메서드가 길거나 복잡하다면 이해하기 어려운 코드가 되어 유지보수성이 떨어질 수 있으므로 주의가 필요합니다. 

또한, 메서드를 직접 삽입하면 코드 중복이 발생할 수 있으므로, 이를 방지하기 위해 중복되는 코드는 별도의 메서드로 분리하는 것이 좋습니다.

 

감사합니다.