[swift] Swift 리팩토링

리팩토링은 소프트웨어 개발 과정에서 기존 코드를 개선하고 재구성하는 작업입니다. Swift 언어를 사용하여 개발을 한다면, 코드의 가독성과 유지보수성을 향상시키기 위해 다양한 리팩토링 기법을 적용할 수 있습니다.

이 글에서는 Swift 코드를 리팩토링하는 몇 가지 기법을 살펴보겠습니다.

1. 함수 분리하기

하나의 함수가 너무 많은 일을 하거나, 충분히 추상화되지 않은 경우에는 함수를 분리하는 것이 좋습니다. 이렇게 함으로써 코드의 가독성을 향상시키고, 유지보수를 쉽게 할 수 있습니다. 또한, 코드의 재사용성도 증가시킬 수 있습니다.

// 리팩토링 전
func calculateTotalPrice(items: [Item]) -> Float {
    var totalPrice: Float = 0
    for item in items {
        totalPrice += item.price
    }
    return totalPrice
}

// 리팩토링 후
func calculateTotalPrice(items: [Item]) -> Float {
    return items.reduce(0) { $0 + $1.price }
}

리팩토링 전 코드에서는 반복문을 사용하여 합계를 계산하고 있습니다. 그러나 리팩토링 후 코드에서는 reduce 메서드를 사용하여 간단하게 합계를 계산하였습니다.

2. 중복 코드 제거하기

중복된 코드는 유지보수에 어려움을 초래하고, 버그의 원인이 될 수 있습니다. 따라서 중복 코드를 제거하는 것이 좋습니다. Swift에서는 함수나 프로퍼티를 이용하여 중복 코드를 제거할 수 있습니다.

// 리팩토링 전
func greet() {
    print("Hello, world!")
}

func introduce() {
    print("My name is John.")
    print("I am 20 years old.")
    print("I'm a developer.")
    greet()
}

// 리팩토링 후
func sayHello() {
    print("Hello, world!")
}

func introduce() {
    print("My name is John.")
    print("I am 20 years old.")
    print("I'm a developer.")
    sayHello()
}

리팩토링 후에는 greet 함수를 sayHello 함수로 변경하였습니다. 이렇게 함으로써 중복 코드를 제거하고, 코드의 가독성을 향상시켰습니다.

3. 변수명 개선하기

변수명은 코드의 가독성에 매우 중요한 역할을 합니다. 변수명이 너무 간단하거나 의미가 모호하다면 코드를 이해하고 수정하기 어렵습니다. 따라서 의미있는 변수명을 사용하여 코드의 가독성을 높이는 것이 좋습니다.

// 리팩토링 전
func calculateArea(width: Double, height: Double) -> Double {
    let w = width
    let h = height
    return w * h
}

// 리팩토링 후
func calculateArea(width: Double, height: Double) -> Double {
    let area = width * height
    return area
}

리팩토링 후에는 너비와 높이를 나타내는 wh 대신에 area라는 변수명을 사용하였습니다. 이렇게 함으로써 변수의 용도와 의미를 명확하게 전달할 수 있습니다.

이외에도, Swift에서는 여러 가지 리팩토링 기법을 활용할 수 있습니다. 예를 들어, 함수 추출하기, 클래스 분리하기, 조건문 단순화하기 등이 있습니다. 이러한 리팩토링 기법을 적극적으로 활용하여 좀 더 읽기 쉽고 유지보수가 용이한 코드를 작성할 수 있습니다.

Swift 문서

Swift 리팩토링 기법