리팩터링/리팩터링 기법

리팩터링. 반복문 쪼개기 (Split Loop)

developer-tj 2023. 2. 22. 12:00
반응형

하나의 반복문에서 여러 다른 작업을 하는 코드를 쉽게 찾아볼 수 있다.

 

반복문을 여러개로 쪼개면 보다 쉽게 이해하고 수정할 수 있다.

 

성능 저하가 발생 할 수 있으나 미미하다.

리팩터링 이후에 반복문을 쪼개서 병목이라 밝혀지면 합치면 된다.

 

int averageAge = 0
int totalSalary = 0
for (auto people : peoples)
{
	averageAge += people.age;
	totalSalary += people.salary;
}
averageAge = averageAge / totalSalary;

 

위 코드는 사람의 평균 나이와 총 급여를 구하는 로직이다.

하나의 반복문에서 2가지의 의도를 가지고 있다.

1. 모든 사람 나이를 구한다.

2. 모든 사람 급여를 구한다.

 

int totalSalary = 0
for (auto people : peoples)
{
	totalSalary += people.salary;
}

int averageAge = 0
for (auto people : peoples)
{
	averageAge += people.age;
}
averageAge = averageAge / peoples.length();

위 코드 처럼 2번의 반복문으로 의도가 구분되게 나누면 읽기가 편해진다.

이 반복문들을 의도를 가진 함수로 추출하는 것도 고려할 수있다.