문제 12 · DRY 원칙
문제 12 [2점]
DRY(Don't Repeat Yourself) 코딩, 즉 불필요하게 반복적인 코드 작성을 지양하는 방식에 대해 예시와 함께 서술하시오.
풀이 및 해설
DRYDon't Repeat Yourself 원칙은 "같은 지식·로직을 코드 여러 곳에 중복해서 쓰지 말라"는 원칙입니다. 동일한 동작이 여러 번 나타나면 함수·반복문·상수 등으로 한 곳에 모아, 수정할 일이 생겼을 때 한 군데만 고치면 되도록 만듭니다.
중복을 지양하는 이유
- 한 곳만 고치면 되므로 유지보수가 쉬움
- 여러 사본을 따로 고치다 생기는 불일치·버그를 예방
- 코드가 짧아져 가독성이 좋아짐
나쁜 예 (반복)
cpp
cout << "학생1 점수: " << (a + b + c) / 3 << endl;
cout << "학생2 점수: " << (d + e + f) / 3 << endl;
cout << "학생3 점수: " << (g + h + i) / 3 << endl;평균을 구하는 로직이 세 번 반복됩니다. 계산식이 바뀌면 세 줄을 모두 고쳐야 합니다.
좋은 예 (함수로 추출)
cpp
double average(int x, int y, int z) {
return (x + y + z) / 3.0; // 로직을 한 곳에만 둔다
}
// ...
cout << "학생1 점수: " << average(a, b, c) << endl;
cout << "학생2 점수: " << average(d, e, f) << endl;
cout << "학생3 점수: " << average(g, h, i) << endl;평균 계산 규칙이 average 함수 한 곳에 모여 있어, 로직이 바뀌어도 그 함수만 수정하면 됩니다. 반복되는 값은 상수(const)로, 반복되는 처리는 반복문·함수로 묶는 것이 DRY의 핵심입니다.