2. 소프트웨어 개발
2.2 통합 구현
2.2.1 통합 구현 능력 단위 정의
2.2.2 모듈 구현
- 통합 구현 능력 단위 정의
통합구현이란 모듈간의 분산이 이루어진 경우를 포함하여 단위 모듈간의 데이터 관계를 분석하여 이를 기반으로 한 매커니즘을 통해 모듈간의 효율적인 연계를 구현하고 검증하는 능력이다.
- 모듈 구현
1. 단위모듈 구현
통합 구현에서 단위 모듈 구현은 모듈간의 분산이 이루어진 경우를 포함하여 비즈니스 컴포넌트, 내외부 인터페이스 모듈, 데이터베이스 접근 모듈 등 통합 구현에 필요한 단위 컴포넌트 구현을 말한다.
1.1 단위모듈 구현
1. 단위모듈 종류
통합 구현에서 단위모듈 구현은 상세 설계 된 단위모듈, 환경 변수를 실제 프로그래밍 언어로 구현하는 것이다.
단위 모듈은 화면 모듈, 화면에서 입력받은 데이터 처리를 위한 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트가 있다.
데이터베이스 접근 컴포넌트, 내외부 인터페이스 컴포넌트, 데이터 암복호화 컴포넌트가 있다.
2. 공통모듈 구현
공통모듈은 모든 서비스 컴포넌트 혹은 트랜잭션 컴포넌트가 공통적으로 사용하는 컴포넌트이다.
내외부 인터페이스 컴포넌트, DB접근 컴포넌트, 암복호화 컴포넌트가 공통모듈의 예이다.
화면에서의 공통모듈은 스크립트로 구현하는데, 날짜 계산, 주소정보, 주민번호, 정합성 체크 컴포넌트 등이 그 사례이다.
공통모듈을 먼저 구현하고 이를 단위모듈 구현 시 재사용한다.
3. 단위모듈 구현 시 고려사항
응집도는 높이고 결합도는 낮춘다.
공통모듈 구현을 먼저 개발하고, 개별 단위 모듈 구현 시 이를 재사용한다.
항상 예외처리 로직을 고려하여 구현한다.
1.2 화면 구현
1. HTML 5
웹 어플리케이션에서 화면 단위 모듈화 프로그래밍은 일반적으로 HTML 5를 기반으로 구현된다.
HTML 5는 온라인, 모바일, 패드 등에서 수정없이 자유롭게 재사용할 수 있다.
2. 반응형 웹
반응형 웹은 모바일 환경이 시작되면서 장치도 다양해져 해상도의 크기 및 비율이 제각각 다른 경우에 이를 자유롭게 지원하는 웹 기술이다.
리액트, 뷰, 앵귤러 같은 웹 컴포넌트를 많이 활용하여 반응형 웹을 구현한다.
1.3 클린코드
1. 클린코드란?
클린코드란 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽게 만든 코드이다.
클린코드는 단순하고 직접적이며, 잘 쓴 문장처럼 읽힌다. 클린코드는 결코 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추상화와 단순한 제어문으로 가득하다.
2. 클린코드의 특징
- 가독성이 뛰어남
- 간단하고 작다
- 의존성을 최대한 줄였다
- 코드의 의도와 목적이 명확하다.
- 코드가 타인에 의해 변경이 용이하다.
- 코드에 중복이 없거나 적다
- 개체가 한가지 작업만 수행한다.
2. 단위모듈 테스트
단위모듈 구현이 완료되었으면 단위모듈 테스트를 한다. 단위모듈 테스트를 위해서는 IDE 도구를 활용하여 단위모듈 하나하나에 대한 디버깅을 수행한다.
단위모듈 테스트는 화이트박스 테스트 기법을 사용한다. 화이트박스 테스트 기법은 프로그램의 로직을 이해하고 내부 구조화 동작을 검사하는 소프트웨어 테스트 방식이다.
2.1 단위모듈 테스트 방법
1. 화이트박스 테스트
단위 모듈 테스트의 가장 기본적인 방법은 모듈 내부의 소스를 보면서 수행하는 화이트박스 테스트이다.
소스 코드를 보면서 테스트 케이스를 다향하게 만들어서 테스트 한다.
2. 메소드 기반 테스트
단위 모듈의 외부의 공개된 메소드 기반 테스트이다.
메소드에 파라미터 값을 다르게 호출하면서 다양한 테스트를 수행한다.
3. 화면 기반 테스트
사용자용 화면이 있는 경우 각각의 화면단위로 단위모듈 개발 후 화면에 직접 데이터를 입력하여 테스트를 수행한다.
화면 기반 테스트는 화면과 연계된 서비스 컴포넌트, 비즈니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 테스트에 참여 시킬 수 있다.
사용자 시나리오에 기반한 단위 모듈 테스트를 할 수 있어서 장점이다.
4. 타 모듈 개발이 안된 경우 스텁과 드라이버 활용
사용자용 화면이 없는 경우 스텁 혹은 드라이버를 활용하여 단위모듈을 테스트 한다.
서비스 컴포넌트, 비즈니스 컴포넌트 등 하위 모듈 개발이 안된 경우에도 스텁과 드라이버를 활용하여 단위 테스트를 한다.
2.2 소스코드 커버리지
1. 소스코드 커버리지 개념
프로그램의 테스트 수행 정도를 나타내는 값으로 테스트 수행의 완벽성을 측정하는 도구이다.
2.3 단위모듈 디버깅
1. IDE 도구를 활용한 디버깅
Eclipse 혹은 Window visual studio같은 IDE도구를 활용하여 단위 모듈에 대한 디버깅을 실시한다.
디버깅 시 에러가 나온 코드에 대해서 로직을 따라가면서 변수 값의 변화를 관찰한다.
2. 단위테스트 자동화 도구를 활용한 디버깅
JUnit : Java 기반의 단위 모듈 테스트 자동화 도구이다.
CppUnit : C++언어 기반의 단위 트스트 자동화 도구
unitest : python에서 단위 테스트를 수행하기 위한 자동화 도구
'자격증 > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 17일차 (0) | 2021.01.28 |
|---|---|
| 정보처리기사 16일차 (0) | 2021.01.27 |
| 정보처리기사 14일차 (0) | 2021.01.25 |
| 정보처리기사 13일차 (0) | 2021.01.20 |
| 정보처리기사 12일차 (0) | 2021.01.20 |