모두CBT

다음 C 함수의 응집도 유형과 이를 개선하기 위한 리팩토링 기법으로 가… | [경찰간부후보생 소프트웨어공학] 26년 1회차 기출문제 상세 페이지

1[경찰간부후보생 소프트웨어공학] 26년 1회차
다음 C 함수의 응집도 유형과 이를 개선하기 위한 리팩토링 기법으로 가장 적절한 것은? (단, 코드 실행에 대한 오류는 없는 것으로 함)
int Calc(int type, int n) {
switch (type) {
case 1: return n * 200; // 미성년 공제
case 2: return n * 150; // 경로 공제
···
case 9: return n * 10; // 일반 공제
}
return 0;
}
1
기능적 응집 - 메소드 추출
2
논리적 응집 - 조건문을 다형성으로 대체
3
순차적 응집 - 클래스 추출
4
우연적 응집 - 매직 넘버의 상수화
해설

type 값에 따라 성격이 비슷한 여러 처리를 한 함수에 몰아넣은 구조는 논리적 응집이며, 이는 조건문을 다형성으로 대체하는 리팩토링으로 개선한다.

공제 유형별로 클래스를 나누고 공통 메소드를 재정의하게 하면 switch 분기가 사라지고 유형 추가 시 기존 코드를 고치지 않아도 된다.

  • 기능적 응집은 하나의 기능에 필요한 요소만 모인 경우로, 여러 공제 계산이 분기로 섞인 이 함수에 해당하지 않는다.
  • 순차적 응집은 한 처리의 출력이 다음 처리의 입력이 되는 관계인데, 이 함수의 분기들은 서로 데이터를 주고받지 않는다.
  • 우연적 응집은 아무 관련 없는 요소가 묶인 경우인데, 이 함수의 분기들은 모두 공제 계산이라는 같은 범주에 속한다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[경찰간부후보생 소프트웨어공학] 26년 1회차 40문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요경찰간부후보생 소프트웨어공학 기출문제 암기장 전체 보기