반응형
변수 쪼개기(Split Variable)는 변수를 여러 개로 분리하여, 각 변수가 한 가지 용도로만 사용되도록 하는 것입니다.
다음은 사각형의 둘레와 넓이를 구하여 출력하는 로직입니다.
int temp = 2 * (height + width);
cout << temp << endl;
temp = height * width;
cout << temp << endl;
위 코드에서 temp 변수는 사각형의 둘레를 구할 때 사용되고, 또한 사각형의 넓이를 구할 때도 사용됩니다.
이처럼 값이 2가지의 의미로 사용됩니다.
변수 쪼개기를 이용하여 다음과 같이 리팩터링 할 수 있습니다.
int perimeter = 2 * (height + width);
cout << perimeter << endl;
int area = height * width;
cout << area << endl;
둘레를 구하는 변수 perimeter를 선언 후 둘레를 구할 때만 사용하고,
넓이를 구하는 변수 area을 선언 후 넓이를 구할 때만 사용합니다.
이처럼 각각의 목적에 따른 변수를 나누는 방법이 변수 쪼개기입니다.
변수 쪼개기는 변수를 여러 개로 분리하는 것으로, 코드를 더욱 명확하고 이해하기 쉽게 만들어 줍니다.
가변 데이터 문제를 해결하기 위해 변수는 가능한 const를 붙여 불변 데이터로 선언하는 것이 좋습니다.
const int perimeter = 2 * (height + width);
cout << perimeter << endl;
const int area = height * width;
cout << area << endl;
perimeter, area가 불변 데이터(const)이기 때문에 이후 로직에서 perimeter, area의 값이 실수로 변경되거나 하는 경우가 없어집니다.
'리팩터링 > 리팩터링 기법' 카테고리의 다른 글
리팩터링 기법. 세터 제거하기 (Remove Setting Method) (0) | 2023.03.13 |
---|---|
리팩터링 기법. 질의 함수와 변경 함수 분리하기(Separate Query from Modifier) (0) | 2023.03.12 |
리팩터링 기법. 변수 캡슐화하기 (Encapsulate Variable) (0) | 2023.03.05 |
리팩터링 기법. 여러 함수를 클래스로 묶기 (Combine Functions into Class) (0) | 2023.03.03 |
리팩터링. 플래그 인수 제거하기 (Remove Flag Argument) (0) | 2023.03.02 |