일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 세로메뉴바
- 코딩독학
- 웹디자인기능사
- CSS
- 웹디실기
- 타입스크립트
- JavaScript
- web
- JS
- 프론트엔드
- 리액트
- 렛츠기릿자바스크립트
- 실기
- 웹퍼블리셔
- 정보처리기사
- react
- 코드공유
- 슬라이드전환
- jQuery
- 생활코딩
- git
- 깃
- 자바스크립트
- Supabase
- 연산자
- HTML
- github
- 비전공자
- PROJECT
- 웹디자인기능사실기
Archives
- Today
- Total
코딩하는라민
[정보처리기사 실기] 공통 모듈 본문
728x90
반응형
[정보처리기사 실기] 공통 모듈
모듈
그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체
독립성이 높은 모듈은 수정 시 다른 모듈들에 영향을 미치지 않고, 오류 시 쉽게 해결 가능
결합도 | 응집도 | 모듈 크기 | |
모듈의 독립성 높이기 | ⬇️ | ⬆️ | ⬇️ |
모듈화 기법
기법 | 설명 |
루틴 | 🔹특정 동작을 수행하는 일련의 코드 🔹기능을 가진 명령어들의 모임 |
메인 루틴 | 🔹전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴 🔹서브 루틴 호출 |
서브 루틴 | 🔹메인 루틴에 의해 필요할 때마다 호출 |
응집도 ⭐⭐
모듈의 독립성을 나타내는 정도
모듈 내부 구성 요소 간 연관 정도
하나의 기능을 수행할 수록 응집도가 높다.
유형 | 설명 | |
우연적 | 모듈 내부의 각 구성 요소가 연관이 없을 경우 | 응집도 낮음 (나쁜 품질) |
논리적 | 유사 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 | |
시간적 | 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우 | ⬇️ ⬇️ ⬇️ |
절차적 | 다수 관련 기능 가질 때 모듈 안 구성요소들이 그 기능을 순차적으로 수행할 경우 | |
통신적 | 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있는 경우 | |
순차적 | 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도 | 응집도 높음 (좋은 품질) |
기능적 | 모듈 내부의 모든 기능이 단일 목적을 위해 수행되는 경우 |
결합도 ⭐⭐
모듈 내부가 아닌 외부의 모듈과의 연관 정도 또는 모듈 간 상호 의존성
모듈 간의 관련성을 측정하는 척도
유형 | 설명 | |
내용 | 다른 모듈 내부 변수/기능을 다른 모듈에서 사용하는 경우 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조 | 결합도 높음 (나쁜 품질) |
공통 | 모듈 밖에 선언되어 있는 전역 변수 참조, 갱신하는 식으로 상호작용하는 경우 공유되는 공통 데이터 영역을 여러 모듈이 사용할 경우 | |
외부 | 두 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유할 경우 외부 모듈에서 선언한 데이터를 외부 다른 모듈에서 참조할 때 | ⬇️ ⬇️ ⬇️ |
제어 | 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상 발생 | |
스탬프 | 모듈 간 인터페이스로 배열, 객체, 구조 등이 전달되는 경우 동일한 자료 구조를 조회하는 경우의 결합도 자료 구조의 변화는 모든 모듈에 영향을 미치게 됨 | 결합도 낮음 (좋은 품질) |
자료 | 모듈 간 인터페이스로 전달되는 파라미터를 통해서만 모듈 간 상호작용이 일어나는 경우 한 모듈의 내용이 변하더라도 다른 모듈에는 영향을 미치지 않는 상태로 가장 바람직 |
MVC 패턴
구분 | 역할 |
모델 | 애플리케이션이 무엇을 할 것인지를 정의 내부 비즈니스 로직 처리 |
뷰 | 화면에 무엇을 보여주기 위함 모델, 컨트롤러가 보여주려고 하는 것을 화면에 처리 |
컨트롤러 | 모델이 어떻게 처리할지를 알려주기 위함 뷰에 명령을 보내어 화면 요청 결과 전달 |
팬인 / 팬아웃 ⭐
팬인 | 팬아웃 | |
개념 | 어떤 모듈을 제어(호출)하는 모듈의 수 | 어떤 모듈에 의해 제어(호출)되는 모듈의 수 |
모듈 수 계산 | 자신에게 들어오면 팬인 | 자신으로부터 나가면 팬아웃 |
고려 | 재사용 측면에서 좋지만, 단일 장애점 발생 가능 관리 비용, 테스트 비용 증가 | 불필요한 모듈 호출 여부 검토 필요 단순화 여부 검토 필요 |
작성 예시 | |
팬인 | A: 0, B: 1, C: 0, D: 1, E: 1, F: 2, G: 1, H: 2, I: 0, J: 1 |
팬아웃 | A: 2, B: 0, C: 3, D: 0, E: 1, F: 2, G: 1, H: 0, I: 1, J: 0 |
공통 모듈 테스트
공통 모듈 테스트를 위해 IDE 도구를 활용하여 개별 공통 모듈에 대한 디버깅 수행
화이트박스 기법 활용
대표적인 단위 테스트 도구인 jUnit 을 활용하여 테스트 코드 구현
종류 | 설명 |
화이트박스 테스트 | 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트 수행 |
메서드 기반 테스트 | 공통 모듈의 외부에 공개된 메서드 기반 테스트 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트 수행 |
화면 기반 테스트 | 화면 단위로 단위 모듈을 개발 후 화면에 직접 데이터를 입력항 테스트 수행 |
테스트 드라이버/스텁 활용 테스트 | 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 테스트 드라이버, 테스트 스텁을 통해 테스트 수행 🔹테스트 드라이버 : 하위 모듈은 있지만 상위 모듈은 없는 경우 🔹테스트 스텁 : 상위 모듈은 있지만 하위 모듈은 없는 경우 |
728x90
반응형
'자격증 공부 > 정보처리기사' 카테고리의 다른 글
[정처기 실기] SQL 응용 - DDL, DML, DCL 명령어 (29) | 2023.10.02 |
---|---|
[정보처리기사 실기] 소프트웨어 보안 설계, 공격 기법 (39) | 2023.09.20 |
[정보처리기사 실기] 개발환경 구축, 형상관리 (0) | 2023.09.19 |
[정처기 실기] 프로그래밍 언어 활용 - 자료형, 식별자, 연산자 (0) | 2023.04.19 |
[정처기 실기] 프로그래밍 언어 활용 - 배열과 포인터 (0) | 2023.04.19 |