[kotlin] 코드 리펙터링 시나리오 구성하기

코드 리팩터링은 소프트웨어의 기능을 변경하지 않고 내부 구조를 재구성하는 작업을 말합니다. 적절한 리펙터링을 통해 코드의 가독성을 높일 뿐만 아니라 유지보수성을 높일 수 있습니다. 이번에는 코틀린 언어를 사용한 코드의 리펙터링 시나리오를 구성해보겠습니다.

1. 코드 분석

우선 리팩터링 대상인 코드의 분석을 진행합니다. 이때 코드의 기능과 구조를 파악하여 어떤 리펙터링 기법을 적용해야 하는지를 결정합니다.

fun calculateArea(shape: String, width: Double, height: Double): Double {
    var area = 0.0
    if (shape == "rectangle") {
        area = width * height
    } else if (shape == "triangle") {
        area = 0.5 * width * height
    }
    return area
}

위의 코드는 도형의 종류에 따라 넓이를 계산하는 함수입니다. 하지만 코드가 복잡하고 가독성이 낮은 편입니다. 이를 개선하기 위해 리펙터링을 수행해보겠습니다.

2. 리펙터링 적용

2.1. 조건문 분해하기

첫 번째로 조건문을 분해하여 각 도형에 대한 넓이 계산을 별도의 함수로 분리합니다.

fun calculateArea(shape: String, width: Double, height: Double): Double {
    return when (shape) {
        "rectangle" -> calculateRectangleArea(width, height)
        "triangle" -> calculateTriangleArea(width, height)
        else -> throw IllegalArgumentException("Invalid shape")
    }
}

fun calculateRectangleArea(width: Double, height: Double): Double {
    return width * height
}

fun calculateTriangleArea(width: Double, height: Double): Double {
    return 0.5 * width * height
}

위와 같이 조건문을 분해하여 각 도형에 대한 넓이 계산을 별도의 함수로 분리함으로써 코드를 더욱 명확하고 간결하게 만들 수 있습니다.

3. 코드 검토 및 테스트

리펙터링을 마친 후에는 코드를 검토하고 테스트하여 기능이 올바르게 동작하는지 확인해야 합니다.

결론

코드 리펙터링은 코드의 가독성과 유지보수성을 향상시키는 중요한 작업입니다. 적절한 시나리오를 구성하여 리펙터링을 수행함으로써 코드의 품질을 향상시킬 수 있습니다.