이 페이지의 목차
소프트웨어의 관점으로 바라보기
코드 예제: Python · 예상 50분
학습 목표
- 실세계의 문제를 입력·처리·출력과 자동화의 관점으로 다시 볼 수 있다.
- 소프트웨어 도입 전과 후를 구분해 사회 변화의 흐름을 파악할 수 있다.
관련 성취기준
- [12소생01-02]
실세계의 문제와 현상을 소프트웨어의 관점으로 바라보고 소프트웨어 발전에 따른 미래 사회의 변화를 예측한다.
생각 열기 — 버스는 언제 올까
정류장에 버스 도착 안내판이 없던 시절, 사람들은 그냥 기다렸다. 지금은 「3분 후 도착」을 보고 편의점에 들를지 말지 정한다.
소프트웨어의 눈 — 세 가지 질문
소프트웨어의 관점(software perspective) — 실세계의 문제를 입력·처리·출력, 자동화할 수 있는 규칙, 다룰 수 있는 데이터로 다시 바라보는 사고방식으로 본다는 것은 실세계의 문제를 다음 세 가지 질문으로 다시 묻는 것이다.
- 질문 1
무엇이 들어가고 무엇이 나오나
문제를 입력 → 처리 → 출력의 흐름으로 본다. 버스 안내라면 버스 위치가 들어가고, 남은 시간이 나온다.
- 질문 2
되풀이되는 규칙이 있나
사람이 매번 같은 방식으로 판단하는 일이면 규칙으로 적어 기계에 맡길 수 있다. 이것이 자동화다.
- 질문 3
어떤 데이터가 필요한가
판단에 필요한 정보가 무엇이고, 그것을 어디서 얻을 수 있는지 따진다.
자동화(automation) — 사람이 하던 판단이나 작업을 규칙으로 적어 기계가 스스로 하게 만드는 것는 소프트웨어가 세상을 바꾸는 가장 기본적인 방법이다. 규칙으로 적을 수 있는 일은 지치지 않고, 빠르고, 같은 방식으로 반복된다.
짧은 코드로 보는 입력 · 처리 · 출력
버스 도착 안내판이 하는 계산을 아주 단순하게 줄이면 다음과 같다. 실행하기 전에 결과를 먼저 짐작해 보자.
남은 거리가 3.6km이고 버스의 평균 속도가 시속 24km라면, 아래 코드는 무엇을 출력할까?
힌트 — 걸리는 시간 = 거리 ÷ 속도. 시간을 분으로 바꾸려면 60을 곱한다.
버스 도착까지 약 9분
결과 바로 보기
버스 도착까지 약 9분
# 입력 — 버스 위치 장치가 보내 준 값
남은거리 = 3.6 # 정류장까지 남은 거리(km)
평균속도 = 24 # 최근 구간의 평균 속도(km/h)
# 처리 — 시간 = 거리 ÷ 속도, 분으로 바꾼다
남은분 = 남은거리 / 평균속도 * 60
# 출력 — 안내판에 보여 줄 문장
print(f"버스 도착까지 약 {round(남은분)}분")버스 도착까지 약 9분
**[고치기]**를 눌러 평균속도를 12로 바꿔 보자. 길이 막혀 속도가 절반이 되면 남은 시간은 어떻게 되는가? 실제 안내판은 여기에 신호 대기, 정류장 정차 시간, 시간대별 교통량까지 넣어 계산을 다듬는다. 하지만 뼈대는 이 세 덩어리, 입력 · 처리 · 출력이다.
도입 전과 후를 나란히 놓기
소프트웨어가 바꾼 사회를 분석할 때는 도입하기 전과 후를 같은 틀로 나란히 놓으면 무엇이 바뀌었는지 분명해진다. 세 사례를 골라 비교판을 살펴보자.
도입 전
- 정류장에 간다
- 버스가 올 방향을 보며 기다린다
- 언제 올지 몰라 자리를 뜨지 못한다
- 버스가 오면 탄다
언제 올지 모르니 무조건 기다린다
4단계도입 후
- 집에서 앱으로 도착 시각을 본다
- 시간에 맞춰 정류장에 간다
- 버스를 탄다
올 시각을 알고 움직인다
3단계소프트웨어가 맡은 일 열어 보기 — 입력 · 처리 · 출력
도입 전
- 책장 사이를 돌며 책을 찾는다
- 책 뒤의 대출 카드에 이름을 적는다
- 사서가 대출 장부에 옮겨 적는다
- 반납일을 사서가 일일이 확인한다
찾기도 빌리기도 사람 손으로 한다
4단계도입 후
- 검색해서 책의 자리와 대출 여부를 본다
- 자동 대출기에 학생증과 책을 올린다
- 반납일 알림이 휴대폰으로 온다
찾기·빌리기·알림이 자동이다
3단계소프트웨어가 맡은 일 열어 보기 — 입력 · 처리 · 출력
도입 전
- 병원 문 여는 시각에 맞춰 간다
- 접수 창구에 줄을 선다
- 종이에 인적 사항을 적는다
- 대기실에서 이름이 불릴 때까지 기다린다
가서 줄 서고 오래 기다린다
4단계도입 후
- 앱으로 미리 접수하고 순서를 받는다
- 내 차례가 가까워지면 알림을 받고 간다
- 진료를 받는다
차례에 맞춰 간다
3단계소프트웨어가 맡은 일 열어 보기 — 입력 · 처리 · 출력
사회 변화의 흐름 읽기
여러 사례의 「전과 후」를 모아 보면 하나의 방향이 보인다. 은행 업무를 예로 들어 보자.
- 1은행 창구에서 직원에게 서류를 써 낸다
- 2현금 자동 입출금기(ATM)에서 직접 보낸다
- 3집의 컴퓨터로 인터넷 뱅킹에 접속해 보낸다
- 4휴대폰 앱에서 전화번호만으로 몇 초 만에 보낸다
- 5의심스러운 송금을 소프트웨어가 먼저 알아채 막아 준다
사람이 하던 일을 기계가 넘겨받고 → 장소의 제약이 사라지고 → 절차가 짧아지고 → 마침내 소프트웨어가 스스로 판단하는 단계로 나아간다.
- 1단계
사람이 직접
모든 판단과 처리를 사람이 한다.
- 2단계
기계가 대신
정해진 일을 기계가 넘겨받는다. 장소는 여전히 정해져 있다.
- 3단계
언제 어디서나
네트워크로 이어져 시간과 장소의 제약이 사라진다.
- 4단계
스스로 판단
데이터를 바탕으로 소프트웨어가 예측하고 먼저 알려 준다.
모든 분야가 같은 속도로 바뀌지는 않지만, 많은 분야가 이 흐름을 따라 움직인다. 지금 어떤 분야가 몇 단계쯤에 있는지 보면 다음에 무엇이 바뀔지 짐작할 수 있다. 다음 차시의 「미래 예측」은 이 흐름에서 출발한다.
내가 고른 문제를 소프트웨어의 눈으로
약 20분학교나 동네에서 아직 사람이 손으로 하고 있는 불편한 일을 하나 고른다. 그 일을 소프트웨어의 관점으로 다시 적어 보자.
소프트웨어의 눈으로 다시 보기
- 입력·처리·출력을 모두 적었다
- 도입 전과 후를 함께 적었다
- 새로 생길 문제도 생각했다
글자 규칙으로 살펴보는 점검표다. 다 켜졌다고 좋은 답이 되는 것은 아니다 — 마지막 판단은 내가 한다.
적은 내용은 이 브라우저에만 저장된다. 다른 컴퓨터로 옮기거나 제출하려면 내려받는다.
확인 문제
개념 확인 문제
보기를 누르면 바로 채점된다. 틀려도 해설을 읽으면 된다.
「무인 주차장 요금 정산기」를 입력·처리·출력으로 본 것으로 알맞지 않은 것은?12소생01-02
사람이 매번 같은 방식으로 하던 판단을 규칙으로 적어 기계가 하게 만드는 것을 무엇이라 하는가?12소생01-02
소프트웨어 도입 전과 후를 비교해 분석할 때 가장 바람직한 태도는?12소생01-02
위 버스 예제에서 평균속도를 24에서 12로 바꾸면 출력은 어떻게 될까?12소생01-02
교과서에서 찾기
| 교과서 | 해당 위치 | 쪽수 |
|---|---|---|
| 교학사 | Ⅰ-1 소프트웨어와 사회 변화 › 소프트웨어와 미래 사회 | 14쪽 |
| 길벗 | Ⅰ-02 도와줘요, 소프트웨어! › 소프트웨어의 발전과 미래 사회 | 20쪽 |
| 삼양미디어 | Ⅰ-02 소프트웨어의 발전과 미래 사회 | 17쪽 |
| 씨마스 | Ⅰ-1 개념 학습 › 소프트웨어와 사회 변화 | 20쪽 |
| 천재교과서 | Ⅰ-1 소프트웨어와 사회 변화 › 소프트웨어의 발전과 미래 사회 | 23쪽 |