소프트웨어란 무엇인가
- 소프트웨어(Software): 컴퓨터 하드웨어가 동작하도록 하는 프로그램과 데이터의 집합
- 하드웨어만으로는 컴퓨터가 동작할 수 없으며, 소프트웨어가 있어야 기능을 수행할 수 있음
- 컴퓨터 시스템은 보통 다음과 같은 구조로 구성됨
사용자 → 응용 소프트웨어 → 시스템 소프트웨어 → 하드웨어
소프트웨어의 종류
소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나눌 수 있다
시스템 소프트웨어
- 컴퓨터 하드웨어를 관리하고 응용 소프트웨어가 실행될 수 있는 환경을 제공
- 사용자와 하드웨어 사이에서 중재자 역할
대표 종류
- 운영체제(OS)
- 언어 번역 프로그램(컴파일러, 인터프리터)
- 유틸리티 프로그램
응용 소프트웨어
- 사용자가 특정 목적을 위해 사용하는 프로그램
종류
-
사용자 프로그램
- 특정 조직이나 개인을 위해 개발된 프로그램
-
응용 패키지 프로그램
- 많은 사용자가 공통적으로 사용하는 프로그램
대표 예
- 워드프로세서 (Word, 한글)
- 스프레드시트 (Excel)
- 그래픽 프로그램 (Photoshop)
- 영상 편집 프로그램 (Premiere 등)
운영체제(OS)
운영체제는 컴퓨터 시스템에서 가장 중요한 시스템 소프트웨어이다
- 사용자와 컴퓨터 하드웨어 사이에서 중재 역할
- 컴퓨터 자원을 효율적으로 관리
운영체제의 주요 기능
사용자 인터페이스 제공
사용자가 컴퓨터와 상호작용할 수 있도록 환경 제공
대표 방식
-
CLI (Command Line Interface)
- 명령어를 입력하여 컴퓨터를 제어
-
GUI (Graphical User Interface)
- 아이콘, 메뉴, 창 등을 이용한 그래픽 환경
컴퓨터 자원 관리
운영체제는 컴퓨터의 주요 자원을 관리한다
대표 자원
- CPU
- 메모리
- 입출력 장치
- 네트워크 장치
파일 시스템 관리
- 데이터를 파일 형태로 저장하고 관리
- 파일 생성, 삭제, 수정 등의 기능 제공
프로그램 실행 관리
- 여러 프로그램이 동시에 실행될 때
- CPU와 메모리를 적절히 배분하여 실행을 관리
대표적인 운영체제
Windows
- Microsoft에서 개발한 운영체제
- GUI 기반 운영체제
대표 버전
- Windows 95
- Windows 98
- Windows XP
- Windows 7
- Windows 10
- Windows 11
특징
- 가상 데스크탑
- 작업 보기(Task View)
- Windows Hello 등 보안 기능
UNIX
- 1970년대 Bell 연구소에서 개발
- 서버 시스템에서 많이 사용
특징
- 멀티태스킹 지원
- 멀티유저 지원
- 안정성과 확장성이 뛰어남
Linux
- 1991년 리누스 토발즈(Linus Torvalds) 개발
- 오픈소스 운영체제
대표 배포판
- Ubuntu
- RedHat
- Debian
MacOS
- Apple에서 개발한 운영체제
- UNIX 기반 운영체제
특징
- GUI 환경 우수
- Apple 하드웨어와 최적화
프로그래밍 언어와 번역 프로그램
컴퓨터는 기계어만 이해할 수 있기 때문에, 사람이 작성한 프로그램을 번역하는 과정이 필요하다
이 역할을 하는 프로그램을 언어 번역기라고 한다
컴파일러
- 프로그램 전체를 한 번에 번역
특징
- 실행 속도가 빠름
- 번역 과정(컴파일)이 필요
대표 언어
- C
- C++
- Go 등
인터프리터
- 프로그램을 한 줄씩 번역하면서 실행
특징
- 개발과 수정이 편리
- 실행 속도는 상대적으로 느림
대표 언어
- Python
- JavaScript
프로그래밍 언어의 발전
프로그래밍 언어는 발전 단계에 따라 세대로 구분하기도 한다
| 세대 | 특징 |
|---|---|
| 1세대 | 기계어 |
| 2세대 | 어셈블리어 |
| 3세대 | 고급언어 (C, Java, Python 등) |
| 4세대 | 데이터베이스 중심 언어 |
| 5세대 | 인공지능 언어 |
알고리즘
알고리즘(Algorithm)
- 문제를 해결하기 위한 논리적인 절차와 방법
알고리즘이 갖추어야 할 조건
- 유한성: 반드시 끝나야 한다
- 명확성: 각 단계가 분명해야 한다
- 실행 가능성: 실제로 수행 가능해야 한다
알고리즘 표현 방법
순서도(Flowchart)
- 알고리즘을 도형으로 표현
대표 기호
- 시작 / 끝
- 처리
- 조건
- 입력 / 출력
의사코드(Pseudo Code)
- 실제 프로그래밍 언어와 비슷하게 알고리즘을 표현하는 방법
소프트웨어 개발 방법
대규모 소프트웨어 개발을 체계적으로 수행하기 위해 소프트웨어 공학 방법론이 사용된다
대표적인 개발 방식은 워터폴 모델이다
개발 단계
계획 → 요구 분석 → 설계 → 구현 → 테스트 → 유지보수
소프트웨어 사용권(라이선스)
소프트웨어는 대부분 저작권과 사용권을 가진다
사유 소프트웨어
- 개발자가 권리를 가진 소프트웨어
대표 예
- Windows
- Microsoft Office
쉐어웨어(Shareware)
- 일정 기간 무료 체험 후 구매
프리웨어(Freeware)
- 무료 사용 가능
- 그러나 수정이나 재배포는 제한될 수 있음
자유 소프트웨어 / 오픈소스
대표 라이선스
- GNU GPL
사용자에게 다음과 같은 자유를 제공
- 프로그램 실행 자유
- 소스코드 확인 자유
- 프로그램 복사 및 배포 자유
- 수정 후 재배포 자유
정보 시스템
정보 시스템은 조직이나 기업에서 정보를 수집, 처리, 저장, 활용하기 위한 시스템이다
대표적인 정보 시스템
| 시스템 | 설명 |
|---|---|
| TPS | 거래 처리 시스템 |
| DSS | 의사 결정 지원 시스템 |
| ERP | 전사적 자원 관리 |
| CRM | 고객 관계 관리 |
| SCM | 공급망 관리 |
정리
- 소프트웨어는 컴퓨터 하드웨어를 동작시키는 프로그램과 데이터의 집합이다
- 소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 구분된다
- 운영체제는 컴퓨터 자원을 관리하는 핵심 시스템 소프트웨어이다
- 기업에서는 다양한 정보 시스템(TPS, ERP, CRM 등) 을 활용하여 조직 운영을 지원한다