정보처리기사 · 소프트웨어 설계 과목
정보처리기사 애플리케이션 설계 개념 정리
중요도 ★★★★★ · 35% (추정)
AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.
핵심 개념
결합도
모듈과 모듈이 서로 얼마나 기대고 있는지를 나타냅니다. 약한 것부터 자료 → 스탬프 → 제어 → 외부 → 공통 → 내용 결합도 순이며, 약할수록 좋습니다.
외우는 요령'자스제외공내' — 앞쪽일수록 좋은 설계.
응집도
한 모듈 안의 요소들이 얼마나 한 가지 일에 모여 있는지를 나타냅니다. 강한 것부터 기능 → 순차 → 교환 → 절차 → 시간 → 논리 → 우연 응집도 순이며, 강할수록 좋습니다.
외우는 요령'기순교절시논우' — 앞쪽일수록 좋은 설계.
객체지향의 특징
데이터와 기능을 묶는 캡슐화, 부모의 성질을 물려받는 상속, 같은 명령에 객체마다 다르게 반응하는 다형성, 핵심만 남기는 추상화, 내부를 숨기는 정보 은닉이 있습니다.
외우는 요령'캡·상·다·추·은'.
디자인 패턴 3분류
객체를 만드는 방법은 생성 패턴(싱글톤, 팩토리 메서드), 객체를 조합하는 방법은 구조 패턴(어댑터, 데코레이터), 객체끼리 일을 나누는 방법은 행위 패턴(옵서버, 전략)입니다.
외우는 요령'만들고(생성) – 엮고(구조) – 움직인다(행위)'.
자주 나오는 포인트
- 좋은 모듈은 결합도는 낮고 응집도는 높다는 문제가 가장 자주 나옵니다.
- 결합도·응집도의 순서를 묻는 문제가 나옵니다.
- 디자인 패턴이 생성·구조·행위 가운데 어디에 속하는지 묻습니다.
헷갈리는 것 비교: 결합도와 응집도
| 구분 | 결합도 | 응집도 |
|---|---|---|
| 뜻 | 모듈 사이의 의존 정도 | 모듈 안의 관련 정도 |
| 좋은 설계 | 낮을수록 | 높을수록 |
| 가장 좋은 것 | 자료 결합도 | 기능 응집도 |
| 가장 나쁜 것 | 내용 결합도 | 우연 응집도 |
대표 문제 3개
검수를 마친 예상문제 가운데 이 단원의 대표 문제입니다.
문제 1. 바람직한 소프트웨어 모듈 설계의 방향으로 옳은 것은?
- ① 결합도는 높게, 응집도는 높게
- ② 결합도는 높게, 응집도는 낮게
- ③ 결합도는 낮게, 응집도는 높게
- ④ 결합도는 낮게, 응집도는 낮게
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ③ 결합도는 낮게, 응집도는 높게
핵심: 좋은 모듈: 결합도는 낮게, 응집도는 높게
결합도는 모듈끼리 서로 기대는 정도로, 낮아야 하나를 고쳐도 다른 것이 영향을 덜 받습니다. 응집도는 모듈 안의 내용이 한 가지 일에 모여 있는 정도로, 높을수록 좋습니다.
틀린 선지
- ① 결합도는 높게, 응집도는 높게: 결합도가 높으면 유지보수가 어렵습니다.
- ② 결합도는 높게, 응집도는 낮게: 가장 나쁜 설계입니다.
- ④ 결합도는 낮게, 응집도는 낮게: 응집도는 높아야 합니다.
문제 2. 응집도 가운데 응집 정도가 가장 강한(가장 좋은) 것은?
- ① 우연적 응집도
- ② 논리적 응집도
- ③ 순차적 응집도
- ④ 기능적 응집도
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ 기능적 응집도
핵심: 응집도 최강은 기능적, 최약은 우연적
응집도(강한 순): 기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적
모듈 안의 모든 요소가 하나의 기능만을 위해 모여 있는 것이 기능적 응집도입니다.
틀린 선지
- ① 우연적 응집도: 서로 관련 없는 요소가 모인 것으로, 응집도가 가장 약합니다.
- ② 논리적 응집도: 비슷한 성격의 처리를 모은 것으로, 약한 편에 속합니다.
- ③ 순차적 응집도: 강한 편이지만 기능적 응집도보다는 약합니다.
문제 3. 결합도 가운데 결합 정도가 가장 강한(가장 나쁜) 것은?
- ① 자료 결합도
- ② 스탬프 결합도
- ③ 공통 결합도
- ④ 내용 결합도
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ 내용 결합도
핵심: 결합도(약→강): 자료 → 스탬프 → 제어 → 외부 → 공통 → 내용
내용 결합도는 한 모듈이 다른 모듈의 내부 기능이나 자료를 직접 건드리는 것으로, 가장 강하고 나쁜 결합입니다.
틀린 선지
- ① 자료 결합도: 가장 약한(가장 좋은) 결합도입니다.
- ② 스탬프 결합도: 자료 구조(배열, 구조체)를 통째로 넘기는 결합도로, 두 번째로 약합니다.
- ③ 공통 결합도: 전역 변수를 함께 쓰는 결합도로, 두 번째로 강합니다.