Ch4_02 공통 모듈 구현
1. 공통 모듈 구현
1. 공통 모듈 구현의 개념
A. 모듈의 개념 : 크게 독립된 하나의 SW 또는 HW
B. 모듈의 특징 : 독립성, 그 모듈을 하나로 통합하는 수많은 존재 가능, 단독 컴파일, 재사용, 결합도 약하게, 응집도 강하게, 모듈크기 작게
C. 모듈화의 개념 및 기법 : 성능 향상, 복잡한 시스템 수정, 재사용, 유지관리 등이 용이하도록
i. 루틴 : SW에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
ii. 메인 루틴 : 프로그램의 주요한 부분, 전체의 개략적인 동작 절차 표시
iii. 서브 루틴 : 메인 루틴에 의해 필요할 때마다 호출되는 루틴
D. 공통 모듈 구현의 개념
i. SW 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기위한 공통 컴포넌트 구현 기법
2. 소프트웨어 모듈 응집도
A. 응집도 : 모듈의 독립성, 모듈 내부 구성요소 간 연관 정도
B. 응집도의 유형
i. 우연적 논리적 시간적 절차적 통신적 순차적 기능적
ii. (낮음) (높음)
3. 소프트웨어 모듈 결합도
A. 결합도의 개념 : 외부 모듈과의 연관도, 상호의존성
B. 결합도의 유형
i. 내용 공통 외부 제어 스탬프 자료
ii. (낮음) (높음)
4. 공통 모듈 구현 대상 : 화면 모듈, 화면에서 입력받은 데이터 처리를 위한 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트 등
5. 공통 모듈 구현 절차
A. DTO/VO SQL DAO Service Controller 화면 구현
B. MVC 패턴
i. 모델 : 앱에서 무엇을 할 것인지 정의
ii. 뷰 : 화면에서 무엇인가를 보여주기 위한 역할
iii. 컨트롤러 : 모델이 어떻게 처리할지를 알려주는 역할
6. 팬인 및 팬아웃
A. 팬인, 팬아웃
i. 팬인 : 어떤 모듈을 제어하는 모듈의 수
1. 팬인이 높으면 재사용 측면에서 설계가 잘되었지만, 단일 장애점 발생 가능, 관리비용 및 테스트비용 증가
ii. 팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수
1. 팬아웃이 높으면 불필요한 모듈 호출 여부 검토 필요, 단순화 여부 검토 필요
2. 공통 모듈 테스트
1. 공통 모듈 테스트의 개념 : IDE 도구를 활용해 개별 공통 모듈에 대한 디버깅 수행, 화이트 박스 기법 활용
A. 화이트 박스 기법 : 프로그램의 로직 이해, 내부 구조와 동작 검사하는 SW 테스트 방식
2. 공통 모듈 테스트의 종류
A. 화이트박스 테스트 : 응용 프로그램의 내부 구조와 동작을 검사하는 SW 테스트 방식, 소스 코드를 보며 테스트 케이스를 다양하게 만들어 수행
B. 메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 기반의 테스트
C. 화면 기반 테스트 : 사용자용 화면이 있는 경우 각각의 화면단위로 단위모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트를 수행
D. 테스트 드라이버, 스텁 : 기능을 테스트할 수 있는 화면 또는 하위모듈이 구현되어 있지 않은 경우 테스트 드라이버, 테스트 스텁을 통해 테스트 수행
i. 테스트 드라이버 : 상위모듈이 없는 경우
ii. 테스트 스텁 : 하위모듈이 없는 경우
3. 공통 모듈 테스트 구현 : Junit 사용