하드웨어 / 미들웨어 / 소프트웨어

 하드웨어 ( HardWare ) 

 

  • 본래 '쇠붙이'라는 뜻
  • 컴퓨터를 구성하는 기계적, 전기적, 전자적() 기능을 대상으로 하는 장치 그 자체.
  • ex) 중앙처리장치 / 기억장치(memory unit) / 입출력장치

 

 

 하드웨어 분류 

전자부품
  • 컴퓨터에서 가장 중요한 중앙처리장치의 연산/제어회로 또는 기억장치/입출력장치의 제어, 판독, 쓰기회로 등에 사용
  • 점차 회로의 집적화(IC)가 진척되어 크게 변혁하는 중
기계부품
  • 대용량 기억장치/입출력장치에서 특히 중요한 부분
  • 고(高)정밀도이자 강고(强固)한 것이 요구됨

 

 

 

미들웨어 ( MiddleWare ) 

 

 

서로 다른 기종의 하드웨어 프로토콜, 통신 환경 등을 연결하여

응용 프로그램과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어  

 

 

  • 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하는 소프트웨어
  • 데이터를 앞뒤로 보내지 않고 실시간으로 발생하는 작업으로 분산 처리에도 사용 가능
  • 기본적으로 숨겨진 변환 계층으로 기능하며, 분산 응용 프로그램의 통신 및 데이터 관리를 가능하게 한다.
  • 데이터와 데이터베이스가 "파이프" 사이를 쉽게 통과하 수 있도록 두 가지 응용 프로그램을 함께 연결
  • 사용자가 웹 브라우저에서 양식을 제출하거나 웹 서버가 사용자의 프로필을 기반으로 동적 웹 페이지를 반환하도록 요청

 

 

 미들웨어 종류 

 

  • 데이터베이스 미들웨어
  • 애플리케이션 서버 미들웨어
  • 메시지 지향 미들웨어
  • 웹 미들웨어 및 트랙잭션 처리 모니터

 

 

각 프로그램은 SOAP, 웹 서비스, REST 및 JSON과 같은 메시징 프레임워크 사용

> 서로 다른 응용 프로그램이 통신할 수 있도록 서비스를 제공

 

 

 

 소프트웨어(SoftWare) 

  • 특정한 업무를 수행하도록 만들어 놓은 명령어들의 집합
  • 입력물(Input)에 대한 사용자의 명령(Instruction)에 따라 일련의 산출물(Output)을 제공하는 소프트웨어
  • 0과 1의 비트로 이루어진 무형의 구성요소를 뜻한다.
  • 소프트웨어는 크게 프로그램(구동) 데이터(처리)로 구분할 수 있다.
  • 보조기억장치(하드 디스크 등) 또는 주기억장치(메모리, RAM)에 저장되어 작동

 


 프로그램(Program) 

 

  • 컴퓨터를 구동시켜주는 운영체제
  • 컴퓨터에서 구동되는 애플리케이션(응용 프로그램), 유틸리티, 악성코드 등이 포함

 

분류 종류 설명
시스템 소프트웨어 운영체제 (MS-DOS / MS / Linux 등)  
드라이버 각종 입출력 장치를 컴퓨터 본체와 연결시키는 소프트웨어
Interface 접속점, 연결점
응용 소프트웨어 워드 프로세서, 스프레드 시트 등 플랫폼 위에서 구동되는 프로그램
유틸리티 방화벽, 안티바이러스 프로그램, 파일 압축 등 컴퓨터 운용을 보조하는 도우미 프로그램
악성코드 컴퓨터 바이러스, 웜, 트로얀 제작자가 악의를 가지고 만든 소프트웨어

 


 데이터 (Data) 

 

  • 프로그램 이외의 모든 소프트웨어
  • 데이터 유형
  • 프로그램을 실행하는 데 필요한 데이터 
  • MP3 음원 / 사진 / 각종 동영상 파일 / 워드 프로세서를 이용해 작성한 문서
  • 콘텐츠 : 사용자(소비자)에게 가치를 제공하는 데이터



 펌웨어(FirmWare) 

 

  • 컴퓨터의 CPU가 아닌 하위 단계의 장치들을 제어하는 지시라는 점에서 소프트웨어와 따로 취급한다.
  • 펌웨어는 소프트웨어와 달리 ROM 등의 읽기 전용 메모리에 새겨져 있어 내용 변경이 어렵다.
    단순한 기계(예를 들어 전자계산기, 전자레인지 등)들은 펌웨어만으로도 작동 가능
  • 대표적인 펌웨어로, BIOS가 있다.

 

그림으로 보는 각종 웨어들의 관계

 

'Knowledge' 카테고리의 다른 글

XML (eXtensible Markup Language)  (0) 2019.09.01
비밀키 / 공개키  (0) 2019.08.31
소프트웨어 개발 방법론  (0) 2019.08.15
API , Restful  (0) 2019.08.14
프로그래밍 언어 종류 10가지  (2) 2019.08.10