방송대 파이썬프로그래밍기초 1강: 데이터 처리와 프로그램 실행 구조
사용자가 5 + 2 × 4를 입력하고 화면에서 13을 확인하는 짧은 순간에도 데이터 표현, 입력·기억·제어·연산·출력 장치, 알고리즘, 프로그래밍 언어와 운영체제가 함께 움직인다. 이 글은 각 용어를 따로 외우는 대신 하나의 질문이 컴퓨터 안에서 답으로 바뀌는 경로를 추적하여 데이터와 정보, 하드웨어와 소프트웨어의 역할을 구분한다.
5 + 2 × 4 = 13은 컴퓨터의 전체 처리 지도를 보여 준다
사람은 문제를 보고 필요한 수와 연산 규칙을 기억한 뒤, 순서를 제어하며 계산하고 답을 말한다. 컴퓨터도 비슷한 기능을 수행하지만 사람처럼 의미를 스스로 정하지는 않는다. 입력된 데이터와 미리 정의된 처리 방법에 따라 자동으로 값을 계산하여 정보를 만든다.
사용자가 키보드로 식을 입력하면 입력장치가 명령과 데이터를 전달한다. 기억장치는 실행할 명령과 값을 보관한다. 제어장치는 명령을 읽고 어떤 동작을 수행할지 지시하며, 연산장치는 계산을 처리한다. 출력장치는 결과를 사람이 알아볼 수 있는 문자나 숫자로 보여 준다. 이 기능을 가능하게 하는 물리 부품이 하드웨어이고, 처리 방법과 순서를 지시하는 프로그램이 소프트웨어다.
전체 흐름: 문제와 관찰 → 데이터 입력 → 기억 → 제어와 연산 → 정보 출력으로 이어지고, 프로그램과 운영체제가 이 과정에서 하드웨어가 해야 할 일을 정하고 실행 환경을 관리한다.
데이터와 정보는 값의 모양이 아니라 문제 해결 역할로 구분한다
데이터는 어떤 현상이나 사실을 설명하는 표현의 집합이다. 관찰이나 측정으로 얻으며, “밝다”, “뜨겁다”처럼 성질을 나타내는 질적 데이터와 3500℃처럼 수치로 나타내는 양적 데이터가 있다. 표현이 문자인지 숫자인지만 보고 질적·양적을 기계적으로 나누기보다, 무엇을 관찰하고 어떤 방식으로 표현했는지를 보아야 한다.
정보는 문제나 질문을 해결하는 데 사용할 수 있도록 데이터를 처리하여 얻은 결과다. 데이터가 여러 개 모였다고 자동으로 정보가 되는 것은 아니다. 정렬, 계산, 군집화, 표현 방식의 변환처럼 목적에 맞는 처리를 거쳐야 한다.
학습용 예로 한 교실의 온도를 세 번 측정해 22, 25, 24를 얻었다고 하자. 이 세 수치는 관찰에서 나온 데이터다. “평균은 23.7도이며 두 번째 측정값이 가장 높다”라고 계산·비교한 결과는 환기 여부를 판단하는 데 쓰이는 정보가 된다. 같은 데이터라도 질문이 “최댓값은?”인지 “평균은?”인지에 따라 필요한 처리와 만들어지는 정보가 달라진다.
오개념 교정: 데이터는 쓸모없고 정보만 쓸모있다는 뜻이 아니다. 데이터는 처리의 재료이며, 어떤 질문에 어떤 처리를 적용했는지가 정보의 유용성을 결정한다.
컴퓨터는 정의된 방법으로 데이터를 자동 처리하는 기계다
컴퓨터는 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계다. 여기서 중요한 말은 정의된 방법, 입력 데이터, 자동 처리, 정보 생산이다. 계산이 빠르다는 특성만으로 컴퓨터의 역할을 충분히 설명할 수 없다.
| 요소 | 계산 예에서의 의미 | 빠뜨리면 생기는 문제 |
|---|---|---|
| 입력 데이터 | 5, 2, 4와 연산 기호가 주어진다 | 처리할 대상이 없어 결과를 만들 수 없다 |
| 정의된 방법 | 곱셈을 먼저 수행하는 계산 순서가 정해져 있다 | 같은 식에서 서로 다른 답을 만들 수 있다 |
| 자동 처리 | 프로그램의 명령을 순서대로 실행한다 | 사람이 매 단계 하드웨어를 직접 제어해야 한다 |
| 정보 생산 | 질문에 대한 결과 13을 제공한다 | 처리는 했지만 사용자가 판단에 쓸 답이 없다 |
비트와 바이트는 데이터를 담는 크기의 기준이다
컴퓨터는 트랜지스터의 두 상태를 이용해 데이터를 2진수로 표현하고 저장하며 처리한다. 0 또는 1 하나를 나타내는 최소 단위가 비트(bit, binary digit)다. 바이트(byte)는 데이터를 처리하는 기본 단위이며 일반적으로 8개의 비트로 구성된다.
비트가 값 하나의 의미를 직접 정하는 것은 아니다. 같은 비트열도 약속된 표현 체계에 따라 숫자나 문자 등으로 해석될 수 있다. 따라서 “컴퓨터는 모든 것을 0과 1로 저장한다”는 설명 다음에는 “그 0과 1을 어떤 규칙으로 해석하는가”라는 질문이 필요하다.
단위와 의미의 분리: 비트·바이트는 데이터의 표현 단위를 말하고, 진법과 인코딩은 그 비트열을 어떤 숫자나 문자로 해석할지 정한다.
10진수 13은 나눗셈의 나머지를 거꾸로 읽어 1101이 된다
사람이 주로 사용하는 10진수를 컴퓨터가 사용하는 2진수로 바꾸려면 2로 계속 나누고 나머지를 기록한다. 결과를 바로 외우기보다 변환 과정을 재현하면 자리값과 검산까지 연결할 수 있다.
| 나눗셈 | 몫 | 나머지 |
|---|---|---|
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
나머지를 아래에서 위로 읽으면 1101이다. 다시 10진수로 검산하면 1×8 + 1×4 + 0×2 + 1×1 = 13이므로 변환이 맞다. 반대로 위에서 아래로 읽어 1011이라고 쓰면 10진수 11이 되어 검산에서 오류를 찾을 수 있다.
문자는 인코딩 체계가 있어야 비트열의 의미를 얻는다
숫자는 진법 변환으로 2진수에 대응하고, 문자는 인코딩 체계로 문자와 2진 값을 연결한다. 강의자료의 ASCII 코드표에서 대문자 A는 10진수 65이며 8비트로 01000001에 대응한다. 소문자 d는 10진수 100, 즉 01100100으로 표현된다.
여기서 비트열만 보고 글자를 알아내려면 어떤 인코딩을 사용했는지 알아야 한다. 01000001 자체에 눈에 보이는 문자 모양이 들어 있는 것이 아니라, 인코딩 규칙이 65와 A를 연결한다. 숫자의 진법과 문자의 인코딩을 모두 “2진수 변환”이라고만 기억하면 표현 규칙의 차이를 놓치게 된다.
| 데이터 종류 | 사람이 보는 표현 | 컴퓨터 표현으로 연결하는 규칙 |
|---|---|---|
| 숫자 | 10진수 13 | 자리값과 진법 변환으로 2진수 1101에 대응한다 |
| 문자 | 문자 A | ASCII 같은 인코딩에서 코드값을 정하고 01000001로 표현한다 |
물리적 부품과 논리적 역할은 서로 다른 분류축이다
컴퓨터의 물리적 구성은 CPU, RAM, 저장장치, 그래픽 카드처럼 실제로 만질 수 있는 부품을 보여 준다. 논리적 구성은 부품의 모양이 아니라 데이터 처리에서 맡는 역할을 기준으로 입력, 기억·저장, 제어, 연산, 출력 장치로 나눈다.
폰 노이만 구조는 기계를 바꾸지 않고 기억장치에 저장된 프로그램의 처리 방법을 교체해 여러 문제를 풀 수 있게 하는 기본 설계다. 명령과 데이터가 기억장치에 있고, 제어장치와 연산장치가 이를 읽어 처리하며, 입력과 출력장치가 사람·외부 환경과 데이터를 주고받는다.
분류 실수: 물리 부품명과 논리 역할을 같은 수준에서 나열하면 관계가 흐려진다. CPU는 물리적 부품이고, 그 안의 제어 유닛과 산술논리연산장치는 각각 제어와 연산이라는 논리 역할을 담당한다.
입력과 출력은 데이터가 이동하는 방향으로 판단한다
입력장치는 명령과 데이터를 컴퓨터에 전달하고 컴퓨터가 처리할 수 있는 2진수 형태로 변환한다. 키보드·마우스, 스캐너, 터치스크린이 대표적이다. 출력장치는 정보 처리 결과를 사람이 인식 가능한 문자·숫자·도형·음성·영상 또는 물리적 형태로 내보낸다. 모니터, 스피커, 프린터, 3D 프린터가 여기에 해당하며 HUD와 HMD도 특수 출력장치의 사례다.
장치 이름만으로 역할을 고정하기보다 데이터의 방향을 보아야 한다. 터치스크린에서는 화면 표시가 사람에게 향하는 출력이고, 손가락 위치를 감지해 컴퓨터로 보내는 기능은 입력이다. 하나의 제품이 여러 물리 기능을 묶을 수 있어도 논리적 역할은 데이터가 어디에서 어디로 흐르는지에 따라 구분할 수 있다.
방향 규칙: 사람·외부 세계 → 컴퓨터이면 입력, 컴퓨터의 처리 결과 → 사람·외부 세계이면 출력이다.
주기억장치와 보조기억장치는 속도·용량·보존성의 균형이 다르다
기억장치와 저장장치는 명령과 데이터를 보관하지만 역할과 특성이 다르다. 주기억장치는 CPU가 작업 중 빠르게 접근하는 공간이고, 보조기억장치는 더 많은 데이터를 오래 보관하는 공간이다.
| 비교 기준 | 주기억장치 | 보조기억장치 |
|---|---|---|
| 접근 속도 | 빠르다 | 상대적으로 느리다 |
| 제조 단가 | 높다 | 상대적으로 낮다 |
| 용량 | 상대적으로 작다 | 크다 |
| 전원 차단 | RAM은 내용이 사라지고 ROM은 보존된다 | 저장 내용이 보존된다 |
| 대표 사례 | RAM, ROM | 자기디스크, 광학디스크, 플래시 드라이브, SSD |
“기억”과 “저장”이라는 일상어만으로 둘을 구분하면 RAM과 저장장치를 혼동하기 쉽다. 현재 실행 중인 명령과 데이터를 빠르게 제공하는지, 전원이 꺼진 뒤에도 장기간 보관하는지가 핵심이다. RAM의 용량이 크더라도 보조기억장치의 영구 보관 역할을 그대로 대신하지는 않는다.
CPU는 명령을 지휘하고 계산하며 잠깐 필요한 값을 붙잡는다
제어장치와 연산장치는 명령어와 데이터를 읽어 실제 처리를 수행한다. CPU 안의 제어 유닛은 실행할 명령을 해석하고 다른 구성요소의 동작을 지시한다. 산술논리연산장치(ALU)는 산술 계산과 논리 처리를 담당하며, 레지스터는 처리 중 즉시 필요한 값과 상태를 매우 빠르게 임시 보관한다.
5 + 2 × 4를 처리할 때 기억장치에 식과 명령이 준비되고, 제어 유닛이 정해진 순서에 따라 먼저 곱셈 연산을 지시한다. ALU가 2 × 4 = 8을 계산하면 중간값을 보관하고, 다음 덧셈에서 5 + 8 = 13을 만든다. 결과가 출력장치로 전달되기까지 CPU와 기억장치 사이의 데이터 이동이 이어진다.
메인보드 또는 마더보드는 CPU, 기억장치, 저장장치와 주변장치를 연결하는 회로를 갖춘 장치다. 연산 기능을 직접 대신하기보다 각 부품이 신호와 데이터를 주고받을 물리적 연결 기반을 제공한다.
알고리즘은 해결 절차이고 프로그램은 그 절차를 언어로 구현한 결과다
프로그램은 컴퓨터가 정보를 처리하도록 방법과 과정을 구체적으로 결정한 결과물이다. 프로그래밍 언어는 사람과 컴퓨터 사이에서 작업 처리 지시를 표현하는 의사소통 도구다. 알고리즘은 문제를 풀기 위한 단계별 절차를 체계적 명령어 형태로 기술한 것이며, 프로그램은 그 알고리즘을 특정 프로그래밍 언어로 구현한다.
정렬 알고리즘은 여러 카드를 오름차순으로 배열하는 문제를 해결하는 절차다. 선택정렬이라면 아직 정렬되지 않은 카드 중 가장 작은 값을 찾아 앞쪽 위치와 바꾸는 일을 반복한다. 알고리즘은 “무엇을 어떤 순서로 반복할지”를 설명하고, 파이썬 프로그램은 그 절차를 파이썬 문법으로 컴퓨터가 실행할 수 있게 표현한다.
구분 기준: 문제 해결 아이디어와 단계가 알고리즘이고, 그 단계를 특정 언어의 문법으로 작성해 실행 대상으로 만든 것이 프로그램이다.
합산 프로그램은 변수의 상태가 바뀌는 순서로 읽는다
강의자료의 합산 알고리즘을 학습용으로 단순화해 1부터 4까지 더해 보자. 코드를 읽을 때 결과 10만 외우지 말고, 반복할 때마다 i와 total이 어떻게 변하는지 추적해야 한다.
n = 4
total = 0
i = 1
while i <= n:
total = total + i
i = i + 1
print(total)
반복 시작의 i | 계산 | 계산 뒤 total | 다음 i |
|---|---|---|---|
| 1 | 0 + 1 | 1 | 2 |
| 2 | 1 + 2 | 3 | 3 |
| 3 | 3 + 3 | 6 | 4 |
| 4 | 6 + 4 | 10 | 5 |
i가 5가 되면 i <= n이 거짓이 되어 반복을 끝내고 10을 출력한다. 만약 i = i + 1을 빠뜨리면 i가 계속 1이라 종료 조건에 도달하지 못한다. 이 오류는 반복문이 “계산”뿐 아니라 “상태 변화”와 “종료 조건”을 함께 가져야 한다는 점을 보여 준다.
프로그래밍 언어는 사람의 지시와 기계어 사이의 거리를 줄여 왔다
강의자료는 프로그래밍 언어를 1세대 기계어, 2세대 어셈블리어, 3세대 고급언어, 4세대 자동화 지향 언어로 분류한다. 기계어는 컴퓨터가 직접 인식할 수 있는 2진 명령으로 하드웨어와 가깝고, 어셈블리어는 명령어에 기호를 대응한다. Python·C·Java·Rust 같은 3세대 고급언어는 자연어와 더 가까운 표현을 사용해 사람이 프로그램을 작성하고 이해하기 쉽게 한다.
그러나 고급언어로 작성한 소스코드를 컴퓨터가 그대로 이해하는 것은 아니다. 컴파일러나 인터프리터가 사람이 쓴 명령과 기계가 처리할 표현 사이를 연결한다. 두 번역 방식의 세부 실행 과정은 다를 수 있지만, 이 차시에서는 고급언어의 프로그램이 실행되려면 기계가 이해할 수 있는 처리로 이어져야 한다는 관계가 핵심이다.
오개념 교정: Python이 읽기 쉽다는 말은 CPU가 Python 문장을 직접 읽는다는 뜻이 아니다. 사람에게 가까운 표현일수록 번역·실행 환경이 기계어와의 간격을 메워야 한다.
응용 소프트웨어와 시스템 소프트웨어는 책임의 상대가 다르다
소프트웨어는 하드웨어를 동작시켜 특정 작업을 수행하게 하는 명령어와 데이터 등의 묶음이다. 응용 소프트웨어는 사용자의 업무나 목적에 맞게 문제를 해결하는 처리 절차를 포함한다. 시스템 소프트웨어는 하드웨어를 제어·관리하고 응용 소프트웨어가 실행될 수 있는 환경을 제공한다.
| 구분 | 직접 책임지는 대상 | 주요 역할 |
|---|---|---|
| 응용 소프트웨어 | 사용자의 구체적인 목적과 업무 | 문서 작성, 계산, 정보 검색처럼 사용자가 원하는 문제를 해결한다 |
| 운영체제 | 컴퓨터 자원과 프로그램 실행 환경 | 하드웨어를 효율적으로 관리하고 응용 프로그램의 실행을 지원한다 |
| 컴파일러·인터프리터 | 소스코드와 기계가 실행할 처리의 연결 | 고급언어로 작성된 프로그램을 컴퓨터의 실행으로 이어 준다 |
| 유틸리티 | 시스템 운영을 돕는 부가 기능 | 사용자가 컴퓨터를 효율적으로 관리하도록 보조한다 |
운영체제는 여러 작업과 장치를 관리하며 응용 프로그램이 하드웨어를 직접 제어해야 하는 부담을 줄인다. 응용 프로그램의 기능이 뛰어나도 실행 환경이 없거나 필요한 자원을 배정받지 못하면 작동할 수 없다. 반대로 운영체제만 있어도 사용자의 구체적인 업무가 자동으로 해결되는 것은 아니다.
오류를 찾을 때는 표현·장치·절차·실행 환경을 차례로 점검한다
작은 계산 프로그램이 예상과 다른 결과를 냈다고 가정해 보자. 하드웨어 고장부터 의심하기보다 데이터가 어떤 규칙으로 표현되었는지, 입력과 출력 방향이 맞는지, 기억과 CPU의 역할이 연결되는지, 알고리즘과 코드의 순서가 올바른지, 번역기와 운영체제가 실행 환경을 제공하는지 차례로 확인한다.
| 점검 단계 | 확인 질문 | 대표 실패 |
|---|---|---|
| 1. 목적 | 어떤 질문에 답할 정보를 만들려는가? | 처리는 했지만 문제 해결에 쓸 수 없는 결과가 나온다 |
| 2. 표현 | 숫자의 진법과 문자의 인코딩을 올바르게 해석했는가? | 같은 비트열을 다른 값으로 읽는다 |
| 3. 데이터 경로 | 입력·기억·제어·연산·출력의 방향과 역할이 맞는가? | 부품과 논리 역할을 혼동해 고장 위치를 잘못 찾는다 |
| 4. 해결 절차 | 알고리즘의 순서·반복·종료 조건이 정확한가? | 합이 틀리거나 반복이 끝나지 않는다 |
| 5. 구현·번역 | 알고리즘을 언어 문법으로 정확히 작성하고 실행 가능한 형태로 연결했는가? | 아이디어는 맞지만 프로그램이 실행되지 않는다 |
| 6. 실행 환경 | 운영체제가 장치와 자원을 관리하고 응용 실행을 지원하는가? | 프로그램이 필요한 자원이나 장치를 이용하지 못한다 |
핵심 개념 정리
- 데이터는 관찰·측정으로 얻은 사실의 표현이고, 정보는 특정 문제를 해결하도록 데이터를 정렬·계산·변환해 얻은 결과다.
- 컴퓨터는 정의된 방법에 따라 입력 데이터를 자동 처리하여 정보를 생산한다.
- 비트는 0과 1을 나타내는 최소 단위이고, 바이트는 일반적으로 8비트로 이루어진 데이터 처리의 기본 단위다.
- 숫자는 진법 변환으로, 문자는 ASCII 같은 인코딩 체계로 2진 표현과 연결된다.
- 폰 노이만 구조는 입력·기억·제어·연산·출력의 논리 역할을 프로그램 내장 방식으로 연결한다.
- 주기억장치는 실행 중인 명령과 데이터에 빠르게 접근하고, 보조기억장치는 더 큰 데이터를 전원 차단 뒤에도 보관한다.
- 알고리즘은 단계별 문제 해결 절차이고, 프로그램은 이를 특정 프로그래밍 언어로 구현한 결과다.
- 컴파일러·인터프리터는 고급언어와 컴퓨터 실행을 연결하며, 운영체제는 하드웨어 자원을 관리하고 응용 소프트웨어의 실행 환경을 제공한다.
새로운 컴퓨터 문제를 만나면 “무엇을 입력해 어떤 정보를 얻을 것인가”부터 정한다. 그다음 숫자·문자가 어떤 비트열로 표현되는지, 데이터가 입력·기억·제어·연산·출력 장치를 어떻게 지나는지 추적한다. 해결 절차를 알고리즘으로 만들고 프로그래밍 언어로 구현한 뒤 번역기와 운영체제가 실행을 어떻게 돕는지 연결하면, 데이터·하드웨어·소프트웨어를 따로 외우지 않고 하나의 실행 구조로 설명할 수 있다.
예상문제 10선
1. 데이터와 정보의 관계를 가장 정확하게 설명한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
- ① 오답: 데이터와 정보는 문자·숫자 모양이 아니라 관찰값과 문제 해결 결과라는 역할로 구분한다.
- ② 오답: 관찰·측정에서 얻은 표현이 데이터이고 이를 처리한 결과가 정보다.
- ③ 정답: 질문에 맞춘 정렬·계산·변환이 데이터를 유용한 결과로 만든다.
- ④ 오답: 데이터의 개수가 아니라 목적에 맞는 처리와 해석이 있어야 정보가 된다.
2. 10진수 13을 2진수로 올바르게 표현한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
- ① 정답: 자리값을 계산하면
8 + 4 + 0 + 1 = 13이 된다. - ② 오답:
8 + 0 + 2 + 1 = 11이며 나머지를 읽는 방향을 뒤집을 때 나오기 쉽다. - ③ 오답:
8 + 4 + 2 + 0 = 14로 목표값보다 1 크다. - ④ 오답:
8 + 0 + 0 + 1 = 9로 4의 자리값이 빠졌다.
3. 데이터가 정보로 출력되는 논리적 처리 흐름으로 가장 적절한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
- ① 오답: 처리 결과를 내보내는 출력이 원래 데이터를 받는 입력보다 먼저 올 수 없다.
- ② 오답: 입력되지 않은 데이터를 출력한 뒤 처리한다는 순서가 되어 데이터 흐름과 맞지 않는다.
- ③ 오답: 연산할 명령과 데이터가 입력·기억되기 전에 계산을 시작하도록 배치했다.
- ④ 정답: 외부 데이터를 받아 보관하고 명령에 따라 처리한 결과를 밖으로 전달하는 흐름이다.
4. 주기억장치와 보조기억장치를 바르게 비교한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
- ① 오답: 접근 속도와 일반적인 용량 관계를 서로 뒤바꾼 설명이다.
- ② 정답: 실행 중 빠른 접근과 장기·대용량 보관이라는 역할 차이를 정확히 구분한다.
- ③ 오답: RAM·ROM은 주기억장치이고 SSD는 보조기억장치의 사례다.
- ④ 오답: RAM은 전원 차단 시 사라지지만 보조기억장치의 저장 내용은 보존된다.
5. CPU의 구성요소와 역할의 연결이 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
- ① 오답: 인쇄는 출력장치인 프린터의 역할이고 제어 유닛은 명령 실행을 지시한다.
- ② 정답: ALU는 수치 계산과 조건 판단에 필요한 논리 연산을 담당한다.
- ③ 오답: 레지스터는 처리 중 필요한 값을 빠르게 임시 보관하며 장기 파일 저장소가 아니다.
- ④ 오답: 메인보드는 부품의 연결 기반이고 언어 번역은 컴파일러·인터프리터가 맡는다.
6. 알고리즘과 프로그램의 관계를 가장 정확하게 설명한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
- ① 오답: 두 개념은 하드웨어 부품이 아니라 문제 해결 방법과 소프트웨어 구현을 다룬다.
- ② 오답: 관찰값과 결과의 관계는 데이터·정보이며 알고리즘·프로그램 구분과 다르다.
- ③ 오답: 알고리즘은 특정 언어와 독립적으로 절차를 설명할 수 있고 프로그램은 여러 언어로 구현된다.
- ④ 정답: 추상적인 해결 단계가 프로그래밍 언어의 문법으로 표현되어 실행 대상이 된다.
7. 본문의 합산 프로그램에서 n = 4일 때 출력되는 값은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
- ① 정답:
0 + 1 + 2 + 3 + 4를 차례로 계산하면 10이 된다. - ② 오답: 마지막
i의 값만 결과로 착각하면 합산된total을 놓친다. - ③ 오답: 1부터 3까지만 더한 값으로, 조건의
<=가 4도 포함한다는 점을 빠뜨렸다. - ④ 오답: 초기값 0은 합을 바꾸지 않으며 반복 뒤의 5는 조건 검사에만 쓰이고 더하지 않는다.
8. 고급언어로 작성한 프로그램이 실행되는 관계를 바르게 나타낸 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
- ① 오답: CPU는 Python 같은 고급언어 문장을 직접 인식하지 않으며 입력과 저장만으로 번역이 끝나지 않는다.
- ② 오답: 출력장치와 메인보드는 결과 전달과 부품 연결을 맡고 언어 번역기가 아니다.
- ③ 정답: 사람이 작성한 소스코드를 기계가 실행할 수 있는 처리로 이어 주는 소프트웨어가 필요하다.
- ④ 오답: 운영체제는 자원과 실행 환경을 관리하지만 문제 해결 알고리즘을 자동으로 작성하지 않는다.
9. 응용 소프트웨어와 시스템 소프트웨어에 대한 잘못된 생각을 바르게 고친 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
- ① 오답: 문서 내용 작성은 응용의 사용자 목적이고 운영체제는 하드웨어와 실행 환경을 관리한다.
- ② 정답: 시스템 소프트웨어의 책임이 장치·자원 관리와 응용 지원에 있음을 보여 준다.
- ③ 오답: CPU와 RAM을 잇는 회로는 하드웨어 영역이며 응용은 사용자의 문제 해결 절차다.
- ④ 오답: 컴파일러는 소스코드와 실행을 연결하는 시스템 소프트웨어이지 저장 부품이 아니다.
10. 계산 프로그램이 예상과 다른 결과를 낼 때 가장 적절한 점검 순서는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
- ① 오답: 원하는 정보와 오류 위치를 확인하기 전에 장치를 바꾸고 해결 절차를 제거한다.
- ② 오답: 운영체제는 실행 환경에 필요하며 메인보드는 언어를 번역하지 않는다.
- ③ 오답: 표현과 알고리즘을 확인하지 않은 채 물리 고장으로 단정하면 원인을 잘못 좁힐 수 있다.
- ④ 정답: 문제의 목표에서 시작해 표현·하드웨어 경로·해결 절차·소프트웨어 실행을 순차적으로 확인한다.
참고 자료와 작성 기준
이 글은 해당 차시 강의자료를 바탕으로 학습 목적에 맞게 재구성한 비공식 학습자료입니다. 교실 온도 데이터 사례, 10진수 13의 단계별 2진 변환과 검산, 1부터 4까지의 합산 코드 추적표, 오류 점검 절차는 학습자가 데이터·하드웨어·소프트웨어의 관계를 직접 재현하도록 새로 구성했습니다.
- 작성·편집: 올에이클래스 학습연구팀
- 주요 근거: 한국방송통신대학교 컴퓨터과학과, 「파이썬프로그래밍기초」 1강 컴퓨터의 이해 강의자료, 2026
- 보충 자료: 외부 자료를 사용하지 않음
- 편집 원칙: 올에이클래스 편집 정책
- 최종 내용 검토: 2026-09-07
댓글
댓글 쓰기