1. 공통 모듈 구현
모듈(Module)
- 하나의 완전한 기능을 수행할 수 있는 독립된 실체
모듈의 특징
- 각각의 모듈은 상대적으로 독립성을 가지고 있음
- 모듈의 독립성은 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함
모듈화
- 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 시스템을 분해하고 추상화하는 기법
모듈화 기법
- 루틴 : 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
- 메인 루틴, 서브 루틴
응집도(Cohesion)
- 모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도이다
응집도 유형 (우논시절 통순기)
- 응집도의 유형에는 우연적, 논리적, 시간적, 절차적, 통신적, 순차적, 기능적 응집도 순서로 응집도가 높아진다.
- 응집도가 높아질수록 품질이 좋아짐
- Coincidental Cohesion(우연적 응집도) : 모듈 내부의 구성요소가 각 연관이 없을 경우의 응집도
- Logical Cohesion(논리적 응집도) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
- Temporal Cohesion(시간적 응집도) : 특정 시간에 처리 되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
- Procedural Cohesion(절차적 응집도) : 모듈이 다수의 관련 기능을 갖고, 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- Communication Cohesion(통신적 응집도) : 동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
- Sequential Cohesion(순차적 응집도) : 모듈 내 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
- Functional Cohesion(기능적 응집도) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
결합도(Coupling)
- 모듈 내부가 아닌 외부의 연관도, 모듈 간의 상호의존성이며, 모듈 간의 관련성을 측청하는 척도이다.
결합도의 유형(내공 외제 스자)
- 결합도의 유형은 내용, 공통, 외부, 제어, 스탬프, 자료 순으로 결합도가 낮아진다.
- 결합도가 낮을수록 품질이 좋아진다.
- Content Coupling(내용 결합도) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
- Common Coupling(공통 결합도) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용하는 경우의 결합도
- External Coupling(외부 결합도) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우의 결합도
- Control Coupling(제어 결합도) : 어떻게 처리를 해야 한다는 제어요소가 전달되는 경우
- Stamp Coupling(스탬프 결합도) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
- Data Coupling(자료 결합도) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우
공통 모듈(또는 서버 프로그램)의 구현 절차
- DTO/VO ➡ SQL ➡ DAO ➡ Service ➡ Controller ➡ View 구현 순으로 진행
- 공통 모듈 구현 절차에 MVC 패턴을 사용
DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
DTO(Data Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체
VO : 간단한 엔티티를 의미하는 작은 객체 가변 클래시인 DTO와 달리 고정 클래스를 가지는 객체
MVC 패턴 역할
- 모델(Model) : 내부 비지니스 로직을 처리하기 위한 역할
- 뷰(View) : 화면에 무엇인가를 보여주기 위한 역할
- 컨트롤러(Controller) : 모델이 어떻게 처리할지를 알려주는 역할
팬인(Fain-In) / 팬아웃(Fan-Out)
- 소프트웨어의 구성요소인 모듈을 계층적으로 분석하기 위해서 팬인, 팬아웃을 활용한다
- 팬인과 팬아웃 분석을 통하여 시스템의 복잡도를 측정할 수 있음
팬인(Fan-In) : 모듈 자신을 기준으로 들어오면 팬인
팬아웃(Fan-Out) : 모듈 자신으로 기준이 나가면 팬 아웃
JUnit
- 자바 프로그래밍 언어용 단위 테스트 도구
'IT 자격증 > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 06. 소프트웨어 개발 보안 구축 - SW 개발 보안 설계 (0) | 2022.10.08 |
---|---|
[정보처리기사 실기] 05. 서버 프로그램 구현 - 서버 프로그램 구현, 배치 프로그램 구현 (0) | 2022.10.06 |
[정보처리기사 실기] 05. 서버 프로그램 구현 - 개발환경 구축 (1) | 2022.10.05 |
[정보처리기사 실기] 04. 데이터 입출력 구현 - 데이터베이스 기초 활용하기 (0) | 2022.10.04 |
[정보처리기사 실기] 04. 데이터 입출력 구현 - 물리 데이터 저장소 설계 (0) | 2022.10.04 |