1. 소프트웨어의 종류
(1) 소프트웨어란?
- 컴퓨터의 하드웨어가 다양한 목적의 작업을 수행할 수 있도록 지시하는 일련의 명렁어로 구성된 다양한 종류의 프로그램 및 관련 데이터를 의미
- 사용자는 소프트웨어를 통하여 컴퓨터를 사용함
(2) 소프트웨어의 종류
- 소프트웨어의 종류는 크게 "응용 소프트웨어" , "시스템 소프트웨어"가 있다.
- 응용 소프트웨어와 시스템 소프트웨어는 아래 그림과 같이 동작을 한다.

(3) 시스템 소프트웨어
[1] 시스템 소프트웨어란?
- 컴퓨터 하드웨어를 운영하고, 응용 소프트웨어가 동작하기 위한 기반 구조를 형성하는 소프트웨어를 의미한다.
- 컴퓨터 사용자가 손쉽게 컴퓨터를 쓸 수 있도록 도와주는 프로그램이다.
- 컴퓨터 시스템을 효율적으로 운영해 주는 기능을 갖춘 프로그램이다.
- 종류로는 운영체제, 프로그래밍 언어번역기(컴파일러, 인터프리터), 유틸리티 소프트웨어 등이 있다.
(4) 시스템 소프트웨어 - 운영체제
- 운영체제는 컴퓨터 하드웨어와 응용 소프트웨어를 관리하고, 사용자와 컴퓨터 간의 중재자 역할을 하는 시스템 소프트웨어이다.
- 사용자가 컴퓨터를 손쉽게 이용할 수 있도록 도와준다.
- 운영체제는 컴퓨터가 동작하는 동안 항상 실행이 되고 있다.
[1] 운영체제 실행 과정

- 1. 컴퓨터 전원 버튼을 누르면 ROM에 들어있는 BIOS 프로그램이 실행이 된다.
- 2. BIOS는 POST(Power-On Self-Test) 과정을 거친다. ( 하드웨어 시스템이 정상동작하는지 체크하는 과정 )
- 3. 이후, Booting 작업을 하는데 이때, 하드디스크에 있는 운영체제를 RAM에 적재를 하게 된다.
- 4. RAM에 올라간 운영체제가 실행이 되며, 모니터에 GUI 화면을 볼 수 있게 된다. ( 부팅 끝 )
[2] 운영체제의 역할
- 사용자가 컴퓨터와 대화할 수 있도록 인터페이스를 제공한다. (GUI)
- 컴퓨터의 하드웨어 장치를 관리해준다. ( 메모리, 보조기억장치, CPU 등을 관리 해줌 )
- 파일시스템을 관리하고 보존한다.
- 프로그램들이 원활하게 실행될 수 있도록 관리하고 지원함. ( 스케줄링 )
[ 사용자 인터페이스 GUI ]
- 초기에는 CLI(Command-Line Interface) 명령어 인터페이스를 이용을 했음
- 이후 운영체제 취지상 모든 사용자들이 사용하기 쉽게 GUI 형태로 만들어서 제공을 해줌.
[ 컴퓨터의 하드웨어 자원 관리 ]
- 주기억장치의 관리 - 여러 프로그램들이 주기억장치의 공간을 활용하여 실행되기 위한 자원의 관리
- 디스플레이, 키보드, 마우스, 오디오 장치, 프린터, 네트워크, 보조기억장치 등 주변 장치들의 관리
[ 파일시스템 관리 ]
- 운영체제는 보조기억장치에 데이터들을 편리하고 안전하게 보관하고, 사용할 수 있도록 도와준다. ( 파일 시스템 )
- 폴더 관리, 파일 생성, 복사, 삭제, 파일 검색, 백업 및 복구 등의 기능을 제공한다.
[ 프로그램 실행 관리 ]
- 하나의 컴퓨터 내에서 여러개의 프로그램이 동작할 때, 서로간의 간섭을 일으키지 않게 도와주는 기능을 제공함.
- 즉, 프로그램간 자원을 공유 할 수도 있으며, 충돌이 일어나지 않게 잘 관리를 해준다.
[3] 운영체제 종류
[ 마이크로소프트 Windows ]
- 1995년에 개인용 컴퓨터를 위한 GUI 환경의 운영체제인 Windows 95를 출시함.
- 이후 windows 98, Windows XP... 등을 거쳐 2015년 Windows 10, 2021년에는 Windows 11을 공개함.
- 개인용 데스크탑이나 노트북 컴퓨터용 외에도 서버 및 모바일 용으로 사용하기 위한 버전들도 출시가 됨.
[ 유닉스(UNIX) ]
- 멀티태스킹, 멀티유저를 지원하는 운영체제이다.
- 1970년대에 벨 연구소에서 개발된 이후 소스를 공개하여 다양한 버전이 개발이 되었다.
- 크게 AT & T UNIX System V 버전과 버클리 대학의 BSD 버전이 있다.
- AT & T UNIX System V 버전 : IBM의 AIX, Oracle의 Aolaris, HP의 HP-UX 등
- 버클리 대학 BSD(Berkeley Software Distribution) 버전
- 1980년대 후반 이후 서로 다른 UNIX 사이의 호환성 및 이식성이 떨어지는 문제를 해결하기 위한 표준화를 시도함.
- 현재는 특정 산업, 특히 금융, 항공, 통신처럼 안정성이 최우선인 기업용 시스템에서 즉, 특정 분야에서 많이 쓰임.
[ 리눅스(Linux) ]
- 1991년 리누스 토발즈가 개발한 커널을 바탕으로 만들어진 운영체제이다. ( 커널은 운영체제의 핵심임 )
- 자유 소프트웨어 및 오픈 소스 운영체제
- 유사 유닉스(UNIX-like) 운영체제
- 원래 인텔 x86(CPU) 기반 PC를 위해 개발이 되었으나, 이후 다양한 서버급 컴퓨터에서도 사용될 수 있도록 이식되고 있음.
- 슬렉웨어, 레드햇, 데비안, 우분투, 페도라 등 다양한 배포판으로 개발되어 사용이 되고 있음.
[ macOS ]
- 애플이 매킨토시용으로 개발한 운영체제이다.
- 초기의 Mac OS : 1984년 개발된 애플 고유의 완전한 GUI 운영체제
- 2001년에 UNIX를 바탕(BSD)으로 개발된 Mac OS X 출시
- Mac OS X 10.0 Cheetah(2001)
- OS X 10.8 Mountauin Lion(2012)
- macOS 10.12 Sierra(2016)
- macOS 15 Sequoia(2024)
(5) 시스템 소프트웨어 - 언어 번역기
- 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 실행할 수 있는 기계어 코드로 변환하는 프로그램
- 컴퓨터 내부의 응용프로그램을 만들기 위해 만든것이 프로그래밍 언어이다.
- 해당 언어는 사람이 읽기 좋은 언어로 만들어져 있다. 하지만, 컴퓨터는 사람이 읽는 언어를 못알아본다.
- 기계어(2진수)로 동작하는 컴퓨터는 사람이 사용하는 언어를 이해할 수 없기에 언어 번역기가 필요하다.
[1] 컴파일러
- 원시 프로그램 전체를 기계어 명령으로 구성된 목적 프로그램으로 번역해주는 역할을 한다.
- 인터프리터 방식에 비해 프로그램이 빠르게 실행이 된다.
- 쉽게말해, 프로그램 전체를 번역해서 실행을 한다고 생각하면 된다.
[2] 인터프리터
- 프로그램의 문장 단위로 명령을 해석하여 실행하며, 프로그램 번역을 기다리지 않고 즉시 실행할 수 있음.
- 쉽게말해, 컴파일러는 전체를 번역해서 실행하지만 컴파일러는 하나씩 해석 실행을 함.
- 반복되는 부분이 있다면, 컴파일러 방식은 이미 컴파일 되어있기 때문에 반복이 빠름
- 반변, 인터프리터는 반복되는 부분 또한 해석하고 실행하고를 반복하기 때문에 느림
(4) 시스템 소프트웨어 - 유틸리티 소프트웨어
- 프로그램을 작성하거나 컴퓨터를 운영하는데 도움이 될 수 있도록 제공되는 프로그램을 의미한다.
- 파일 관리 유틸리티, 텍스트 에디터, 백업 소프트웨어, 디버깅 유틸리티, 디스크 관리 유틸리티 등이 있음.
- 쉽게 말해, 하드웨어에 접근하며 연관이 큰 것은 시스템 소프트웨어라고 할 수 있고, 그 중 하나는 유틸리티이다.
- 응용소프트웨어랑 헷갈릴 수 있지만, 엄연히 응용 소프트웨어는 운영체제를 거치기 때문에 다름.
(5) 응용 소프트웨어
[1] 응용 소프트웨어란?
- 컴퓨터 사용자들이 특정 분야의 응용을 목적으로 사용할 수 있도록 개발되는 프로그램을 의미한다.
[2] 응용 소프트웨어의 분류
[ 사용자 프로그램 ]
- 컴퓨터의 개별 사용자나 기업, 기관의 정보화 조직에서 그들의 필요에 따라 응용 목적을 달성하기 위해 만든 프로그램
- 조직 또는 사용자에 맞게 특정 프로그램을 외주로 맡기거나 직접 만들 수 있다.
[ 응용 패키지 프로그램 ]
- 표준화되고 특성화된 프로젝트에 대해서 사용자들이 쉽게 활용하도록 소프트웨어 개발 회사에서 제작된 프로그램을 의미한다.
- 워드, 아래 한글, PPT 등 문서 편집기가 대표적인 예시이다.
[3] 응용 소프트웨어의 예시
[ 워드프로세서 ]
- 마이크로소프트의 MS워드, 한글과 컴퓨터의 한글, 애플의 Pages 등이 있음.
[ 스프레드시트 ]
- 마이크로소프트의 Excel, 애플의 Numbers 등이 있음.
[ 멀티미디어 소프트웨어 ]
- 이미지 생성 및 편집 : 어도비 일러스트, 포토샵 등
- 동영상 편집 : Windows의 비디오 편집기, 애플의 iMovie, 어도비 프리미엄 프로
- 음악 편집 및 믹싱 : Goldwave, Sound Forge, 어도비 Audition 등
2. 소프트웨어의 개발
(1) 프로그래밍 언어
[1] 저급언어
[ 기계어 ]
- 제1세대 프로그래밍 언어(First-Generation programming Languages - 1GL) - 기계중심의 언어
- 컴퓨터가 직접 이해하고 실행할 수 있는 2진 코드 형태의 언어를 의미한다.
- 2진수 기계어라 0과 1밖에 없어서 사람이 알아보기 매우 힘들었음. 그래서 나온것이 어셈블리어이다.

[ 어셈블리어 ]
- 제2세대 프로그래밍 언어(2GL) - 기계중심의 언어
- 기계어 명령을 알기 쉬운 기호로 표현을 함.
- 밑의 사진은 16이라는 값을 AX위치의 값에 ADD 더해라 라는 의미임.
- 기계 코드에 결국 단어를 붙혀놓은 것이기 때문에 기계중심의 언어인 저급언어에 포함이 됨.
- CPU마다 명령어 체계가 다르기 떄문에 어셈블리어는 CPU마다 프로그래밍을 해줘야 한다.

[2] 고급언어
- 제3세대 프로그래밍 언어(3GL) - 문제 중심의 언어
- 사람에세 친숙한 문장 구조나 수식 표현을 사용을 한다.
- 문제 해결 방식에 따라 다양한 패러다임이 존재한다.
- 절차적 언어 : Fortran, Cobol, Pascal, C언어 등
- 객체지향 언어 : C++, Java, C#, Objective-C, Swift 등
[3] 제4세대 프로그래밍 언어(4GL)
- 기존 순차적 고급언어에 비해 보다 높은 수준의 기능을 제공함으로써 프로그래밍 노력이나 시간을 줄이기 위한 언어이다.
- 데이터베이스의 검색, 리포트 생성, 데이터 조작 및 분석 등을 위한 언어 등1. 소프트웨어의 종류
[4] 프로그래밍 언어의 추상화 단계

[5] 제5세대 언어(5GL) - 잊혀진 존재임..
- 1980년대에 인공지능의 구현이나 전문가 시스템을 만들기 위한 목적으로 개발된 프로그래밍 언어이다.
- 주어진 문제에 대해 제공된 규칙, 제약사항 등을 이용하여 문제를 해결하는 방식의 언어이다.
- 함수형 언어, 논리형 언어 등의 선언형 언어 등
- LISP, Prolog, OPS5등
- 실용적 응용에서 기대에 부응할 만한 결과를 만들어 내는데 실패했음.
(2) 알고리즘
[1] 프로그램이란?
- 원하는 결과를 얻을 수 있도록 컴퓨터에게 일련의 일을 시키는 명령어의 집합체이다.
- 필요로 하는 업무를 처리할 수 있도록 알고리즘을 설계하고, 프로그래밍 구현을 한다.
[2] 알고리즘이란?
- 주어진 문제를 해결하기 위하여 유한한 개수의 잘 정의된 명령으로 표현된 처리 절차를 의미한다.
[3] 알고리즘의 표현
- 필요한 처리를 하기 위한 프로그램을 작성하기 위해 먼저 알고리즘을 구성해야 함.
- 알고리즘을 명확하게 나타내기 위한 표현 방법이 필요함. ( 순서도(flow chart) 또는 의사코드 등 )
(3) 소프트웨어 개발 방법론
- 소프트웨어 개발 계획과 관리를 잘 하기 위한 목적으로 개발 업무를 구분된 활동 단계로 나누어 조직화한 것을 의미함.
- 폭포수 모델, 애자일 모델, 반복 진화형 모델, 점증적 모델 등이 있다.
3. 소프트웨어의 사용권
(1) 소프트웨어의 사용권이란?
- 소프트웨어의 사용이나 배포, 수정 등과 관련하여 허용된 법적인 권한을 정한 것
- 사용자는 소프트웨어를 구매하거나 취득하는 과정에서 최종사용자 사용권 동의서(EULA)를 확인하고 동의함으로써 사용 권한을 갖음.
(2) 소프트웨어의 사용권의 유형
[1] 사유 소프트웨어(properietary software)
- 저작권 소유자가 허가한 법적 권한의 범위에서 사용할 수 있는 컴퓨터 소프트웨어이다.
- 소프트웨어를 분석 및 수정, 공유하는 행위를 제한함.
- 판매를 목적으로 제작된 상용 소프트웨어의 경우 이에 상응하는 비용을 소프트웨어의 소유자에게 지불해야 함.
[2] 셰어웨어(shareware)
- 판매를 위해 제작된 사유 소프트웨어지만,
- 사용자에게 일정 기간 또는 정품에 비해 제한된 기능만을 사용할 수 있도록 무료로 제공되는 소프트웨어이다.
[3] 프리웨어(freeware, 공개판)
- 사용권에 대한 비용이 없이 사용할 수 있도록 허용된 소프트웨어이다.
- 사용권은 개인이나 기관, 기업에 다르게 적용될 수 있음.
- 개인에게 무료로 제공되는 프리웨어를 직장의 컴퓨터에 설치하여 사용할 경우 저작권 침해가 될 수 있다는 의미임.
(3) 자유 소프트웨어 운동
- 소프트웨어의 자요로운 활용을 장려해야 한다는 움직임( 즉, 운동을 의미함. )
- 1983년 MIT의 리처드 스톨먼이 주도한 GNU("그뉴") 프로젝트
- 사용자가 소프트웨어를 사용하고 공유(복제, 배포)하며 분석하고 수정할 수 있는 자유를 누리게 할 것을 주장함.
- 1985년 자유 소프트웨어 재단(Free Software Foundation)을 설립함.
- 소프트웨어 공유를 위해 핵심적인 부분인 운영체제 및 관련 유틸리티 소프트웨어가 필요함을 느낌
- GNU 시스템이라고 부르는 유닉스(Unix)와 호환되는 소프트웨어 시스템 개발 ( 리눅스 )
- 리눅스(Linux) : GNU 시스템의 해심이 되는 운영체제 커널
- GNU GPL(일반 공증 사용권)을 따름
[1] GNU GPL의 자유
- 다음의 네 가지 자유를 바탕으로 소프트웨어 사용의 제한을 받지 않게 함.
- 1. 프로그램을 어떠한 목적으로든 사용할 수 있는 자유
- 2. 프로그램의 소스 코드를 분석하고 수정할 수 있는 자유
- 3 .소프트웨어를 타인에게 재배포할 수 있는 자유
- 4. 사용자가 수정한 소프트웨어를 배포할 수 있는 자
[2] 자유 소프트웨어 사용권
- GNU GPL
- BSD 사용권
- 모질라 공용 사용권
- MIT 사용권
- 아파치(Apache) 사용
4. 기업활동과 정보 시스템의 발전
(1) 경영정보 시스템(MIS)
- 기업 경영에 관한 정보를 제공해 주는 컴퓨터 시스템
- 초기에는 단순 전산처리 중심이었다가, 기업 경영에 도움을 주는 정보 제공을 해주는 기능을 추가함.
[1] 경영 정보 시스템의 범주
- 거래처리 시스템(TPS)
- 의사결정지원 시스템(DSS)
- 전사적 자원관리(ERP)
- 고객관계 관리(CRM)
- 공급망 관리(SCM)
'방송통신대학교 > ⚙️컴퓨터의 이해' 카테고리의 다른 글
| 컴퓨터의 이해 8강 - 정보통신기술과 우리 사회 (0) | 2025.04.25 |
|---|---|
| 컴퓨터의 이해 7강 - 데이터베이스 (0) | 2025.04.24 |
| 컴퓨터의 이해 5강 - 보조기억장치와 데이터 저장 (0) | 2025.04.15 |
| 컴퓨터의 이해 4강 - 컴퓨터의 입출력 (0) | 2025.03.07 |
| 컴퓨터의 이해 3강 - 처리장치와 데이터 처리 (0) | 2025.03.05 |