Software 소프트웨어
컴퓨터 하드웨어를 동작하고 제어하는 역할을 하는 명령어 집합
- 응용 소프트웨어 : 다양한 응용에 사용하기 위해 특별히 제작된 소프트웨어들
- 시스템 소프트웨어 : 하드웨어 및 응용소프트웨어 중간에 위치
. 운영체제 : 하드웨어와 직접 상호작용, 프로그램에 공통적인 서비스 제공
. 유틸리티 소프트웨어 : 기본적인 활동을 수행하며 운영체제 기능을 확장시켜줌
. 언어 번역 프로그램 : 컴파일러, 어셈블러, 인터프리터 등
물리적 실체인 하드웨어의 반대어로 만들어진 용어. 컴퓨터 프로그램과 같은 뜻으로 해석되는 경우도 있으나 프로그램 자신 외에 그 프로그램 자신의 설명서, 그 프로그램에 의해 업무를 수행할 때의 사무 상의 규정이나 절차, 이들을 문서화한 설명서나 색인서도 모두 포함한 전체를 가리킨다.
또한 컴퓨터 시스템을 가동시키는 데 필수가 되는 시스템 소프트웨어(system software)와 이용자 측의 업무에 특유한 응용 프로그램(applications program)을 구별해 왔으나 현재는 양자를 포함하여 소프트웨어라고 하며, 시스템 개발(system development)과 소프트웨어 개발(software development)은 동의어로 취급되고 있다.
[주] 데이터 처리 시스템을 기능화시키기 위해 프로그램, 절차, 규칙, 관련 문서 등을 포함하는 지적인 창작.
출처 : 네이버지식백과 컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회
컴퓨터 프로그램과 여기에 수반되는 문서 등으로 이루어진 컴퓨터 시스템의 핵심 구성 요소.
컴퓨터 프로그램뿐만 아니라 여기에 수반되는 문서 등을 포함하는 용어이다. 하드웨어(Hardware)와 함께 컴퓨터를 구성하는 핵심 요소 중 하나이다. 흔히 컴퓨터 프로그램과 유사한 의미로 사용되나, 프로그램이 컴퓨터의 처리순서와 동작 방법을 지시하는 명령어 집합인 데 반해 소프트웨어는 여기에 수반되는 절차나 규칙, 문서까지도 포함하는 개념이다.
소프트웨어의 특징
무형의 제품인 소프트웨어는 코드가 내재되어 있어 동작하는 소프트웨어 구조가 외부에 노출되지 않는 '비가시성', 외부 환경이나 시간의 흐름에도 마모되거나 변경되지 않는 '비마모성', 원본만 있으면 간단하게 복제가 가능한 '복제 용이성', 정형화된 형태 없이 소프트웨어마다 다양하고 비규칙적인 구조를 가지는 '복잡성' 등의 특징이 있다.
소프트웨어의 유형
역할이나 용도에 따라 크게 시스템 소프트웨어와 응용 소프트웨어로 구분할 수 있다.
시스템 소프트웨어
컴퓨터를 실행하기 위해 공통적으로 필요한 프로그램으로써 대표적으로 유닉스(Unix)나 윈도우(Window)와 같은 운영체제(OS, Operating System)가 있다. C언어나 포트란(FORTRAN) 등에 사용되는 컴파일러(compiler)나 입출력 제어 프로그램 등도 시스템 소프트웨어에 해당한다.
이러한 시스템 소프트웨어는 컴퓨터 하드웨어를 제어하고, 메모리나 CPU(Central Processing Unit) 등의 복잡한 컴퓨터 자원을 이용자가 쉽게 사용할 수 있도록 도와주는 역할을 한다. 오피스(Office) 등의 소프트웨어를 사용하고자 할 때 우리가 이것을 컴퓨터에 쉽게 설치할 수 있는 이유도 이미 윈도우 OS와 같은 시스템 소프트웨어가 컴퓨터에 설치되어 있기 때문에 오피스 설치파일을 더블 클릭하는 동작만으로도 하드디스크의 특정 위치를 활용해서 설치·사용 할 수 있게 되는 것이다.
응용 소프트웨어
시스템 소프트웨어 위에서 구동되는 소프트웨어로, 사용자가 필요로 하는 기능을 제공한다. 흔히 소프트웨어라고 하면 응용 소프트웨어를 지칭하는 경우가 많으며, 우리가 컴퓨터에서 사용하는 대부분의 프로그램이 응용 소프트웨어이다. 대표적으로 워드(Word), 엑셀(Excel)과 같은 사무용 오피스를 비롯하여 디자인 작업을 위한 포토샵(PhotoShop), 설계 작업을 위한 캐드(CAD), 카카오톡과 같은 메신저 프로그램, 파일 압축을 위한 압축프로그램, 바이러스 방지를 위한 백신 프로그램 등이 있다. 응용 소프트웨어(Application Software)를 줄여서 '애플리케이션'이라고도 부르며, 최근에 인터넷 확산으로 부각된 웹 애플리케이션 역시 웹브라우저를 통해서 사용 가능한 응용 소프트웨어의 하나이다.
출처 : 네이버 지식백과 / 두산백과 두피디아, 두산백과
System Software 시스템 소프트웨어
제어 관리하는 운영체제 Operation System (windows, Mac 등)
운영체제 아래에서만 응용 소프트웨어 사용 가능함
컴퓨터 사용자가 손쉽게 컴퓨터를 쓸 수 있게 도와주는 동시에 컴퓨터 시스템을 효율적으로 운영해주는 기능을 갖춘 프로그램의 집단. 시스템 소프트웨어는 컴퓨터 하드웨어의 제작 회사에 의해 제공되며 흔히 운영 체제(OS)로 불린다.
출처 : 네이버 지식백과 / 컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회
컴퓨터를 처음 켰을 때의 모든 작업들을 제어하게 되며, 사용자가 소프트웨어를 사용할 경우에 사용자의 작업 지시를 컴퓨터에 전달해 주는 역할을 수행, 즉 운영체제(OS : Operating System)라고 한다. 운영체제는 사용자와 하드웨어를 연결하는 가장 핵심적인 소프트웨어로서, 시스템 운영(System operation), 시스템 지원(System support), 시스템 개발(Systemdevelopment) 프로그램 등으로 구분할 수 있다.
시스템 운영프로그램은 사용자의 프로그램이 수행되는 동안 그에 필요한 하드웨어와 소프트웨어를 관리해 주는 프로그램으로 운영체제, 데이터베이스 관리 시스템(DataBaseManagement System, DBMS), 통신 모니터(Communication monitor) 등으로 분류할 수 있다. 운영체제는 컴퓨터 시스템의 자원을 보다 효율적으로 관리하고 운영하여 시스템의 생산성을 향상시키며, 사용자들에게 컴퓨터 시스템의 편의성을 제공하는 프로그램의 집합체이다.
데이터베이스 관리시스템(DBMS)은 이용자의 데이터를 디스크 등의 저장장치에 저장하고 유지하며 쉽게 활용할 수 있도록 지원해주는 소프트웨어이다. 즉, 데이터베이스의 구성, 접근방법, 유지관리 등에 대한 모든 책임을 지고 있는 소프트웨어라고 할 수 있다. 통신 모니터는 컴퓨터 통신과 병합하여 컴퓨터 네트워크를 구성한다. 즉, 컴퓨터와 컴퓨터 사이에 전자 통신 선로를 연결하고 단절하기도 한다. 이를 통해 데이터를 송 · 수신하며, 이 과정에서 오류를 검출하고 수정하는 등의 기능을 수행하는 프로그램 집단이 통신 모니터이다.
출처 : 네이버 지식백과 / 지형 공간정보체계 용어사전, 2016. 1. 3., 이강원, 손호웅
사용자가 컴퓨터 하드웨어 및 각종 장치 정보를 효율적으로 사용할 수 있도록 지원하는 소프트웨어.
컴퓨터 시스템의 개별 하드웨어(HW) 요소들을 직접 제어, 통합, 관리하는 소프트웨어로서 사용자가 컴퓨터 하드웨어의 물리적인 특성이나 구조를 전부 알지 못하더라도 컴퓨터 시스템을 사용할 수 있게 도와주는 역할을 하는 소프트웨어를 말한다.
시스템 소프트웨어에는 운영 체제(operating system), 링커(linker)나 로더(loader), 컴파일러(compiler), 어셈블러(assembler)와 같은 언어 처리 프로그램, 유틸리티(utility) 등이 있다.
- 운영 체제(operating system): 컴퓨터의 주기억 장치 내에 상주하면서 중앙 처리 장치, 주기억 장치, 보조 기억 장치, 입출력 장치, 네트워크 등의 컴퓨터 시스템 자원(resource)들을 효율적으로 제어하고 관리할 뿐만 아니라 사용자로부터 명령을 받아들이고 이를 해석하여 CPU에 전달할 수 있는 인터페이스를 제공하는 소프트웨어다.
- 링커(linker)와 로더(loader): 링커는 하나의 결과를 출력하기 위해 작성된 서로 다른 작은 프로그램들을 연결하여 실행 가능한 하나의 프로그램으로 만들어주는 프로그램이며, 그 연결 과정을 링킹(linking)이라고 한다. 로더는 하드디스크와 같은 보조기억장치에 저장되어 있는 특정 프로그램을 중앙 처리 장치(CPU)가 실행할 수 있도록 주기억 장치에 적재하는 과정을 담당한다. 로더에는 재배치 로더(relocating loader), 절대 로더(absolute loader), 링킹 로더(linking loader) 등이 있다.
- 언어 처리 프로그램(language processing program): 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 0과 1의 이진 체계 언어인 기계어(machine language)로 변환해주는 프로그램이다. 언어 처리 프로그램에는 컴파일러, 어셈블러 등이 있다. 컴파일러는 고급 언어를 기계어로 번역해주는 작업을 하고, 어셈블러는 저급 언어인 어셈블리어(Assembly Language)로 작성된 프로그램을 기계어로 번역해주는 작업을 한다.
- 유틸리티(utility): 컴퓨터 시스템 동작을 도와주는 작은 규모의 프로그램을 지칭한다. 컴퓨터 하드웨어(HW), 운영 체제(OS), 응용 소프트웨어를 관리하는 데 도움을 준다. 자주 사용되는 유틸리티는 디스크 조각 모음, 파일 압축, 백업과 복구, 장치 드라이버 등이 있다.
· 디스크 조각 모음: 컴퓨터 하드 디스크(HDD)의 조각난 파일을 통합하여 컴퓨터를 더 효율적으로 실행할 수 있도록 해주는 도구다.
· 파일 압축: 파일 압축 프로그램을 사용하여 프로그램 파일이나 데이터 파일의 크기를 축소함으로써 이들 파일을 저장하는 디스크의 기억 공간을 절감하고 전송하는 데 필요한 시간을 단축하기 위한 작업이다.
· 백업(backup)과 복원(restore): 컴퓨터 시스템 사용 중에 일어날 수 있는 사용자의 크고 작은 실수나 바이러스에 의한 파일 손상 또는 소프트웨어나 하드웨어의 오류로 인한 파일 손상에 대비하거나, 특정 시점이나 상황으로 시스템 작동을 유지하기 위해 원본과 다른 복사본 파일을 저장해주는 작업을 말한다. 백업은 파일 백업과 시스템 백업으로 구분하며, 백업된 내용으로 컴퓨터 시스템을 다시 복구하는 작업을 복원이라고 한다.
· 장치 드라이버: 컴퓨터 시스템에 부착된 장치를 제어하기 위한 프로그램이다. 장치 드라이버는 운영 체제가 전달하는 명령어들을 각각의 장치가 이해할 수 있는 명령으로 변경하여 작업을 실행할 수 있도록 제어한다.
출처 : 네이버 지식백과 / IT용어사전, 한국정보통신기술협회
application program 응용프로그램
프로그램 중에서 특정한 업무를 해결하기 위한 목적을 가지고 만들어진 프로그램.
오퍼레이팅 시스템이나 유틸리티 프로그램, 언어처리 프로그램 등의 기본 소프트웨어와 달리 특정한 업무 처리를 목적으로 작성된 프로그램이다. 응용프로그램은 사용자에 의해 직접 작성되기도 하지만, 지금은 사용자의 프로그램 작성상의 번거로움을 덜고, 또 편리하게 활용할 수 있도록 하기 위해서, 각 분야의 전문가에 의해 개발 ·작성되고 패키지화된 응용프로그램이 많이 활용되고 있으며, 이를 패키지프로그램이라 한다.
패키지프로그램 중에서 대표적인 것으로는 통계처리 프로그램 ·수치해석 프로그램 ·시뮬레이션 프로그램 ·공정관리 프로그램 등이 있으며 과학용 프로그램도 이에 속한다. 과학용 프로그램은 주로 서브 프로그램으로 만들어져 있어 사용자가 매우 편리하게 사용할 수 있다. 서브 프로그램이란 프로그램 중에서 특정의 작업만을 진행시키는 프로그램이다. 즉, 사용자가 해당 매개체를 프로그램 안에 입력하면 원하는 값을 필요할 때마다 구할 수 있게 만들어져 있는 프로그램이다.
한편, 최근에 고속 응용프로그램이 개발되었는데 이는 전통적인 프로그래밍에 의한 소프트웨어 개발보다 개발시간이 빠르고 유연하며, 이미 검증된 부프로그램을 이용하기 때문에 초기개발 단계에서 바로 판매 가능한 제품을 개발할 수 있다. 또한 사용자가 응용프로그램을 수정할 수도 있으며 마우스로 원하는 기능을 선택한 후 흐름을 연결함으로써 이루어진다.
그러므로 전문 프로그래머 없이도 프로그램을 개발하려는 곳에 이 제품의 수요가 증가하고 있다. 주로 시각 프로그래밍언어(visual programming language)를 이용한다. 데이터베이스 관리를 위주로 하는 상업용 데이터 처리에 적합하며 계산 위주의 공학용, 금융업 또는 실시간 처리를 요하는 공정제어, 금융 거래 처리 등에는 약점이 많다.
출처 : 네이버 지식백과 / 두산백과 두피디아, 두산백과
application software 응용 소프트웨어
사용자가 원하는 기능을 수행하기 위해 제작되어 사용자가 직접 사용하는 소프트웨어.
응용 소프트웨어(application software)는 사용자가 컴퓨터를 사용하여 어떠한 일을 하려고 할 때 사용되는 모든 프로그램을 말한다. 예를 들어, 컴퓨터로 재고 관리를 하는 경우 이 재고 관리를 실행하는 프로그램이 응용 소프트웨어다. 응용 소프트웨어는 이런 점에서 컴퓨터를 작동시키는 운영 체제(OS)나 컴퓨터 시스템의 유지 관리를 지원하는 유틸리티 및 프로그램을 작성하는 언어와 구별된다. 응용 소프트웨어는 입력된 또는 저장된 데이터를 처리한다.
응용 소프트웨어의 적용 분야는 게임, 그래픽, 컴퓨터 지원 설계(CAD), 통신, 문서 처리, 사무 계산, 데이터베이스, 과학 기술용 수치 해석 등 수많은 분야가 있다. 보통의 경우 응용 소프트웨어는 사용자 자신이나 소프트웨어 회사가 만들며 상업적으로 판매되기도 한다.
동의어 : 응용 프로그램(application program)
출처 : 네이버 지식백과 / IT용어사전, 한국정보통신기술협회