[정보처리기사 필기] 통합 구현 - 034. 단위 모듈 구현

1. 단위 모듈의 개요

  • 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것
  • 단위 기능 : 단위 모듈로 구현되는 하나의 기능
  • 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램
  • 두 개의 단위 모듈이 합쳐질 경우 두 개의 기능을 구현할 수 있음
  • 단위 모듈의 구성 요소 : 처리문, 명령문, 데이터 구조 등
  • 독립적인 컴파일이 가능, 다른 모듈에 호출되거나 삽입되기도 함
  • 단위 모듈 구현 과정 : 단위 기능 명세서 작성 -> 입출력 기능 구현 -> 알고리즘 구현

2. 단위 기능 명세서 작성

  • 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서를 의미
  • 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업이 필요
  • 대형 시스템을 분해하여 단위 기능별로 구분하고 각 기능들을 계층적으로 구성하는 구조화 과정을 거침
  • 모듈의 독립적인 운용과 한 모듈 내의 정보가 다른 모듈에 영향을 주지 않도록 정보 은닉의 원리를 고려

3. 입출력 기능 구현

  • 단위 기능 명세서에서 정의한 데이터 형식에 따라 입출력 기능을 위한 알고리즘 및 데이터를 구현
  • 단위 모듈 간의 연동 또는 통신을 위한 입출력 데이터를 구현
  • 사용자 인터페이스인 CLI, GUI와의 연동을 고려
    • GLI : 키보드를 통해 명령어를 입력받는 사용자 인터페이스
    • GUI : 키보드 뿐만 아니라 마우스 등의 도구를 통해 하면의 아이콘, 메뉴 등의 다양한 그래픽적 요소로 명령을 입력받는 사용자 인터페이스
  • 네트워크나 외부 장치와의 입출력은 무료로 공개되어 있는 Open Source API를 이용하면 간편하게 구현할 수 있음
    • Open Source : 일정한 조건을 준수하면 누구나 무료로 사용, 수정, 재배포가 허가되는 소스 코드

4. 알고리즘 구현

  • 입출력 데이터를 바탕으로 단위 기능별 요구사항들을 구현 가능한 언어를 이용하여 모듈로 구현
  • 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인하는 과정이 필요
  • 구현되는 모듈의 종류
    • 디바이스 드라이버 모듈 : 하드웨어 주변 장치의 동작을 구현한 모듈
    • 네트워크 모듈 : 네트워크 장비 및 데이터 통신을 위한 기능을 구현한 모듈
    • 파일 모듈 : 컴퓨터 내부의 데이터 구조 영역에 접근하는 방법을 구현한 모듈
    • 메모리 모듈 : 파일을 프로세스의 가상 메모리에 매핑 / 해제하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈
    • 프로세스 모듈 : 하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현한 모듈

5. IPC (Inter - Process Communication)

  • 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
  • 복수의 프로세스를 수행하여 이뤄지는 프로세스 간 통신까지 구현이 가능
  • IPC의 대표 메소드
    • Shared Memory : 다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스 간 통신을 수행
    • Socket : 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스들 간 통신을 수행 
    • Semaphores : 공유 자원에 대한 접근 제어를 통해 프로세스 간 통신을 수행
    • Pipes & named Pipes : 파이프라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신을 수행, 하나의 프로세스가 파이프를 이용중이라면 다른 프로세스는 접근할 수 없음
    • Message Queueing : 메시지가 발생하면 이를 전달하는 형태로 프로세스 간 통신을 수행