소프트웨어 개발 중 반복되는 코드나 복잡한 코드 조각을 함수로 추출하는 것은 코드의 가독성과 유지보수성을 향상시키는 중요한 리팩터링 기법 중 하나입니다.
왜 함수를 추출해야 하나요?
반복되는 코드를 함수로 추출함으로써, 코드 중복을 줄이고 에러를 방지할 수 있습니다. 또한, 긴 함수를 여러 단계로 분해하여 각 단계를 더 작고 이해하기 쉬운 함수로 만들 수 있습니다. 코드의 목적을 명확하게 나타내어 가독성을 높이고, 다른 부분에서 재사용할 수 있는 코드 블록을 생성할 수 있습니다.
어떻게 함수를 추출하나요?
함수를 추출하는 과정은 다음과 같습니다.
-
함수 추출 지점 식별: 반복되거나 복잡한 코드 조각을 찾아내고, 이를 새로운 함수로 분리할 수 있는 지점을 식별합니다.
-
새 함수 정의: 추출할 코드 조각을 새로운 함수로 정의합니다. 함수 이름은 해당 기능을 명확하게 나타내는 이름으로 지정해야 합니다.
-
매개변수 정의: 새로운 함수에 필요한 매개변수를 식별하고 정의합니다.
-
원본 함수 수정: 추출한 코드를 새로운 함수를 호출하는 형태로 원본 함수에서 제거합니다.
예시
아래는 JavaScript 코드의 예시입니다. 원본 함수에서 중복되는 코드를 새로운 함수로 추출하는 과정을 보여줍니다.
// 원본 함수
function calculateTotalPrice(quantity, price) {
// 중복 코드 블록
let discount = 0;
if (quantity > 100) {
discount = 0.1;
} else {
discount = 0.05;
}
let total = quantity * price;
total -= total * discount;
// 중복 코드 블록
console.log("Total price:", total.toFixed(2));
}
위 코드에서 할인 계산 부분을 새로운 함수로 추출해보겠습니다.
// 원본 함수
function calculateTotalPrice(quantity, price) {
let discount = calculateDiscount(quantity);
let total = quantity * price;
total -= total * discount;
console.log("Total price:", total.toFixed(2));
}
// 새로운 함수
function calculateDiscount(quantity) {
if (quantity > 100) {
return 0.1;
} else {
return 0.05;
}
}
위와 같이 코드를 함수로 추출하면, 코드의 가독성과 유지보수성을 향상시킬 뿐 아니라 할인 계산 부분을 다른 함수에서도 활용할 수 있습니다.
함수 추출은 코드의 품질을 향상시키는데 중요한 요소이며, 개발자들이 코드 리팩터링을 통해 지속적으로 개선해 나가는 것이 중요합니다.