정보처리기사/4. 서버 프로그램 구현
단위 모듈과 공통모듈
뿌단이
2022. 9. 22. 16:25
단위 모듈
단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다.
[단위 모듈의 구현 과정]
[단위 기능 명세서작성] ▶ [입 출력 기능 구현] ▶ [알고리즘 구현]
[IPC(Inter-Process Communication)]
- IPC는 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합이다.
- 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능하다.
<IPC의 대표 메소드 5가지>
- Shared Memory(공유 메모리)
- 공유 가능한 메모리를 구성하여 다수의 프로세스가 통신하는 방식
- Socket(소켓)
- 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스 간에 통신하는 방식
- Semaphores(세마포어)
- 공유 자원에 대한 접근 제어를 통해 통신하는 방식
- Pipes&named Pipes(파이프와 네임드파이프)
- Pipe라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신하는 방식
- Pipe는 하나의 프로세스가 이용중이라면 다른 프로세스는 접근할 수 없음
- Message Queueing(메시지 큐잉)
- 메시지가 발생하면 이를 전달하는 방식으로 통신하는 방식
[단위 모듈 테스트]
- 단위 모듈 테스트는 프로그램의 단위 기능으로 구현된 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것이다.
- 단위 테스트(Unit Test) 라고도 부른다.
- 단위 모듈 테스트의 기준은 단위 모듈에 대한 코드이므로 시스템 수준의 오류는 잡아낼 수 없다.
[테스트 케이스(Test Case)]
- 테스트 케이스는 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서이다.
- 테스트케이스를 이용하지 않은 테스트는 툭정 요소에 대한 검증이 누락되거나 불필요한 검증의 반복으로 인해 인력과 시간을 낭비할 수 있다.
<ISO/IEC/IEEE 29119 - 3 표준에 따른 테스트 케이스의 구성 요소>
- 식별자(Identifier)
- 테스트 항목(Test List)
- 입력 명세(Input Specification)
- 출력 명세(Output Specification)
- 환경 설정(Environmental Needs)
- 특수 절차 요구(Special Procedure Requirement)
- 의존성 기술(Inter-case Dependencies)
공통 모듈
공통 모듈은 여러 프로그램에서 공통으로 사용할 수 있는 모듈이다.
자주 사용되는 계산식이나 매번 필요한 사용자 인증과 같은 기능들이 공통 모듈로 구성될 수 있다.
공통 모듈을 구현할 때는 해당 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야 한다.
[테스트 케이스(Test Case)]
- 정확성(Correctness)
- 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성함
- 명확성(Clarity)
- 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성함
- 완전성(Completeness)
- 시스템 구현을 위해 필요한 모든 것을 기술함
- 일관성(Comsistency)
- 공통 기능들 간 상호 충돌이 발생하지 않도록 작성함
- 추적성(Traceability)
- 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성함
[재사용(Reuse)]
이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업
새로 개발하는데 필요한 비용과 시간을 줄일 수 있다.
누구나 이해할 수 있고 사용이 가능하도록 사용법을 공개해야 한다.
- 함수와 객체
- 클래스나 메소드 단위의 소스코드를 재사용함
- 컴포넌트
- 컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용함
- 애플리케이션
- 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용함

읽어주셔서 감사합니다!
정처기 화이팅!