정보처리기사 준비/프로그래밍 파트 정리

[프로그래밍] 모듈화, 결합도

류도토리 2024. 4. 16. 18:36

1. 모듈화

  • 정의
    • 모듈의 독립성은 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도를 약하게 하고 응집도를 강하게 하며 모듈의 크기를 작게 만들어야 한다.
    • 기능 별로 분리하여 구현하면 유지보수에도 용이함 ex) 
  • 단위 모듈화의 원리 < 정 / 분 / 추 / 모 >
    • 정보은닉 - 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허횽하는 것
    • 분할과 정복 - 복잡한 문제를 분해하여, 모듈 단위로 문제를 해결하는 것
    • 데이터 추상화 - 각 모듈 자료구조를 엑세스하고 수정하는 함수 내 자료구조 표현 내역을 감춤
    • 모듈 독립성 - 모듈간의 독립성이 강한 모듈은 낮은 결합도와 높은 응집도를 지향
  • 모듈화의 장점
    • 프로그램의 효율적인 관리 및 성능 향상
    • 소프트웨어 이해의 용이성 증대와 복잡성 감소
    • 기능 분리 가능 / 단순한 인터페이스
    • 모듈의 재사용 가능으로 개발과 유지보수 용이
  • 모듈 설계 유의사항
    • 모듈간의 결합도를 약하게 하면 모듈 독립성이 향상된다.
    • 복잡도와 중복성을 줄이고 일관성을 유지시킨다.
    • 모듈의 기능은 예측이 가능해야 하며 지나치게 제한적이면 안된다.
    • 유지보수가 용이해야 한다.

2. 결합도

  • 정의
    • 두 모듈 간의 상호작용 또는 의존도 정도를 나타내는 것
    • 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상
    • 결합도의 유형 : 내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도 순으로 결합도가 낮아짐
  • 결합도의 유형

 

3. 응집도

  • 정의
    • 응집도의 유형 : 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적
    • 응집도가 낮아지면 독립성이 낮아진다
    • 응집도가 높아지면 독립성이 높아지고 유지보수가 용이하다
  • 특징
    • 유사기능 영역구성
    • 단일 책임할당
    • 함수 간 상호협력
  • 응집도 유형 (우리가 논 시절 통은 순기다)

 

4. 보안 취약성 식별

  • 정의
    • 응용 프로그램의 보안 취약점, 위협 요소, 허점을 탐지하는 데 도움을 준다.
  • 침투 테스트
    • 침투 테스트는 시스템을 안전하게 만들기 위해 전문 해커가 공격자보다 먼저 취약점을 찾기 위한 방법
  • 침투 테스트 절차
    • 정찰 > 탐색 > 접근권한 취득 > 액세스 유지 > 추적 방지
  • 취약성에 따른 공격기법

 

5. API

  • 정의
    • 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만드는 인터페이스

6. 배치 프로그램

  • 정의
    • 사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
  • 배치 프로그램의 필수 요소