
컴퓨터를 켜면 아무렇지 않게 화면이 켜지고, 프로그램을 실행하면 빠르게 작업이 진행된다. 하지만 내부에서는 수많은 장치들이 서로 데이터를 주고받고, 명령을 해석하고, 복잡한 흐름을 조정하며 움직인다.
이 글에서는 컴퓨터의 기본 구성과 소프트웨어의 역할, 그리고 프로그램이 실제로 어떻게 실행되는지를 쉬운 흐름으로 정리한다.
컴퓨터는 무엇으로 이루어져 있을까?
겉에서 보면 하나의 기계지만, 내부 구성을 뜯어보면 매우 단순한 구조가 반복된다.
컴퓨터는 크게 두 요소로 나뉜다.
하드웨어
눈에 보이는 물리 장치들
(CPU, 메모리, SSD, 그래픽카드, 키보드, 모니터 등)
소프트웨어
하드웨어에게 “무엇을 어떻게 하라”고 지시하는 명령어 집합
(운영체제, 앱, 게임, 드라이버 등)
둘은 따로 존재할 수 없고, 반드시 맞물려야 컴퓨터가 정상적으로 동작한다.
하드웨어 — 컴퓨터의 몸체와 구조
하드웨어는 실제 형태를 가진 모든 장치를 말하며, 핵심 구성 요소는 세 가지로 정리된다.
1. CPU — 컴퓨터의 두뇌
연산, 판단, 제어의 중심이 되는 장치다.
모든 명령어 처리는 CPU 내부에서 이루어진다.
CPU 내부에는
- 연산을 수행하는 ALU
- 명령을 해석하고 흐름을 통제하는 제어장치(Control Unit)
- 초고속 임시 저장소 레지스터(Register)
가 들어 있다.
CPU는 이 내부 구성들을 이용해 프로그램을 해석하고 실행하며, 필요한 데이터는 버스(Bus)를 통해 가져오고 전달한다.
2. 메모리(RAM) — 작업 공간
CPU가 일을 하기 위해 반드시 필요한 임시 저장 공간이다.
RAM은 프로그램이 실행될 때만 데이터를 올려두는 “작업 책상” 같은 역할을 한다.
특징은 다음과 같다.
- 전원을 끄면 내용이 삭제되는 휘발성
- 속도는 매우 빠름
- 용량은 SSD보다 작음
- 프로그램은 반드시 SSD → RAM으로 올라와야만 실행됨
3. 보조기억장치 — 오래 저장하는 공간
SSD, HDD, USB, SD카드 같은 장치들.
전원을 꺼도 데이터가 남아 있으며, 프로그램 설치·파일 저장 등 모든 기본 데이터는 여기에 보관된다.
- RAM보다 느리지만
- 용량이 훨씬 크고
- 가격 대비 저장량이 큼
여기서 저장된 프로그램은 실행될 때 RAM으로 이동하여야 비로소 CPU가 읽을 수 있다.
4. 입출력장치(I/O) — 사람과 컴퓨터의 소통 창구
입력 장치: 키보드, 마우스, 마이크, 카메라
출력 장치: 모니터, 스피커, 프린터
입력 정보는 이진수로 변환되어 CPU로 전달되고, 출력은 인간이 이해할 수 있는 형태로 다시 변환된다.
소프트웨어 — 보이지 않는 지휘자
하드웨어만 있으면 기계는 단순한 철덩어리에 불과하다.
기계를 움직이는 “명령의 집합”이 바로 소프트웨어다.
시스템 소프트웨어 — 기계를 다루는 관리자
- 운영체제(OS)
Windows, macOS, Linux, Android, iOS 등
하드웨어 전체를 관리하고 응용 프로그램을 실행시키는 기반이 된다. - 장치 드라이버
하드웨어가 정상적으로 동작하도록 연결하는 소프트웨어
(그래픽드라이버, 사운드드라이버 등) - 컴파일러(언어 번역기)
C, Java 같은 고급언어를 기계가 이해하는 코드로 변환하는 역할
응용 소프트웨어 — 사용자가 직접 쓰는 프로그램
- 포토샵
- 카카오톡
- 게임
- MS 오피스
- 웹 브라우저
이런 프로그램들은 모두 운영체제 위에서 동작한다.
프로그램이 실행되는 과정 — 내부 동작의 실체
겉보기에는 아이콘을 더블클릭하면 바로 실행되는 것처럼 보이지만, 내부에서는 아래와 같은 단계가 진행된다.
1단계: 고급언어
사람이 이해하기 쉬운 코드
예)
x + y;
2단계: 어셈블리어
기계가 조금 더 잘 알아듣는 언어
예)
LOAD A, 10
ADD A, 11
STORE A, 12
3단계: 기계어
CPU가 직접 실행하는 0과 1
예)
10100010 00001010 …
CPU는 이 기계어를 해석하면서
- 연산코드(OPCODE)
- 오퍼랜드(Operand)
두 요소를 기반으로 실제 연산을 수행한다.
컴퓨터 내부의 통로 — 버스(Bus)
하드웨어끼리 서로 통신할 때 사용하는 데이터 통로가 바로 버스다.
- 주소 버스: 어디에 저장하고 어디에서 읽을지 결정
- 데이터 버스: 실제 데이터가 흐르는 통로
- 제어 버스: 읽기·쓰기·인터럽트 같은 제어 신호 전달
버스 폭이 넓을수록, 버스의 클럭 속도가 높을수록 한 번에 이동되는 데이터량이 증가해 컴퓨터의 전체 성능에 영향을 준다.
마무리
컴퓨터 구조는 어렵게 보이지만, 핵심은 단순하다.
컴퓨터는
하드웨어라는 몸
위에
소프트웨어라는 정신
이 올라가고,
CPU는
명령어를 해석해 RAM에 있는 데이터를 처리하며,
입출력장치는 그 결과를 사람에게 보여준다.
이 흐름만 잡혀 있어도 이후에 배우게 될 CPU 동작 원리, 명령어 사이클, 메모리 계층 구조, 인터럽트 처리 같은 내용들이 자연스럽게 연결된다.
단어장 (한국식 한자 + 영어 + 어원 정리)
하드웨어(硬體) / hardware
굳을 경(硬), 몸 체(體)
hard(단단한) + ware(물건·상품의 고어)
소프트웨어(軟體) / software
부드러울 연(軟), 몸 체(體)
soft(부드러운) + ware
중앙처리장치(中央處理裝置) / CPU(central processing unit)
가운데 중(中), 가운데 앙(央), 곳 처(處), 다스릴 리(理), 꾸밀 장(裝), 둘 치(置)
central(중심) + process(procedere ‘앞으로 나아가다’) + unit
기억장치(記憶裝置) / memory
기록할 기(記), 생각 억(憶), 꾸밀 장(裝), 둘 치(置)
memor(기억하다, 라틴어 memorare)
보조기억장치(補助記憶裝置) / storage
도울 보(補), 도울 조(助), 기록할 기(記), 생각 억(憶)
store(instaurare ‘채우다’) + -age
입력장치(入力裝置) / input
들 입(入), 힘 력(力)
in(안으로) + put(놓다)
출력장치(出力裝置) / output
날 출(出), 힘 력(力)
out(밖으로) + put(놓다)
버스(匣路) / bus
상자 갑(匣), 길 로(路)
omnibus(모두를 위한 → 데이터를 한 통로로 실어나른다는 의미 확장)
레지스터(記錄器) / register
기록할 기(記), 기록할 록(錄), 그릇 기(器)
reg-(rule 계열 어근)
어셈블리어(配列語) / assembly language
나눌 배(配), 벌릴 렬(列), 말씀 어(語)
as-(toward) + semble(같다, simul ‘together’)
기계어(機械語) / machine code
틀 기(機), 기계 계(械), 말씀 어(語)
machine(mēkhanē 도구) + code(부호)
명령어(命令語) / instruction
목숨 명(命), 하여금 령(令), 말씀 어(語)
in(안으로) + struct(쌓다, struere)
연산코드(演算碼) / opcode
펼 연(演), 셈 산(算), 부호 마(碼)
operation(operari ‘일하다’) + code
오퍼랜드(目標數) / operand
눈 목(目), 표 표(標), 셈 수(數)
oper-(일하다) + -and(해야 하는 것)