[c#] 리팩터링과 성능 최적화

이번 포스트에서는 C# 코드베이스에서 리팩터링과 성능 최적화를 수행하는 방법에 대해 알아보겠습니다. 리팩터링은 코드를 재구성하여 가독성을 향상시키고 유지보수성을 높이는 과정을 의미하며, 성능 최적화는 코드 실행 시간을 단축하여 시스템의 성능을 향상시키는 과정을 의미합니다.

리팩터링

리팩터링은 코드의 내부 구조를 개선하는 과정으로, 코드의 가독성을 높이고 유지보수를 용이하게 만듭니다. C#에서 리팩터링을 수행하는 방법은 여러 가지가 있지만, 대표적으로 변수 및 메서드명을 명확하게 지어주는 작업, 중복 코드를 제거하고 함수를 분리하는 작업, 복잡한 조건문을 간결하게 만드는 작업 등이 있습니다.

// Before refactoring
public int CalculateTotalPrice(int quantity, int price)
{
    int totalPrice = quantity * price + 100 - 50 + (quantity / 2) * 10;
    return totalPrice;
}

// After refactoring
public int CalculateTotalPrice(int quantity, int unitPrice)
{
    int total = CalculateSubTotal(quantity, unitPrice);
    total -= 50;
    return total;
}

private int CalculateSubTotal(int quantity, int unitPrice)
{
    int subTotal = quantity * unitPrice + CalculateDiscount(quantity);
    return subTotal;
}

private int CalculateDiscount(int quantity)
{
    return (quantity / 2) * 10;
}

위 예시에서는 CalculateTotalPrice 메서드를 리팩터링하여 가독성을 높였고, 불필요한 연산을 줄여 성능을 향상시킴으로써 유지보수성과 성능을 함께 개선했습니다.

성능 최적화

성능 최적화는 프로그램의 실행 속도를 향상시키기 위한 작업으로, 코드 실행 시간을 단축하여 시스템의 성능을 향상시킵니다. C#에서 성능 최적화를 위해 고려해야 할 사항으로는 메모리 사용량을 줄이는 작업, 데이터 구조 및 알고리즘을 효율적으로 선택하는 작업, 여러 스레드를 활용하여 병렬 처리를 하는 작업 등이 있습니다.

// Before performance optimization
List<int> numbers = GetNumbers();
int sum = 0;
foreach (int num in numbers)
{
    sum += num;
}

// After performance optimization
List<int> numbers = GetNumbers();
int sum = numbers.Sum();

위 예시에서는 LINQ의 Sum 메서드를 활용하여 반복문을 대체하여 성능을 최적화했습니다.

리팩터링과 성능 최적화는 코드의 품질을 높이고 시스템의 성능을 향상시키는 데 중요한 작업입니다. C#에서 이러한 작업을 수행함으로써 더 나은 소프트웨어를 개발할 수 있습니다.

참고 자료