본문 바로가기

리팩토링

리팩토링-02

728x90
반응형
SMALL

리팩토링 기법과 예시코드

1. 반복문 쪼개기: 코드 내에 반복되는 부분을 분리하여 여러 개의 반복문으로 나누는 것을 의미합니다. 이를 통해 코드의 가독성을 높이고 유지보수를 용이하게 만들 수 있습니다.

 

2. 문장 슬라이드하기: 조건문이나 반복문 안에서 발생하는 부작용을 최소화하기 위해 문장을 이동시키는 기법입니다. 이를 통해 코드의 의도를 명확히 전달하고 코드의 가독성을 향상시킬 수 있습니다.

 

3. 함수 추출하기: 반복되는 코드 블록을 함수로 분리하는 기법입니다. 이를 통해 코드의 재사용성을 높이고 코드 중복을 줄일 수 있으며, 함수의 역할과 책임을 명확히 분리하여 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

 

4. 변수 인라인하기: 불필요한 중간 변수를 제거하고 해당 변수의 값을 직접 사용하는 기법입니다. 이를 통해 코드의 가독성을 높이고 메모리 사용을 최적화할 있으며, 코드의 복잡도를 감소시켜 유지보수를 용이하게 만듭니다.

 

반복문쪼개기

// 반복문 쪼개기 전
for i in 1...10 {
    print("현재 값: \(i)")
    print("값의 제곱: \(i * i)")
}

// 반복문 쪼개기 후
for i in 1...10 {
    print("현재 값: \(i)")
}

for i in 1...10 {
    print("값의 제곱: \(i * i)")
}

문장 슬라이드하기

// 문장 슬라이드하기 전
func calculateSum(a: Int, b: Int, c: Int) -> Int {
    let sum = a + b
    let multipliedSum = sum * c
    return multipliedSum
}

// 문장 슬라이드하기 후
func calculateSum(a: Int, b: Int, c: Int) -> Int {
    let sum = a + b
    return sum * c
}

함수 추출하기

// 함수 추출하기 전
func calculateSumAndMultiply(a: Int, b: Int, c: Int) -> Int {
    var sum = 0
    for i in 1...a {
        sum += i
    }
    
    var multipliedSum = 0
    for j in 1...b {
        multipliedSum += sum * j
    }
    
    return multipliedSum * c
}

// 함수 추출하기 후
func calculateSum(a: Int) -> Int {
    var sum = 0
    for i in 1...a {
        sum += i
    }
    return sum
}

func calculateSumAndMultiply(a: Int, b: Int, c: Int) -> Int {
    let sum = calculateSum(a: a)
    
    var multipliedSum = 0
    for j in 1...b {
        multipliedSum += sum * j
    }
    
    return multipliedSum * c
}

변수 인라인하기

// 변수 인라인하기 전
func calculateArea(length: Double, width: Double) -> Double {
    let area = length * width
    return area
}

// 변수 인라인하기 후
func calculateArea(length: Double, width: Double) -> Double {
    return length * width
}

 

코드가 길어지더라도 건강한 코드를 작성해야한다 :)

728x90
반응형
LIST

'리팩토링' 카테고리의 다른 글

리팩토링-03  (0) 2023.05.23
리팩토링-01  (0) 2023.05.21