소프트웨어와 생활

소프트웨어란 무엇인가

손에 잡히지 않는데도
세상을 움직이는 명령의 묶음

학습 목표

  1. 소프트웨어가 무엇인지 하드웨어를 움직이는 명령의 묶음으로 설명할 수 있다.
  2. 우리 주변의 소프트웨어를 운영 체제 · 응용 프로그램으로 구분할 수 있다.
  3. 겉으로 드러나지 않는 곳에서 도는 소프트웨어를 하루 일과에서 찾아낼 수 있다.

소프트웨어

책상 위에 놓인 노트북을 손으로 만져 봅시다. 뚜껑도 만져지고, 자판도 만져지고, 화면도 만져집니다. 그런데 그 화면에 떠 있는 글자와 창은 만질 수가 없습니다. 손가락을 대 봐야 유리가 만져질 뿐입니다. 컴퓨터를 이루는 것은 이렇게 두 갈래로 나뉩니다.

하드웨어(hardware)

만질 수 있는 부품입니다. 계산을 맡는 칩, 기억을 맡는 메모리, 보여 주는 화면, 두드리는 자판. 물건이라 한번 만들면 모양이 바뀌지 않습니다.

소프트웨어(software)

그 부품들에게 무엇을 어떤 차례로 하라고 적어 준 명령의 묶음입니다. 만질 수 없고, 바꿔 끼우기가 쉽습니다.

이름이 재미있습니다. 「하드(hard)」는 단단하다는 뜻이고 「소프트(soft)」는 무르다는 뜻입니다. 딱딱해서 바꾸기 어려운 쪽과 물러서 얼마든지 고쳐 쓸 수 있는 쪽을 이렇게 구분해 부른 것입니다. 같은 스마트폰을 쓰면서도 어제와 오늘 화면이 달라졌다면, 바뀐 것은 소프트웨어입니다. 기계는 그대로입니다.

소프트웨어(software)

하드웨어가 일을 하도록 무엇을 어떤 차례로 할지 적어 둔 명령의 묶음입니다. 적어 두는 자리는 파일이고, 그 파일을 읽어 그대로 따르는 것이 하드웨어입니다.


둘은 서로가 있어야 쓸모가 생긴다

명령이 없는 컴퓨터는 전기만 먹는 쇳덩이입니다. 반대로 명령만 있고 그것을 실행할 기계가 없으면 종이에 적힌 요리법과 같습니다. 아무리 잘 적혀 있어도 불과 냄비가 없으면 밥이 되지 않습니다. 그래서 소프트웨어는 늘 어떤 하드웨어 위에서 돕니다.

컴퓨터는 층으로 쌓여 있다 하드웨어 — 칩 · 메모리 · 화면 운영 체제 — 부품을 나눠 주는 소프트웨어 응용 프로그램 — 내가 골라 쓰는 소프트웨어 사용자 명령 결과

위층은 아래층에게 일을 시키고, 아래층은 그 결과를 위로 올려 줍니다. 우리가 손대는 자리는 맨 위이고, 실제로 전기가 흐르는 자리는 맨 아래입니다. 가운데 있는 운영 체제가 무엇인지는 「두 갈래」 절에서 보겠습니다.

스스로 확인

쓰던 스마트폰이 느려져서 새것으로 바꾸었습니다. 이때 바뀐 것은 하드웨어뿐일까요, 소프트웨어도 함께 바뀌었을까요? 반대로 업데이트를 하고 나서 화면이 달라졌다면 바뀐 것은 어느 쪽일까요?

두 갈래

소프트웨어는 수없이 많지만, 맡은 역할로 보면 크게 두 갈래입니다. 하나는 기계를 살려 두고 부품을 나눠 주는 쪽이고, 다른 하나는 그 위에서 우리가 하고 싶은 일을 해 주는 쪽입니다.

운영 체제(operating system, OS)

여러 프로그램이 하나뿐인 부품을 나눠 쓰도록 사이에서 조정하는 소프트웨어입니다. 계산할 차례를 정해 주고, 기억할 자리를 떼어 주고, 파일을 찾아 줍니다. 윈도우 · 안드로이드 · iOS · 리눅스가 여기에 포함됩니다.

응용 프로그램(application) — 줄여서 앱(app)

사람이 하려는 일 하나를 맡아 해 주는 소프트웨어입니다. 글을 쓰고, 사진을 고치고, 길을 찾고, 메시지를 보냅니다. 「응용」은 컴퓨터를 어디에 갖다 쓰는가를 가리키는 말입니다.

왜 굳이 둘로 나누어 두었을까요? 나누지 않으면 앱을 만드는 사람이 부품 하나하나를 직접 다뤄야 하기 때문입니다. 그림판 하나를 만들면서 화면이 어떤 회사 제품인지, 메모리가 몇 기가인지를 일일이 고려해야 한다면 앱은 기계마다 새로 만들어야 합니다.

운영 체제는 가운데에서 나눠 준다 지도 앱 메시지 앱 음악 앱 운영 체제 계산 장치 메모리 저장 장치

앱은 부품에게 직접 말을 걸지 않고 운영 체제에게 부탁합니다. 「이 소리를 내 달라」, 「이 파일을 열어 달라」고 하면 운영 체제가 알아서 부품을 다룹니다. 덕분에 앱을 만드는 사람은 부품이 무엇인지 몰라도 만들 수 있습니다.


구분해 보기

운영 체제와 응용 프로그램의 비교
비교 항목 운영 체제 응용 프로그램
맡은 일 부품을 나눠 주고 조정한다 사람이 하려는 일 하나를 해 준다
고르는 사람 대개 기계를 살 때 이미 정해져 있다 쓰는 사람이 골라서 깔고 지운다
없으면 기계가 켜지지 않거나 아무것도 못 한다 그 일만 못 할 뿐 기계는 돈다
보기 윈도우, 안드로이드, iOS, 리눅스 지도 앱, 문서 편집기, 사진 편집기, 게임

두 갈래가 소프트웨어를 남김없이 나누는 것은 아닙니다. 기계를 부팅시키는 아주 작은 프로그램이나, 다른 프로그램들이 함께 갖다 쓰는 부품 같은 소프트웨어도 있습니다. 다만 우리가 일상에서 만나는 것들은 대개 이 둘 가운데 하나이므로, 여기서는 둘로 나누어 두겠습니다.

스스로 확인

같은 지도 앱이 안드로이드 폰에서도 아이폰에서도 나옵니다. 그런데 두 벌은 사실 따로 만들어진 것입니다. 그 까닭을 위 그림으로 설명해 보세요.

보이지 않는 것

지금까지 든 보기는 모두 화면이 있는 기계였습니다. 그래서 소프트웨어라고 하면 아이콘을 눌러 여는 것만 떠올리기 쉽습니다. 그런데 소프트웨어는 화면이 없는 기계 안에서도 쉬지 않고 돌고 있습니다.

엘리베이터를 떠올려 봅시다. 여러 층에서 동시에 단추를 눌렀을 때 어느 순서로 갈지 누군가는 정해야 합니다. 문이 닫히는 도중에 사람이 끼면 다시 열어야 하고, 정원을 넘으면 움직이지 않아야 합니다. 이 판단을 하는 것은 쇳덩이가 아니라 안에 심어 둔 프로그램입니다.

내장 소프트웨어(embedded software)

기계 안에 붙박이로 심어 두고 그 기계의 일만 맡기는 소프트웨어입니다. 쓰는 사람이 골라 깔거나 지우지 않고, 대개 화면도 없습니다. 그래서 있는 줄 모르고 씁니다.

신호등

시간대마다 초록불 길이를 달리 줍니다. 차가 몰리는 방향을 측정해 길이를 바꾸기도 합니다.

세탁기

빨래 무게를 가늠해 물의 양과 도는 시간을 스스로 정합니다. 한쪽으로 쏠리면 다시 풀어 놓습니다.

자동차

바퀴가 미끄러지면 브레이크를 잘게 끊어 잡습니다. 사람이 밟는 힘 그대로 걸지 않습니다.

셋 다 단추가 몇 개뿐이고 아이콘이 없습니다. 그래도 안에서는 「이러면 저렇게 하라」는 명령이 쉬지 않고 돌고 있습니다. 그러니 기계 안에 소프트웨어가 들었는지 알아보는 단서는 화면이 있느냐가 아니라, 판단하는 일이 있느냐입니다. 이것은 알아보는 단서일 뿐 정의는 아닙니다. 판단 없이 차례만 적은 명령도 소프트웨어입니다.


헷갈리기 쉬운 이름 — 사물 인터넷 · 인공지능 · 빅데이터

요즘 자주 들리는 이 세 낱말도 소프트웨어냐고 물으면 대답이 딱 떨어지지 않습니다. 세 낱말은 프로그램 하나의 이름이 아니라 「분야」의 이름이기 때문입니다. 분야마다 소프트웨어가 핵심으로 들어 있지만, 가리키는 범위가 조금씩 다릅니다.

세 낱말이 실제로 가리키는 것
낱말 무엇을 가리키는가
사물 인터넷 사물에 센서와 통신 장치를 붙여 사람 손을 거치지 않고 데이터를 주고받게 하는 방식. 센서와 통신 장치라는 하드웨어까지 함께 가리키므로, 소프트웨어라고만 하면 절반만 말한 것이 된다.
인공지능 기계가 사람처럼 판단하게 하는 기술 전체. 규칙을 사람이 적어 주는 방식도 있고, 요즘 널리 쓰는 기계학습은 데이터에서 규칙을 찾는다. 어느 쪽이든 만들어지는 것은 프로그램이므로 소프트웨어가 맞다.
빅데이터 지금까지 쓰던 방법으로는 다루기 어려울 만큼 크고, 빠르게 쌓이고, 생김새가 제각각인 데이터를 이르는 말. 넓게는 그것을 다루는 기술까지 함께 부른다. 데이터는 소프트웨어가 아니다 — 다루는 도구 쪽이 소프트웨어다.

이름을 외우는 것보다 어디까지가 기계이고 어디부터가 명령인지 구분하는 버릇이 중요합니다. 이 과목에서 앞으로 다룰 것들도 대개 기계와 명령이 짝을 이룬 모습으로 나옵니다.

스스로 확인

교실의 전등 스위치와 에어컨 리모컨 가운데, 안에 소프트웨어가 들어 있을 만한 쪽은 어디일까요? 그렇게 생각한 까닭을 「판단을 하는가」로 설명해 보세요.

하루 찾기

아래는 어느 학생이 수업이 끝난 뒤 저녁까지 무엇을 했는지 적은 것입니다. 특별할 것 없는 반나절이지만, 여기에도 소프트웨어가 여러 번 끼어 있습니다. 한 줄씩 살펴보겠습니다.

16:20 도서관에 들러 무인 대출기에 책과 학생증을 대고 두 권을 빌린다.
16:50 공유 자전거 거치대에서 잠금을 풀고 집 쪽으로 달린다.
17:10 현관에서 도어록에 번호를 누른다. 엘리베이터를 부르니 위층에서 내려온다.
18:00 전기밥솥에 취사를 건다. 다 되면 소리가 난다.
20:30 세탁기에 빨래를 넣고 표준 코스를 누른다.
21:00 온라인 문제집을 풀자 틀린 문제만 다시 모아 준다.

여기서 내가 골라 깐 것은 자전거 앱과 문제집 정도입니다. 나머지는 전부 기계 안에 이미 심겨 있던 것입니다. 밥솥이 온도를 지켜보고, 세탁기가 물의 양을 정하고, 도어록이 눌린 번호를 대조합니다.

방과 후 일과에 끼어 있는 소프트웨어를 갈래별로 정리한 표
시각 일어난 일 어떤 소프트웨어가 무슨 판단을 했나
16:20 대출기가 책을 빌려 준다 학생증 번호로 빌린 권수와 연체 여부를 확인하고, 넘지 않으면 처리한다. 내장 소프트웨어
16:50 자전거 잠금이 풀린다 결제가 끝났는지 확인한 뒤에만 잠금 장치를 연다. 응용 프로그램과 내장 소프트웨어가 함께
17:10 엘리베이터가 내려온다 여러 층의 호출 가운데 어느 것부터 처리할지 순서를 정한다. 내장 소프트웨어
18:00 밥이 지어진다 온도를 지켜보다가 단계마다 불의 세기를 바꾼다. 내장 소프트웨어
20:30 세탁기가 돈다 빨래의 무게를 가늠해 물의 양과 도는 시간을 스스로 정한다. 내장 소프트웨어
21:00 틀린 문제만 다시 나온다 내가 어느 문제를 틀렸는지 남겨 두었다가 그것만 골라 다시 낸다. 응용 프로그램

해 보기 — 나의 하루로 바꿔 적기

  1. 어제 하루를 떠올려 위와 같은 표를 다섯 줄 채워 보세요. 아침이든 저녁이든, 학교에서 있었던 일이든 좋습니다.
  2. 각 줄에 대해 「어떤 판단을 했는가」를 한 문장으로 적습니다. 판단이 떠오르지 않으면 그 줄은 소프트웨어가 아닐 수 있습니다.
  3. 다 적었으면 응용 프로그램과 내장 소프트웨어로 구분해 표시하고, 어느 쪽이 더 많은지 세어 보세요.
  4. 짝과 표를 바꿔 읽고, 내가 못 찾은 것을 하나만 골라 옮겨 적습니다.

적다 보면 「이건 소프트웨어일까?」 싶은 줄이 나오기 쉽습니다. 그 줄이 가장 좋은 이야깃거리입니다. 답을 정하기보다 왜 애매한지를 말해 보세요.

스스로 확인

위 표에서 소프트웨어가 하나도 없던 시절이라면 사람이 대신해야 했을 일을 하나 골라, 누가 무엇을 해야 했을지 적어 보세요.

핵심 정리

소프트웨어

  • 하드웨어가 일을 하도록 무엇을 어떤 차례로 할지 적어 둔 명령의 묶음이다.
  • 하드웨어는 딱딱해서 바꾸기 어렵고, 소프트웨어는 물러서 고쳐 쓰기 쉽다. 이름이 그렇게 붙었다.
  • 둘은 서로가 있어야 쓸모가 생긴다. 명령 없는 컴퓨터도, 기계 없는 명령도 아무 일도 못 한다.

두 갈래

  • 운영 체제는 여러 프로그램이 하나뿐인 부품을 나눠 쓰도록 사이에서 조정한다.
  • 응용 프로그램은 사람이 하려는 일 하나를 맡아 해 준다.
  • 앱은 부품에게 직접 말하지 않고 운영 체제에게 부탁한다. 그래서 부품을 몰라도 앱을 만들 수 있다.

보이지 않는 것

  • 내장 소프트웨어는 기계 안에 붙박이로 심겨 그 기계의 일만 맡는다. 골라 깔지도 지우지도 않는다.
  • 기계 안에 소프트웨어가 들었는지 알아보는 단서는 화면이 아니라 판단하는 일이 있느냐다. 판단 없이 차례만 적은 명령도 소프트웨어다.
  • 사물 인터넷 · 인공지능 · 빅데이터는 프로그램 하나의 이름이 아니라 분야의 이름이라 가리키는 범위가 서로 다르다.

하루 찾기

  • 평범한 방과 후 반나절에도 소프트웨어는 여러 번 끼어든다.
  • 그중 내가 골라 깐 것은 몇 개뿐이고 나머지는 이미 심겨 있던 것이다.
  • 「이건 소프트웨어일까?」 싶은 애매한 줄이 가장 좋은 이야깃거리다.

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1

소프트웨어를 가장 알맞게 설명한 것은?

Q2

다음 가운데 운영 체제가 맡는 일에 가장 가까운 것은?

Q3

엘리베이터에 소프트웨어가 들어 있다고 말할 수 있는 가장 알맞은 근거는?

Q4

빅데이터에 대한 설명으로 알맞은 것은?