[정보처리기사 실기] 8장 서버 프로그램 구현 - 공통 모듈 구현

2022. 4. 23. 18:45정보처리기사/실기

728x90
반응형

공통 모듈 구현

공통 모듈 구현의 개념

(1) 모듈의 개념

- 모듈은 완전한 기능을 수행할 수 있는 독립된 실체, 서브프로그램, 서브 루틴, 소프트웨어 내의 단위 프로그램, 작업 단위와 같은 의미로 사용

 

(2) 특징

- 각 모듈을 상대적으로 독립성을 가지고 있다, 모듈을 통합해 수 많은 조합 존재, 독립성이 클 수록 모듈 수정에도 영향을 주지 않고 오류도 쉽게 해결, 독립성은 결합도와 응집도에 의해 측정, 독립성 높이려면 결합도는 약하게 응집도는 강하게 모듈의 크기는 작게 만든다.

 

(3) 개념 및 기법

- 모듈화는 소프트웨어 성능을 향상, 수정, 재사용, 유지 관리 용이 

  • 루틴 : 특정 동작 수행하는 일련의 코드 모임
  • 메인 루틴 : 주요한 부분, 개략적인 동작 절차를 표시하도록 만들어진 후틴, 서브 루틴 호출
  • 서브 루틴 : 메인에 의해 필요할 때 마다 루틴

(4) 공통 모듈 구현의 개념

- 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법, 인터페이스 모듈 데이터베이스 접근 모듈 등 필요한 공통 모듈 구현, 모듈간의 결합도는 줄고 응집도는 높인 공통 모듈 구현 권장

소프트웨어 모듈 응집도

(1) 응집도 개념 

- 응집도는 독립성을 나타내는 정도, 내부 구성 요소 간 연관 정도, 하나의 모듈은 하나의 기능을 수행할수록 응집도가 높다.

 

(2) 응집도 유형

- 응집도 낮음 (우 논 시 절 통 순 기) 응집도 높음

  • 우연적 응집도 : 내부의 각 구성요소가 연관이 없을 경우의 응집도
  • 논리적 응집도 : 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
  • 시간적 응집도 : 특정 시간에 처리되어야 하는 활동을 한 모듈에서 처리하는 경우
  • 절차적 응집도 : 순차적으로 수행할 경우
  • 통신적 응집도 : 통일한 입력과 출력을 사용해 다른 기능 수행하는 활동이 모여 있을 경우
  • 순차적 응집도 : 한 활동으로 나온 출력값을 다른 활동이 사용할 경우
  • 기능적 응집도 : 내부의 모든 기능이 단일한 목적을 위해 수행되는 겨우

소프트웨어 모듈 결합도

(1) 개념

- 외부의 모듈과 연과도 또는 모듈 간의 상호의존성이다, 관련성을 측정하는 척도

 

(2) 결합도의 유형

- 결합도 낮음(자 스 제 외 공 내) 결합도 높은

  • 내용 결합도 : 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도, 하나가 다른 모듈 직접적 참고할 때 내용적으로 결합
  • 공통 결합도 : 모듈 밖의 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우, 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
  • 외부 결합도 : 외부에서 도입된 데이터 포맷, 통신 프로토콜 또는 디바이스 인터페이스 공유, 외부 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 떄의 결합도
  • 제어 결합도 : 하위에서 상위 모듈로 제어가 이동해 상위에게 처리 명령을 부여하는 권리 전도 현상이 발생
  • 스탬프 결합도 : 동일한 자료 구조를 조회하는 경우 결합도, 어떠한 변화는 모든 모듈에 영향을 줌
  • 자료 결합도 : 전달되는 파라미터 통해서만 모듈 간의 상호 작용이 일어나는 경우, 내용 변경하더라도 다른 모듈에는 영향을 미치지 않는 상태로 가장 바람직한 결합도

공통 모듈 구현 대상

- 데이터 처리를 위한 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트, 상세 설계된 공통 모듈, 환경 변수를 실제 프로그래밍 언어로 구현

공통 모듈 구현 절차

- DTO/VO -> SQL -> DAO -> Service -> Controller -> 화면 순서, 공통 모듈 구현 절차는 MVC 패턴에 사용

  • 모델 : 앱이 무엇 할 지 정의, 내부 비즈니스 로직을 처리하기 위한 역할
  • 뷰 : 화면 표출 역할, 모델, 컨트롤러가 보여주려는 것 처리
  • 컨트롤러 : 어떻게 처리하는지 알려주고, 뷰에 명령을 보내어 화면 요청 결과 전달

팬 인 & 팬 아웃

- 개념 : 모듈의 계층적 분석 위해 활용, 시스템 복잡도 측정 가능

  • 팬인 : 어떤 모듈을 제어하는 모듈의 수, 자기에게 들어오는 선
    • 팬인 높으면 재사용 측면에서 설계가 잘되었지만, 단일 장애점 발생 가능, 관리 비용 및 테스트 비용 증가
  • 팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수, 자기한테 나가는 선
    • 팬아웃이 높으면 불필요한 모듈 호출 여부 검토 필요, 단순화 여부 검토 필요

공통 모듈 테스트

(1) 개념 

- IDE 활용해 개별 공통 모듈에 대한 디버깅, 화이트 박스 기법 활용, 대표 단위 테스트인 xUnit 사용

 

(2) 종류

  • 화이트 박스 테스트 : 내부 구조와 동작을 검사하는 테스트 방식, 코드 보면서 케이스 다양하게 만들어 테스트
  • 메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 기반 테스트, 서로 다른 파라미터 값을 호출하면서 다양한 테스트 수행
  • 화면 기반 테스트 : 화면 단위로 단위 모듈 개발 후 홤녀에 직접 데이터 입력해 테스트 수행, 연계된 서비스, 비즈니스 컴포넌트 및 공통 컴포넌트 한꺼번에 테스트 참여, 시나리오 기반 공통 모듈 테스트 하는 장점
  • 테스트 드라이브 및 스텁 활용 테스트 : 하위 모듈이 구현되지 않은 경우 테스트 드라이버, 스텁 통해 수행, 드라이버는 상향식, 스텁은 하향식

 

728x90
반응형