본문 바로가기
반응형

Code_Refactoring5

임시변수 분리 (Split Temporary Variable) 임시 변수 분리는 리팩토링 기법 중 하나로, 특정 표현식이 복잡하거나 길어서 코드 가독성이 나빠지는 경우, 해당 표현식을 임시 변수로 추출하여 가독성을 높이는 기법입니다. 다음은 Swift 예시 코드입니다. 다음 코드는 학생들의 수학 시험 성적을 평균 내는 함수입니다. 기존 코드에서는 배열의 요소들을 모두 더한 값을 변수에 할당하여 계산하고 있습니다. func calculateAverageScore(scores: [Int]) -> Double { var totalScore = 0 for score in scores { totalScore += score } return Double(totalScore) / Double(scores.count) } 위 코드를 임시 변수 분리를 사용하여 개선해보겠습니다. 먼.. 2023. 3. 11.
직관적 임시변수 사용 (Introduce Explaining Variable) 직관적 임시변수 사용 (Introduce Explaining Variable)은 임시변수를 사용하여 복잡한 식이나 계산 결과를 저장하고, 이를 이해하기 쉬운 이름으로 명명하여 가독성을 높이는 리팩토링 기법입니다. 예를 들어, 다음과 같은 코드가 있다고 가정해보겠습니다. func calculateTotalPrice(price: Double, count: Int) -> Double { var totalPrice = price * Double(count) if count > 10 { totalPrice *= 0.9 } return totalPrice } 위 코드에서 totalPrice는 price와 count를 사용하여 계산되므로, 이를 이해하기 어려울 수 있습니다. 이를 직관적인 임시변수를 사용하여 가독성을.. 2023. 3. 11.
임시변수를 메서드 호출로 전환 (Replace Temp with Query) 임시변수를 메서드 호출로 전환 (Replace Temp with Query)은 임시변수를 메서드 호출로 대체하여 코드 중복과 가독성 문제를 해결하는 리팩토링 기법입니다. 이 기법을 적용하면 임시변수를 사용하지 않으므로 코드 중복과 가독성 문제를 해결할 수 있습니다. 예를 들어, 다음과 같은 코드가 있다고 가정해보겠습니다. func calculateTotalPrice(price: Double, count: Int) -> Double { let totalPrice = price * Double(count) let isDiscountable = count > 10 var finalPrice = totalPrice if isDiscountable { finalPrice *= 0.9 } return finalPr.. 2023. 3. 11.
임시변수 내용 직접 삽입 (Inline Temp) 임시변수 내용 직접 삽입 (Inline Temp)은 임시변수를 사용하지 않고 그 값을 직접 참조하여 코드를 간결하게 만드는 리팩토링 기법입니다. 이 기법을 적용하면 임시변수를 사용하지 않으므로 코드 중복과 가독성 문제를 해결할 수 있습니다. 예를 들어, 다음과 같은 코드가 있다고 가정해보겠습니다. func calculateTotalPrice(price: Double, count: Int) -> Double { let totalPrice = price * Double(count) let isDiscountable = count > 10 var finalPrice = totalPrice if isDiscountable { finalPrice *= 0.9 } return finalPrice } 위 코드에서는 .. 2023. 3. 11.
메서드 내용 직접 삽입 메서드 내용 직접 삽입 (Inline Method)은 메서드 내용을 호출한 곳에 직접 삽입하여 메서드 호출을 제거하는 리팩토링 기법입니다. 이 기법을 적용하면 메서드 호출에 따른 오버헤드를 줄일 수 있으며, 코드 가독성과 유지보수성을 향상시킬 수 있습니다. 예를 들어, 다음과 같은 메서드가 있다고 가정해보겠습니다. func calculateTotalPrice(price: Double, count: Int) -> Double { var totalPrice = price * Double(count) if count > 10 { totalPrice *= 0.9 } return totalPrice } 이 메서드를 호출하여 계산 결과를 얻는 코드가 여러 군데에 사용된다면, 다음과 같이 메서드 내용을 직접 삽입할 .. 2023. 3. 11.
반응형