컴퓨터에 대해서 얘기할 때, 하드웨어와 소프트웨어라는 말을 많이 들어봤을 거예요.
(출처 : diffzi)
하드웨어는 손으로 만질 수 있는 형태가 있는 장치들을 말하는데요, CPU, 모니터, 스피커 등입니다.
반면 소프트웨어는 손으로 만질 수는 없지만 하드웨어를 움직이게 하는 명령어들의 모임이지요. 한글, 알집, 곰플레이어 등이 이런 소프트웨에 속합니다.
우리 몸으로 따지자면 하드웨어는 손, 발, 눈 등이 되겠고 소프트웨어는 우리의 생각, 마음이라고 할 수 있습니다. 뇌에서 우리 몸에 신호를 보내 움직이는 것처럼, 소프트웨어는 하드웨어를 움직이게 신호를 보냅니다. 하드웨어만 있으면 컴퓨터는 그냥 물건 덩어리일 뿐, 아무것도 할 수 없어요. 소프트웨어가 하드웨어에 명령을 보내야만 컴퓨터에서 영화도 보고, 문서도 만들 수 있지요.
하드웨어에게 명령을 내리려면 이제 우리가 다 아는 것처럼 컴퓨터가 이해할 수 있는 언어로 명령을 해야 합니다. 그래서 소프트웨어를 만들 때는 프로그래밍(코딩) 언어를 사용해요.
하지만 소프트웨어라고 다 같은 소프트웨어가 아니에요.
소프트웨어 중에서도 하드웨어를 직접 컨트롤(제어)할 수 있는 아주 특별한 소프트웨어가 있는데, 이런 것들을 '시스템 소프트웨어'라고 불러요. 대표적으로 우리가 사용하는 윈도우, iOS 같은 운영체제들이 여기에 속하지요.
우리가 흔히 사용하는 파워포인트나 인터넷 익스플로러 같은 소프트웨어는 하드웨어를 직접 건드릴 수 없는데요, 이런 것들은 '응용 소프트웨어'라고 합니다. 문서 작성, 메시지 주고받기, 동영상 편집 등 다양한 일을 하기 위해서 컴퓨터의 기술을 응용했기 때문이지요.
우리가 컴퓨터에서 영화를 보려고 해요. 그러면 동영상을 재생해 주는 응용 소프트웨어인 곰플레이어를 실행하겠죠? 그럼 곰플레이어는 운영체제인 윈도우에게 부탁해서 모니터에 동영상이 나오게 해 달라고 합니다. 운영체제는 모니터에게 실제로 명령을 내리고, 우리는 영화를 볼 수 있게 되는 거예요.
운영체제(Operating System, OS)는 또 뭔데?
컴퓨터 전원을 켜면 제일 먼저 모니터에 나타나는 윈도우 로고. 너무 익숙하죠?
전세계 사람들이 가장 많이 사용하는 컴퓨터용 운영체제 중 하나인 윈도우(Windows)는 마이크로소프트 사에서 개발한 운영체제의 이름입니다.
운영체제란 CPU, 메모리, 모니터 등의 하드웨어를 관리해 주고, 내 컴퓨터와 다른 컴퓨터들이 서로 연결해서 대화할 수 있도록 도와주는 등 많은 일을 하는 소프트웨어예요.
우리 학교를 생각해 봐요. 학교는 우리가 알게 모르게 아주 체계적으로 움직이고 있어요. 새 학기가 되면 신입생을 받을 준비를 하고, 새롭게 바뀌는 반 배정을 하고, 학생들에게 나눠줄 교재나 교과 자료를 준비하고, 담임 선생님을 정하는 등 정해진 시간에 맞춰 정해진 일을 하도록 되어 있죠. 이런 체계가 없다면 학교는 금세 엉망진창이 되고 말 거예요.
컴퓨터도 학교처럼 정해진 관리 시스템이 있어요. 마우스의 움직임이 모니터에서 보이고, 우리가 마우스 커서로 클릭하면 프로그램이 실행되고, 엔터 키를 누르면 메시지가 입력되게끔 되어 있죠.
운영체제는 이렇게 우리가 작은 부분까지 신경쓰지 않아도 되도록 컴퓨터의 매니저 같은 역할을 해 줘요.
요즘은 개인용 컴퓨터 운영체제인 윈도우나 Apple OS 외에도 스마트폰용 운영체제인 안드로이드, iOS가 우리에게 더 친숙하지요.
하드웨어와 소프트웨어는 둘중 하나라도 없으면 안 되게끔 밀접하게 연결되어 돌아가요. 명령을 실제로 실행해 주고 우리 대신 일한 결과를 보여줄 하드웨어가 없으면 안 되고, 하드웨어가 일을 할 수 있도록 명령을 내리는 소프트웨어가 없어서도 안 되죠.
그렇기 때문에 둘의 관계를 잘 이해하는 것이 코딩에서도 아주 중요해요.
앞으로 CPU나 메모리 등에 대해서도 더 자세히 알아보도록 할게요.