단위 모듈 구현

clay·2023년 2월 6일
0

소프트웨어 개발

목록 보기
9/47
post-thumbnail

단위 모듈(Unit Module)의 개요

단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다.

  • 단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 부른다.
  • 단위 모듈은 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램을 의미하기도 한다.
  • 단위 모듈은 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램을 의미하기도 한다.
  • 두 개의 단위 모듈이 합쳐질 경우 두 개의 기능을 구현할 수 있다.
  • 단위 모듈의 구성 요소에는 처리문, 명령문, 데이터 구조 등이 있다.
  • 단위 모듈은 독립적인 컴파일이 가능하며, 다른 모듈에 호출되거나 삽입되기도 한다.
  • 단위 모듈을 구현하기 위해서는 단위 기능 명세서를 작성한 후 입∙출력 기능과 알고리즘을 구현해야 한다.

단위 기능 명세서 작성 ➡️ 입∙출력 기능 구현 ➡️ 알고리즘 구현

단위 기능 명세서 작성

단위 기능 명세서는 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 ㅣㅈ침과 같이 단위 기능을 명세화한 문서들을 의미한다.

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

입∙출력 기능 구현

입∙출력 기능 구현 단계에서는 단위 기능 명세서에서 정의한 데이터 형식에 따라 입∙출력 기능을 위한 알고리즘 및 데이터를 구현한다.

  • 입∙출력 기능 구현 단계에서는 단위 모듈 간의 연동 또는 통신을 위한 입∙출력 데이터를 구현한다.
  • 입∙출력 기능 구현 시 사용자 인터페이스인 CLI, GUI와의 연동을 고려한다.
  • 입∙출력 기능 구현 시 네트워크나 외부 장치와의 입∙출력은 무료로 공개되어 있는 Open Source API를 이용하면 간편하게 구현할 수 있다.

IPC(Inter-Process Communication)

IPC는 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로, 복수의 프로세스를 수행하여 이뤄지는 프로세스 간 통신까지 구현이 가능하다.

  • IPC의 대표 메소드 5가지

Shared Memory
다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스 간 통신을 수행한다.

Socket
네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스들 간 통신을 수행한다.

Semaphores
공유 자원에 대한 접근 제어를 통해 프로세스 간 통신을 수행한다.

Pipes&named Pipes

  • 'Pipe'라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신을 수행한다.
  • 하나의 프로세스가 Pipe를 이용 중이라면 다른 프로세스는 접근할 수 없다.

Message Queueing
메시지가 발생하면 이를 전달하는 형태로 프로세스 간 통신을 수행한다.

알고리즘 구현

알고리즘 구현 단계에서는 입∙출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용하여 모듈로 구현한다.

  • 알고리즘 구현 단계에서는 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인하는 과정이 필요하다.
  • 구현되는 모듈은 단위 기능의 종류에 따라 디바이스 드라이버 모듈, 네트워크 모듀르 파일 모듈, 메모리 모듈 프로세스 모듈 등으로 구분된다.

디바이스 드라이버 모듈
하드웨어 주변 장치의 동작을 구현한 모듈

네트워크 모듈
네트워크 장비 및 데이터 통신을 위한 기능을 구현한 모듈

파일 모듈
컴퓨터 내부의 데이터 구조 영역에 접근하는 방법을 구현한 모듈

메모리 모듈
파일을 프로세스의 가상 메모리에 매핑/해제하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈

프로세스 모듈
하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현한 모듈

profile
샤코타임 팬

0개의 댓글