본문 바로가기
컴퓨터과학

컴퓨터의 소프트웨어와 정보 시스템

by 라임_Lime 2024. 1. 14.

 

컴퓨터 시스템은 크게 하드웨어와 소프트웨어로 나누어지는데, 이전 포스팅까지는 하드웨어를 위주로 살펴보았다. 하드웨어란 입력, 연산, 제어, 기억, 출력 등 다섯 가지 기능을 구현하기 위한 중앙 처리 장치, 컴퓨터 기억 장치와 같은 컴퓨터의 물리적 부품을 의미한다. 반면 소프트웨어는 컴퓨터에게 동작 방법을 지시하는 명령어의 모음을 의미한다. 소프트웨어의 분류로는 프로그램 소프트웨어와 컴퓨터 소프트웨어가 있다. 소프트웨어는 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공하는 명령어 기능을 수행한다. 소프트웨어는 하드웨어처럼 물리적으로 존재하는 개념이 아니다. 따라서 컴퓨터의 저장장치로 불러와야 한다. 그 경우에만 소프트웨어가 실행된다. 

소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 구분된다. 먼저 시스템 소프트웨어는 응용 소프트웨어를 실행하기 위한 플랫폼을 제공하는 소프트웨어로, 하드웨어 자원을 효율적으로 관리하기 위해 사용된다. 컴퓨터 하드웨어를 동작, 접근할 수 있도록 설계된 컴퓨터 소프트웨어이며, 사실상 컴퓨터 시스템의 운영을 위한 모든 소프트웨어를 의미한다.  사용자의 문제를 직접 해결하는 응용 소프트웨어와는 달리 하드웨어 구성 요소가 원활하게 작동되도록 설게된 프로그램이다. 예를 들면  메모리에서 하드 디스크로 데이터를 전송하거나, 문자열을 디스플레이 장치로 출력하는 등의 작업을 수행한다. 대표적인 예로는 윈도우와 같은 운영 체제가 있다. 

반면 응용 소프트웨어, 주로 애플리케이션 이라고 불리우는 소프트웨어는 개인이나 조직의 업무, 교육, 취미활동 등을 위해 개발된  소프트웨어를 뜻한다. 즉, 워드나 엑셀과 같은 생산성 향상 프로그램이나 크롬과 같은 웹브라우저들을 그 예시로 들 수 있다. 좁은 의미에서는 OS 위에서 사용자가 직접 사용하게 되는 소프트웨어를 의미한다. 

소프트웨어는 프로그래밍 언어로 개발되어야 한다. 사람이 기계어를 사용하기는 어렵기 때문에 소프트웨어 대부분은 고급 프로그래밍 언어, 즉 자연어에 더 가까운 프로그래밍 언어를 사용한다. 고급 언어로 작성된 프로그래밍 언어는 컴파일러나 인터프리터를 통해서 기계어로 변환된다. 물론 소프트웨어는 컴퓨터의 기계어와 거의 비슷하다고 볼 수 있는 저급 어셈블리어로도 개발이 가능하며, 이 경우 컴파일러나 인터프리터가 아니라 어셈블러라는 변환기를 사용하여 기계어로 변환된다. 참고로 주로 사용되는 프로그래밍 언어는 씨언어, 파이썬, 자바 등이 있는데 최근에는 파이썬이 주로 사용되고 있다. 파이썬이 주로 사용되는 이유는 가장 자연어에 가깝기 때문이다. 

컴퓨터를 이용해서 문제를 해결하려면 위에서 언급한 프로그래밍 언어로 프로그램을 만들고, 실행시켜야 하는데 이를 위해서는 주어진 작업을 수행하기 위한 정확한 처리 절차를 잘 설계해야 한다. 즉, 효율적이게 처리할 수 있는 절차를 일정한 형식으로 표현해야 하는데 이를 알고리즘이라고 한다. 알고리즘은 일반적으로 순서도, 의사코드, 프로그래밍 언어 등을 통해서 작성되는데, 제일 대표적인 건 역시 순서도이다. 순서도는 다양한 기호를 통해 명령어의 시작 및 종료, 중비, 처리, 입출력, 판단을 표시하여 한 눈에 그 처리절차를 볼 수 있도록 만든 표현방식이다. 

소프트웨어의 개발과정을 보자. 전형적인 소프트웨어 개발방법론은 소프트웨어 개발 프로세스의 대표적인 예로 폭포수 모델을 제시한다. 폭포수 모델은 소프트웨어 개발방법을 계획단계, 요구분석 단계, 설계 단계, 구현 단계, 시험 단계, 유지보수 단계의 6개의 단계로 나눈 모델이다. 먼저 계획단계란 소프트웨어 개발의 필요성과 타당성을 평가하고 계획을 수립하는 것을 의미하고, 요구분석 단계란 수요자가 제시하는 기능과 조건을 고려하여 개발자가 사용자와 요구사항을 조정하는 단계를 의미한다. 그 다음 설계 단계란 정리된 요구사항을 구현하기 위해 설계하는 것을 의미하고, 그 다음은 설계결과를 실제 프로그램으로 작성하는 구현 단계이다. 구현이 끝나면 이를 확인해보는 시험 단계가 진행된다. 구현된 소프트웨어의 작동 여부를 확인하는 절차이다. 시험 단계를 거쳐 검증된 프로그램은 실제 활용된다. 마지막인 유지 보수 단계는 실제 사용되면서 발생하는 문제의 수정이나 보완 등의 활동을 하는 단계를 의미한다.

최근 가장 문제가 되는 것은 소프트웨어의 저작권이다. 지적재산권 또는 지식재산권에 속하는 소프트웨어를 인터넷에서 무분별하게 공유하는 사례 때문이다. 소프트웨어의 사용권은 소프트웨어의 법적인 권한, 즉 사용이나 배포, 수정 등의 권한을 정한 것으로, 사용자는 소프트웨어 구매시 최종 사용자 사용권 동의서를 확인하고 동의함으로써 명시된 사용권한을 가진다. 판매를 목적으로 개발된 소프트웨어를 사용하기 위해서는 당연히 소유자에게 그 비용을 지불해야 한다. 다만 예외적으로 쉐어웨어는 판매를 위해 제작된 소프트웨어를 일정 기간동안 또는 제한된 기능만을 무료로 사용할 수 있도록 하고 있으며, 프리웨어는 사용권에 대한 비용이 없이 사용할 수 있도록 허용된 소프트웨어로 크롬과 같은 웹브라우저, 또는 파일 압축 프로그램인 반디집 등이 있다. 물론 이러한 사용권이 개인이나 기관, 기업에 따라 다르게 적용될 수도 있다. 대부분의 소프트웨어는 개인이 비영리적 목적으로 사용하는 경우 무료로 제공하나, 이를 직장의 컴퓨터에 설치해서 사용하는 경우에는 저작권 침해가 될 수도 있으니 이 부분은 반드시 설치 전 확인해야 한다. 다양한 소프트웨어가 판매되고 있는 만큼 각별한 유의가 필요할 것이다. 

출처: 픽사베이

 

 

'컴퓨터과학' 카테고리의 다른 글

파일 처리 시스템과 데이터베이스 시스템  (1) 2024.01.14
4차 산업혁명과 미래  (1) 2024.01.14
컴퓨터의 보조기억장치  (1) 2024.01.14
컴퓨터의 입출력장치  (1) 2024.01.14
컴퓨터의 처리장치  (0) 2024.01.14