✏️8.7 반복문 쪼개기 (Split Loop)
리팩터링 전
let averageAge = 0;
let totalSalary = 0;
for (const p of people) {
averageAge += p.age;
totalSalary += p.salary;
}
averageAge = averageAge / people.length;리팩터링 후
let totalSalary = 0;
for (const p of people) {
totalSalary += p.salary;
}
let averageAge = 0;
for (const p of people) {
averageAge += p.age;
}
averageAge = averageAge / people.length;🧷 배경
📍 반복문을 분리하는 이유?
두 개의 반복문으로 분리하여 수정해야 할 때 수정할 동작 하나만 이해하게 하자.
그 값만 곧바로 반환하기 때문에 사용하기 쉬워진다. 여러 일을 수행하면 구조체를 반환하거나 지역변수를 활용해야 한다.
리팩터링과 최적화를 구분하자.
🧷 절차
1. 반복문을 복제해 두 개로 만든다.
2. 사이드 이펙트를 제거한다.
3. 테스트 한다.
4. 각 반복문을 함수로 추출할지 고민한다.
🧷 예시
단순히 반복문 복제하기
부수효과를 초래할 수 있는 중복을 제거한다.
Last updated