[정보처리기사실기] 모듈 / 결합도 / 응집도 / 어노테이션

    반응형

    1과목. 소프트웨어 구축

    📒 12. 모듈 구현

     

    계획 - 요구사항 분석 - 소프트웨어 - 구현 - 테스트 - 유지보수


    1. 단위 모듈 구현

    (1) 단위 모듈 구현의 개념

    • 소프트웨어를 기능 단위로 분해하여 개별적으로 구현하는 기법
    • 모듈은 하나의 기능을 수행하는 것
    • 각 모듈이 독립적으로 활용될 수 있게 함

    (2) 효과적인 모듈화

    • 결합도(Coupling)를 낮추고, 응집도(Cohesion)를 높여 모듈의 독립성을 강화
    • FAN-OUT(한 모듈이 호출하는 다른 모듈의 수) 최소화, FAN-IN(한 모듈을 호출하는 다른 모듈의 수) 증가
    • 복잡성과 중복성을 줄이고, 일관성을 높임

    (3) 단위 모듈 설계의 원리

    • 단계적 분해, 추상화, 독립성, 정보 은닉, 분할과 정복

     

    2. 결합도(Coupling)

    (1) 결합도의 개념

    • 모듈과 모듈 간의 관련성/의존성 정도
    • 결합도가 낮을수록 잘 설계된 모듈

    (2) 결합도 유형 ⭐

    • a) 자료 결합도 (Data Coupling)
      - 모듈 간의 인터페이스로 이 전달되는 경우
    • b) 스탬프 결합도 (Stamp Coupling)
      - 배열이나 오브젝트, 주소값, 자료구조가 전달되는 경우
    • c) 제어 결합도 (Control Coupling)
      - 어떻게 처리를 해야 한다는 제어 요소(if 등)가 전달되는 경우
    • d) 외부 결합도 (External Coupling)
      - 외부 변수를 참조하는 경우
    • e) 공통 결합도 (Common Coupling)
      - 전역 변수를 참조하고 사용하는 경우
    • f) 내용 결합도 (Data Coupling)
      - 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

     

    3. 응집도(Cohesion)

    (1) 응집도의 개념

    • 모듈 내부에서 구성요소 간에 밀접한 관계를 맺고 있는 정도
    • 응집도가 높을수록 잘 설계된 모듈

    (2) 응집도 유형 ⭐

    • a) 기능적 응집도 (Functional Cohesion)
      - 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
    • b) 순차적  응집도 (Sequential  Cohesion)
      - 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
    • c) 통신적  응집도 (Communication  Cohesion)
      - 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
    • d) 절차적  응집도 (Procedural  Cohesion)
      - 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
    • e) 시간적 응집도 (Temporal  Cohesion)
      특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
    • f) 논리적  응집도 (Logical  Cohesion)
      - 유사한 성격(비슷한 기능)을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
    • g) 우연적 응집도 (Coincidental Cohesion)
      - 모듈 내부의 각 구성 요소들이 연관이 없을 경우

     

    4. 팬인(Fan-In), 팬아웃(Fan-Out)

    (1) 팬인, 팬아웃의 개념

    • 모듈의 복잡도와 상호작용을 분석하는 데 사용되는 지표
    • 팬인은 높게, 팬 아웃은 낮게 설계해야 시스템 복잡도를 최적화할 수 있음

    (2) 팬인

    • 특정 모듈을 호출하거나 참조하는 상위 모듈의 개수
    • 높은 팬인 값은 해당 모듈의 중요성이나 재상용성이 높음을 나타냄

    (3) 팬아웃

    • 특정 모듈이 호출하거나 참조하는 하위 모듈의 수
    • 높은 팬아웃 값은 복잡도가 높아짐

     

    5. Annotaion

    (1) Annotaion의 개념

    • 사전적으로는 '주석'이라는 의미
    • 자바 코드에 주석처럼 달아 특수한 의미를 부여하여 컴파일 또는 런타임에 해석됨

    (2) Annotaion의 종류

    • @Controller : 스프링 MVC에서 컨트롤러 객체임을 명시
    • @RequestMapping : 클래스나 메서드가 특정 URI에 매핑되어 있음을 명시
    • @RequestParam : HTTP 요청에서 특정한 파라미터 값을 추출할 때 사용
    • @RequestHeader : HTTP 요청 헤더에서 정보를 추출할 때 사용
    • @PathVariable : URI의 일부를 변수로 추출할 때 사용
    • @CookieValue : 요청한 쿠키 값을 메서드의 인자로 전달하는 데 사용
    • @ModelAttribute : 모델 객체를 뷰까지 전달
    • @ResponseBody : HTTP 요청의 본문을 객체로 전달 받을 때 사용

     

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

     

     

    반응형

    댓글