소프트웨어의 종류
쉽게 말하면
소프트웨어는 컴퓨터 전체를 관리하는 시스템 소프트웨어(운영체제, 번역 프로그램)와 우리가 일하려고 쓰는 응용 소프트웨어(엑셀, 메신저)로 나뉘어요. 돈 내고 사는 상용, 일정 기간 써 보고 사는 셰어웨어, 공짜인 프리웨어, 설계도(소스)까지 공개한 오픈 소스도 구분해요. 사람이 쓴 프로그램을 컴퓨터 말로 바꾸는 방식은 한꺼번에 번역하는 컴파일러, 한 줄씩 통역하는 인터프리터가 있어요.
시험용 정의
시스템 소프트웨어는 운영체제, 언어 번역 프로그램(컴파일러·인터프리터·어셈블러), 유틸리티처럼 컴퓨터를 관리·지원하고, 응용 소프트웨어는 문서 작성·스프레드시트·그래픽처럼 특정 업무를 한다. 사용권에 따라 상용(구매), 셰어웨어(기간·기능 제한 무료), 프리웨어(무료, 소스 비공개), 오픈 소스(소스 공개, 수정·배포 허용), 데모 버전(홍보용 일부 기능), 알파 버전(개발사 내부 테스트), 베타 버전(출시 전 일반인 테스트), 패치(오류 수정·성능 개선), 번들(다른 제품에 끼워 주는 것)로 나눈다. 컴파일러는 프로그램 전체를 한 번에 번역해 목적 프로그램을 만들고(실행 빠름), 인터프리터는 한 줄씩 번역해 바로 실행한다(목적 프로그램 없음, 실행 느림).
비유로 이해하기
컴파일러는 책 한 권을 통째로 번역해 번역본을 출판하는 번역가, 인터프리터는 연설을 한 문장씩 바로바로 옮기는 동시통역사다. 번역본이 있으면 다음부터는 빨리 읽고, 동시통역은 매번 다시 통역해야 한다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 소스 코드 | 사람이 프로그래밍 언어로 쓴 프로그램 원문 |
| 목적 프로그램 | 컴파일러가 기계어로 번역해 만든 실행 파일 |
| 유틸리티 | 압축·백신·디스크 관리처럼 컴퓨터 사용을 돕는 작은 프로그램 |
| 기계어 | 0과 1로 된, CPU가 바로 알아듣는 언어 |
| 어셈블러 | 어셈블리어를 기계어로 바꾸는 번역 프로그램 |
사용권에 따른 분류
| 종류 | 특징 |
|---|---|
| 상용 소프트웨어 | 돈을 내고 사서 씀 |
| 셰어웨어 | 기간·기능을 제한해 무료 배포, 계속 쓰려면 구매 |
| 프리웨어 | 무료, 기간 제한 없음. 소스 비공개, 수정·판매 불가 |
| 오픈 소스 | 소스 코드 공개, 누구나 수정·재배포 가능 (리눅스) |
| 데모 버전 | 홍보용으로 일부 기능만 |
| 알파 버전 | 개발사 안에서 하는 테스트용 |
| 베타 버전 | 정식 출시 전 일반 사용자에게 시험용으로 배포 |
| 패치 프로그램 | 이미 나온 프로그램의 오류 수정·기능 개선 |
| 번들 프로그램 | 하드웨어·소프트웨어를 살 때 끼워 주는 프로그램 |
컴파일러 vs 인터프리터
| 구분 | 컴파일러 | 인터프리터 |
|---|---|---|
| 번역 단위 | 프로그램 전체 | 한 줄(문장)씩 |
| 목적 프로그램 | 생성 | 생성 안 함 |
| 실행 속도 | 빠름 | 느림 |
| 번역 속도 | 느림 | 빠름 |
| 언어 예 | C, C++, 코볼, 포트란 | 파이썬, 베이직, 자바스크립트 |
프로그램이 실행되기까지
원시 프로그램(소스) → 컴파일러 → 목적 프로그램 → 링커(여러 목적 프로그램·라이브러리 연결) → 로드 모듈 → 로더(주기억장치에 올림) → 실행
객체 지향 언어(C++, 자바)는 데이터와 기능을 객체로 묶고 상속·캡슐화·다형성 특징이 있다. 웹 문서는 HTML, 스타일은 CSS, 웹 동작은 자바스크립트로 만든다.
기출에서 더 나온 것
| 말 | 뜻 |
|---|---|
| 유틸리티 | 컴퓨터 사용을 돕는 서비스 프로그램 (압축·백신·디스크 관리). 컴퓨터 동작에 꼭 필요한 것은 아니다 |
| 시스템 소프트웨어 | 하드웨어를 관리하고 응용 프로그램이 돌 수 있게 해 주는 소프트웨어 (운영체제·언어 번역기) |
| 패치 | 이미 배포한 프로그램의 오류를 고치는 수정 파일. Windows는 Windows Update로 받는다 |
1급에서 더 나오는 것
| 항목 | 알아 둘 것 |
|---|---|
| 객체 지향 | 데이터와 처리 방법을 객체로 묶음, 상속·캡슐화·추상화·다형성, 재사용과 유지 보수가 쉬움. 대표 언어 C++·Java·C#·파이썬. C·파스칼·베이식·코볼은 순서를 중시하는 절차적 언어 |
| 운영 체제 평가 기준 | 처리 능력(정해진 시간에 처리한 양), 반환 시간(맡긴 뒤 결과를 받기까지), 사용 가능도(쓰려고 할 때 곧바로 쓸 수 있는 정도), 신뢰도(문제를 정확히 해결하는 정도) |
| 소프트웨어 종류 | 셰어웨어: 기간·기능을 제한해 무료 배포. 프리웨어: 제한 없이 무료. 오픈 소스: 소스 코드 공개, 누구나 수정·배포. 패치: 오류 수정·성능 향상을 위한 일부 변경. 베타: 출시 전 시험판. 번들: 다른 제품에 끼워 줌 |
| 펌웨어 | 롬(플래시 메모리)에 저장되어 하드웨어를 제어하는 소프트웨어. 업데이트만으로 기능·성능을 좋게 할 수 있다 |
| 압축 프로그램 | 여러 파일을 하나로 묶고, 분할 압축·암호 설정을 지원하며, 전송 시간과 공간을 아낀다. 이미 압축한 파일은 다시 압축해도 거의 줄지 않는다 |
시험에 이렇게 나와요
- 운영체제 제어 프로그램 → 감시·작업 관리·데이터 관리 (언어 번역 프로그램은 처리 프로그램)
- 출시 전 고객에게 평가받는 버전 → 베타, 개발사 내부 시험 → 알파, 오류 수정 → 패치(Windows Update)
- 셰어웨어 → 기능·기간 제한을 두고 무료 배포, 프리웨어 → 무료
- 추상화·캡슐화·상속·다형성 → 객체지향 프로그래밍
- 컴파일러 → 전체를 한 번에 번역해 목적 프로그램 생성, 인터프리터 → 한 줄씩 번역·실행 (실행 속도는 컴파일러가 빠름)
- 운영체제 → 주기억장치에 올라와 실행, 자원 관리·사용자 인터페이스 제공 (바이러스 감시는 백신)
- (1급) 운영 체제 평가 기준(처리 능력·반환 시간·사용 가능도·신뢰도), 펌웨어 업데이트, 압축 파일은 재압축해도 거의 안 줄어듦
확인 문제
Q1. 기능이나 사용 기간에 제한을 두고 무료로 배포하는 소프트웨어는?
- 프리웨어
- 패치 프로그램
- 셰어웨어
- 상용 소프트웨어
정답 보기
3번 셰어웨어
셰어웨어는 써 본 뒤 마음에 들면 사도록 기간·기능을 제한해 무료로 푼다. 프리웨어는 제한 없이 무료지만 수정·판매는 할 수 없다.
Q2. 정식 출시 전에 일반 사용자에게 무료로 나눠 주고 테스트하는 버전은?
- 패치 버전
- 알파 버전
- 베타 버전
- 데모 버전
정답 보기
3번 베타 버전
베타 버전이다. 정식 출시 전에 일반 사용자에게 나눠 주고 문제를 찾는다. 알파 버전은 개발사 안에서 먼저 하는 테스트다.
Q3. 인터프리터에 대한 설명으로 옳은 것은?
- 프로그램 전체를 한 번에 번역한다
- 한 줄씩 번역해 바로 실행한다
- 목적 프로그램을 만든다
- 컴파일러보다 실행 속도가 빠르다
정답 보기
2번 한 줄씩 번역해 바로 실행한다
목적 프로그램 없이 바로 실행, 대신 느리다.
Q4. 소스 코드를 공개해 누구나 고치고 다시 배포할 수 있는 소프트웨어는?
- 프리웨어
- 상용
- 오픈 소스
- 셰어웨어
정답 보기
3번 오픈 소스
프리웨어는 무료지만 소스는 비공개.
Q5. 운영체제의 제어 프로그램이 아닌 것은?
- 데이터 관리 프로그램
- 작업 관리 프로그램
- 언어 번역 프로그램
- 감시 프로그램
정답 보기
3번 언어 번역 프로그램
언어 번역 프로그램은 처리 프로그램이다.
Q6. 기능이나 사용 기간에 제한을 두고 무료로 나눠 주는 소프트웨어는?
- 셰어웨어
- 프리웨어
- 패치
- 베타 버전
정답 보기
1번 셰어웨어
셰어웨어다. 기능이나 기간을 제한해 무료로 써 보게 하고 계속 쓰려면 돈을 내게 한다. 프리웨어는 제한 없이 무료다.
헷갈리기 쉬운 O·X
프리웨어는 소스 코드를 수정해 판매할 수 있다.
정답 보기
X 틀리다. 프리웨어는 무료로 쓰는 것만 허락한다. 소스 코드를 고치고 배포할 수 있는 것은 오픈 소스다.
컴파일러는 목적 프로그램을 만든다.
정답 보기
O 맞다. 컴파일러는 소스 코드 전체를 번역해 목적 프로그램을 만들어 두어서, 다음부터는 번역 없이 바로 실행해 빠르다. 인터프리터는 목적 프로그램을 만들지 않는다.
운영체제와 컴파일러는 모두 시스템 소프트웨어다.
정답 보기
O 언어 번역 프로그램도 시스템 소프트웨어.