단위 모듈

정보처리기사

목록 보기
68/100

단위 모듈과 데이터 통신 개념 정리


1. 단위 모듈(Unit Module)

  • 단위 모듈이란 소프트웨어에서 한 가지 기능만을 수행하는 기능 단위입니다.
  • 단위 기능을 수행하는 모듈은 독립적으로 컴파일이 가능하며, 다른 모듈에 의해 호출되거나 삽입될 수 있습니다.
  • 단위 모듈 개발 과정은 다음과 같습니다:
    1. 명세서 작성: 기능에 대한 요구사항을 명확히 정의합니다.
    2. 입출력 기능 구현: 모듈의 입력과 출력을 구현합니다.
    3. 알고리즘 개발: 기능 수행에 필요한 로직과 알고리즘을 작성합니다.

2. 단위 모듈의 예시

  • 쇼핑몰 기능 구현 시, 단위 모듈 예시:
    • 검색 기능: 선형 검색, 이분 검색, 순차 검색, 핵심 검색 등
    • 정렬 기능: 삽입 정렬, 버블 정렬, 선택 정렬, 퀵 정렬 등
    • 입력 및 출력 기능: 상품 입력 모듈, 출력 모듈 등

3. 모듈화(Modularization)

  • 소프트웨어의 기능을 모듈 단위로 구분하여 독립적으로 개발 및 관리합니다.
  • 각 모듈은 필요할 때 조립 및 재사용이 가능하며, 이를 통해 소프트웨어 유지보수확장성이 향상됩니다.
  • 모듈들이 통합되면 컴포넌트(Component)를 구성합니다.
    • 예: 검색 컴포넌트, 정렬 컴포넌트 등
  • 개발사가 자주 사용하는 모듈을 모아 라이브러리(Library)로 제공하기도 합니다.

4. 모듈 간 통신 방식 (IPC)

  • IPC(Inter-Process Communication)프로세스 간 통신을 구현하는 프로그래밍 인터페이스입니다.
  • IPC 방식에는 다음 5가지가 있습니다.

① 공유 메모리 (Shared Memory)

  • 공유 메모리를 생성하여 여러 프로세스가 데이터를 직접 읽고 쓰면서 통신합니다.

② 소켓 (Socket)

  • 네트워크 소켓을 통해 원격 또는 로컬 프로세스 간 통신을 수행합니다.

③ 세마포어 (Semaphore)

  • 공유 자원에 대한 접근을 조정하기 위해 세마포어를 사용하여 동기화와 통신을 구현합니다.

④ 파이프 (Pipe)

  • 한 프로세스에서 데이터를 쓰면 다른 프로세스가 데이터를 읽는 방식으로, 단방향 또는 양방향 통신을 지원합니다.
  • 네임드 파이프는 특정 이름을 통해 프로세스 간에 데이터를 주고받습니다.

⑤ 메시지 큐 (Message Queue)

  • 메시지를 큐에 삽입하고 다른 프로세스가 이를 가져가는 방식으로 통신을 수행합니다.

5. 단위 모듈 테스트 (Unit Module Testing)

  • 단위 모듈이 정해진 기능을 정확하게 수행하는지 검증하는 테스트입니다.
  • 단위 테스트(Unit Test)는 모듈의 독립성을 보장하기 위해 각 모듈별로 개별적으로 수행됩니다.
  • 테스트 케이스(Test Case)를 작성하여 테스트 기준을 명확히 설정합니다.

6. 테스트 케이스(Test Case)

  • 테스트 케이스는 소프트웨어가 사용자의 요구사항을 준수하는지 확인하기 위한 테스트 항목 명세서입니다.
  • 테스트 케이스는 체계적인 검증을 통해 중복 작업을 줄이고, 누락된 테스트를 방지합니다.

① 테스트 케이스 구성 요소

구성 요소설명
식별자각 테스트 케이스를 식별하기 위한 고유 번호 또는 이름입니다.
테스트 항목테스트 대상 기능 또는 모듈을 의미합니다.
입력 명세테스트에 필요한 입력 데이터 또는 조건을 정의합니다.
출력 명세테스트 수행 시 기대되는 출력 결과를 기술합니다.
환경 설정테스트에 필요한 하드웨어 및 소프트웨어 환경을 명시합니다.
특수 절차테스트 수행 시 필요한 특별한 절차나 조건을 기술합니다.
의존성 기술테스트 케이스가 의존하는 다른 테스트나 환경 요소를 명시합니다.

7. 단위 모듈 테스트의 중요성

  • 단위 테스트를 수행하지 않고 모듈을 조립하면, 오류 발생 시 원인 파악이 어려워 디버깅에 시간이 오래 걸립니다.
  • 단위 테스트가 통과된 모듈은 조립 후 발생하는 오류가 단위 모듈이 아닌 통합 과정의 문제임을 명확히 구분할 수 있습니다.
  • 단위 테스트는 모듈 코드 수준의 오류를 검출하지만, 시스템 전반의 오류는 잡아낼 수 없습니다.

8. 요약 및 정리

  • 단위 모듈은 소프트웨어 개발의 기본 구성 요소로, 독립적이고 재사용 가능한 기능 단위입니다.
  • 모듈화를 통해 소프트웨어의 유지보수성과 확장성이 향상됩니다.
  • IPC 방식테스트 케이스 구성 요소를 명확히 이해하고, 시험 대비를 위해 반복 학습하세요.
  • 결합도와 응집도, 단위 모듈 테스트의 개념을 구분하여 숙지하는 것이 중요합니다.

0개의 댓글