소프트웨어
책상 위에 놓인 노트북을 손으로 만져 봅시다. 뚜껑도 만져지고, 자판도 만져지고, 화면도 만져집니다. 그런데 그 화면에 떠 있는 글자와 창은 만질 수가 없습니다. 손가락을 대 봐야 유리가 만져질 뿐입니다. 컴퓨터를 이루는 것은 이렇게 두 갈래로 나뉩니다.
하드웨어(hardware)
만질 수 있는 부품입니다. 계산을 맡는 칩, 기억을 맡는 메모리, 보여 주는 화면, 두드리는 자판. 물건이라 한번 만들면 모양이 바뀌지 않습니다.
소프트웨어(software)
그 부품들에게 무엇을 어떤 차례로 하라고 적어 준 명령의 묶음입니다. 만질 수 없고, 바꿔 끼우기가 쉽습니다.
이름이 재미있습니다. 「하드(hard)」는 단단하다는 뜻이고 「소프트(soft)」는 무르다는 뜻입니다. 딱딱해서 바꾸기 어려운 쪽과 물러서 얼마든지 고쳐 쓸 수 있는 쪽을 이렇게 구분해 부른 것입니다. 같은 스마트폰을 쓰면서도 어제와 오늘 화면이 달라졌다면, 바뀐 것은 소프트웨어입니다. 기계는 그대로입니다.
소프트웨어(software)
하드웨어가 일을 하도록 무엇을 어떤 차례로 할지 적어 둔 명령의 묶음입니다. 적어 두는 자리는 파일이고, 그 파일을 읽어 그대로 따르는 것이 하드웨어입니다.
둘은 서로가 있어야 쓸모가 생긴다
명령이 없는 컴퓨터는 전기만 먹는 쇳덩이입니다. 반대로 명령만 있고 그것을 실행할 기계가 없으면 종이에 적힌 요리법과 같습니다. 아무리 잘 적혀 있어도 불과 냄비가 없으면 밥이 되지 않습니다. 그래서 소프트웨어는 늘 어떤 하드웨어 위에서 돕니다.
위층은 아래층에게 일을 시키고, 아래층은 그 결과를 위로 올려 줍니다. 우리가 손대는 자리는 맨 위이고, 실제로 전기가 흐르는 자리는 맨 아래입니다. 가운데 있는 운영 체제가 무엇인지는 「두 갈래」 절에서 보겠습니다.
쓰던 스마트폰이 느려져서 새것으로 바꾸었습니다. 이때 바뀐 것은 하드웨어뿐일까요, 소프트웨어도 함께 바뀌었을까요? 반대로 업데이트를 하고 나서 화면이 달라졌다면 바뀐 것은 어느 쪽일까요?
두 갈래
소프트웨어는 수없이 많지만, 맡은 역할로 보면 크게 두 갈래입니다. 하나는 기계를 살려 두고 부품을 나눠 주는 쪽이고, 다른 하나는 그 위에서 우리가 하고 싶은 일을 해 주는 쪽입니다.
운영 체제(operating system, OS)
여러 프로그램이 하나뿐인 부품을 나눠 쓰도록 사이에서 조정하는 소프트웨어입니다. 계산할 차례를 정해 주고, 기억할 자리를 떼어 주고, 파일을 찾아 줍니다. 윈도우 · 안드로이드 · iOS · 리눅스가 여기에 포함됩니다.
응용 프로그램(application) — 줄여서 앱(app)
사람이 하려는 일 하나를 맡아 해 주는 소프트웨어입니다. 글을 쓰고, 사진을 고치고, 길을 찾고, 메시지를 보냅니다. 「응용」은 컴퓨터를 어디에 갖다 쓰는가를 가리키는 말입니다.
왜 굳이 둘로 나누어 두었을까요? 나누지 않으면 앱을 만드는 사람이 부품 하나하나를 직접 다뤄야 하기 때문입니다. 그림판 하나를 만들면서 화면이 어떤 회사 제품인지, 메모리가 몇 기가인지를 일일이 고려해야 한다면 앱은 기계마다 새로 만들어야 합니다.
앱은 부품에게 직접 말을 걸지 않고 운영 체제에게 부탁합니다. 「이 소리를 내 달라」, 「이 파일을 열어 달라」고 하면 운영 체제가 알아서 부품을 다룹니다. 덕분에 앱을 만드는 사람은 부품이 무엇인지 몰라도 만들 수 있습니다.
구분해 보기
| 비교 항목 | 운영 체제 | 응용 프로그램 |
|---|---|---|
| 맡은 일 | 부품을 나눠 주고 조정한다 | 사람이 하려는 일 하나를 해 준다 |
| 고르는 사람 | 대개 기계를 살 때 이미 정해져 있다 | 쓰는 사람이 골라서 깔고 지운다 |
| 없으면 | 기계가 켜지지 않거나 아무것도 못 한다 | 그 일만 못 할 뿐 기계는 돈다 |
| 보기 | 윈도우, 안드로이드, iOS, 리눅스 | 지도 앱, 문서 편집기, 사진 편집기, 게임 |
두 갈래가 소프트웨어를 남김없이 나누는 것은 아닙니다. 기계를 부팅시키는 아주 작은 프로그램이나, 다른 프로그램들이 함께 갖다 쓰는 부품 같은 소프트웨어도 있습니다. 다만 우리가 일상에서 만나는 것들은 대개 이 둘 가운데 하나이므로, 여기서는 둘로 나누어 두겠습니다.
같은 지도 앱이 안드로이드 폰에서도 아이폰에서도 나옵니다. 그런데 두 벌은 사실 따로 만들어진 것입니다. 그 까닭을 위 그림으로 설명해 보세요.
하루 찾기
아래는 어느 학생이 수업이 끝난 뒤 저녁까지 무엇을 했는지 적은 것입니다. 특별할 것 없는 반나절이지만, 여기에도 소프트웨어가 여러 번 끼어 있습니다. 한 줄씩 살펴보겠습니다.
16:20 도서관에 들러 무인 대출기에 책과 학생증을 대고 두 권을 빌린다.
16:50 공유 자전거 거치대에서 잠금을 풀고 집 쪽으로 달린다.
17:10 현관에서 도어록에 번호를 누른다. 엘리베이터를 부르니 위층에서 내려온다.
18:00 전기밥솥에 취사를 건다. 다 되면 소리가 난다.
20:30 세탁기에 빨래를 넣고 표준 코스를 누른다.
21:00 온라인 문제집을 풀자 틀린 문제만 다시 모아 준다.
여기서 내가 골라 깐 것은 자전거 앱과 문제집 정도입니다. 나머지는 전부 기계 안에 이미 심겨 있던 것입니다. 밥솥이 온도를 지켜보고, 세탁기가 물의 양을 정하고, 도어록이 눌린 번호를 대조합니다.
| 시각 | 일어난 일 | 어떤 소프트웨어가 무슨 판단을 했나 |
|---|---|---|
| 16:20 | 대출기가 책을 빌려 준다 | 학생증 번호로 빌린 권수와 연체 여부를 확인하고, 넘지 않으면 처리한다. 내장 소프트웨어 |
| 16:50 | 자전거 잠금이 풀린다 | 결제가 끝났는지 확인한 뒤에만 잠금 장치를 연다. 응용 프로그램과 내장 소프트웨어가 함께 |
| 17:10 | 엘리베이터가 내려온다 | 여러 층의 호출 가운데 어느 것부터 처리할지 순서를 정한다. 내장 소프트웨어 |
| 18:00 | 밥이 지어진다 | 온도를 지켜보다가 단계마다 불의 세기를 바꾼다. 내장 소프트웨어 |
| 20:30 | 세탁기가 돈다 | 빨래의 무게를 가늠해 물의 양과 도는 시간을 스스로 정한다. 내장 소프트웨어 |
| 21:00 | 틀린 문제만 다시 나온다 | 내가 어느 문제를 틀렸는지 남겨 두었다가 그것만 골라 다시 낸다. 응용 프로그램 |
해 보기 — 나의 하루로 바꿔 적기
- 어제 하루를 떠올려 위와 같은 표를 다섯 줄 채워 보세요. 아침이든 저녁이든, 학교에서 있었던 일이든 좋습니다.
- 각 줄에 대해 「어떤 판단을 했는가」를 한 문장으로 적습니다. 판단이 떠오르지 않으면 그 줄은 소프트웨어가 아닐 수 있습니다.
- 다 적었으면 응용 프로그램과 내장 소프트웨어로 구분해 표시하고, 어느 쪽이 더 많은지 세어 보세요.
- 짝과 표를 바꿔 읽고, 내가 못 찾은 것을 하나만 골라 옮겨 적습니다.
적다 보면 「이건 소프트웨어일까?」 싶은 줄이 나오기 쉽습니다. 그 줄이 가장 좋은 이야깃거리입니다. 답을 정하기보다 왜 애매한지를 말해 보세요.
위 표에서 소프트웨어가 하나도 없던 시절이라면 사람이 대신해야 했을 일을 하나 골라, 누가 무엇을 해야 했을지 적어 보세요.
핵심 정리
소프트웨어
- 하드웨어가 일을 하도록 무엇을 어떤 차례로 할지 적어 둔 명령의 묶음이다.
- 하드웨어는 딱딱해서 바꾸기 어렵고, 소프트웨어는 물러서 고쳐 쓰기 쉽다. 이름이 그렇게 붙었다.
- 둘은 서로가 있어야 쓸모가 생긴다. 명령 없는 컴퓨터도, 기계 없는 명령도 아무 일도 못 한다.
두 갈래
- 운영 체제는 여러 프로그램이 하나뿐인 부품을 나눠 쓰도록 사이에서 조정한다.
- 응용 프로그램은 사람이 하려는 일 하나를 맡아 해 준다.
- 앱은 부품에게 직접 말하지 않고 운영 체제에게 부탁한다. 그래서 부품을 몰라도 앱을 만들 수 있다.
보이지 않는 것
- 내장 소프트웨어는 기계 안에 붙박이로 심겨 그 기계의 일만 맡는다. 골라 깔지도 지우지도 않는다.
- 기계 안에 소프트웨어가 들었는지 알아보는 단서는 화면이 아니라 판단하는 일이 있느냐다. 판단 없이 차례만 적은 명령도 소프트웨어다.
- 사물 인터넷 · 인공지능 · 빅데이터는 프로그램 하나의 이름이 아니라 분야의 이름이라 가리키는 범위가 서로 다르다.
하루 찾기
- 평범한 방과 후 반나절에도 소프트웨어는 여러 번 끼어든다.
- 그중 내가 골라 깐 것은 몇 개뿐이고 나머지는 이미 심겨 있던 것이다.
- 「이건 소프트웨어일까?」 싶은 애매한 줄이 가장 좋은 이야깃거리다.
확인 퀴즈
배운 내용을 확인해 봅시다.
소프트웨어를 가장 알맞게 설명한 것은?
다음 가운데 운영 체제가 맡는 일에 가장 가까운 것은?
엘리베이터에 소프트웨어가 들어 있다고 말할 수 있는 가장 알맞은 근거는?
빅데이터에 대한 설명으로 알맞은 것은?