[이어드림스쿨 1주차] 컴퓨터 개론 (1)

KiwiChipKiwiChip
5 min read

컴퓨터를 잘 이해하는 것은 개발자로서 필수적인 능력이다.
아무리 뛰어난 코드도 실행 환경인 컴퓨터를 고려하지 않으면 성능이 떨어질 수 있기 때문이다.
특히, 내 컴퓨터가 아무리 좋더라도, 프로그램을 실행하는 사용자의 컴퓨터가 그렇지 않을 수 있다.
따라서 컴퓨터의 구조와 동작 방식을 이해하는 것이 좋은 개발자가 되는 첫걸음이다.


🔹 컴퓨터의 동작 방식

컴퓨터(Computer)란?

"컴퓨터(Compute) + er"라는 이름처럼, 컴퓨터는 계산을 수행하는 기계다.
컴퓨터는 크게 데스크톱, 노트북, 스마트폰, 아두이노 등 다양한 형태로 존재한다.

컴퓨터는 키보드, 마우스 등의 입력 장치를 통해 명령을 전달받고, 처리 후 결과를 출력 장치(모니터, 프린터 등) 를 통해 사용자에게 보여준다.
예를 들어, 엑셀 문서를 실행하면 저장된 데이터를 불러와 화면에 표시하는 방식으로 동작한다.

📌 컴퓨터에서 처리하는 데이터의 종류
✔ 숫자 (0, 1, 2, ...)
✔ 문자 (A, B, C, 가, 나, 다...)
✔ 이미지, 동영상, 사운드 등


🔹 데이터와 명령어 – 컴퓨터의 언어

컴퓨터는 데이터와 명령어로 동작하며, 기본적으로 0과 1(기계어) 만 이해할 수 있다.

✔ 기계어(Machine Language)

  • 컴퓨터가 이해할 수 있는 가장 낮은 수준의 언어

  • 0과 1의 이진수(Binary)로 구성됨

  • 사람이 직접 작성하기 어렵기 때문에, 다른 언어를 사용하여 변환해야 함

✔ 어셈블리어(Assembly Language)

  • 기계어와 1:1로 대응되는 저수준 프로그래밍 언어

  • 가독성이 높지만, 여전히 사용하기 어려운 편

  • 어셈블러(Assembler) 를 이용해 기계어로 변환됨

✔ 고급 프로그래밍 언어

  • 사람이 이해하기 쉬운 언어 (C, Python, Java 등)

  • 컴파일러(Compiler) 또는 인터프리터(Interpreter) 를 이용해 기계어로 변환됨

📌 프로그래밍 언어 변환 과정
기계어 ↔ 어셈블리어 ↔ 고급 프로그래밍 언어

컴퓨터는 기계어를 사용하여 데이터를 처리하고, 개발자는 프로그래밍 언어를 사용해 컴퓨터와 소통한다.


🔹 메모리 – 데이터를 저장하는 공간

컴퓨터에서 데이터를 저장하는 장치인 메모리(memory) 는 크게 주기억장치(RAM), 보조기억장치(SSD, HDD), 캐시, 레지스터 로 나뉜다.

✔ 기억장치의 종류 (속도 순)

기억장치 종류속도용량가격역할
레지스터가장 빠름매우 적음가장 비쌈CPU 내부에서 임시 저장
캐시 메모리매우 빠름적음비쌈CPU와 RAM 간 속도 차이를 줄임
주기억장치 (RAM)빠름보통보통실행 중인 데이터 및 명령어 저장
보조기억장치 (SSD, HDD)느림저렴영구적인 데이터 저장

📌 RAM (Random Access Memory) – 주기억장치

  • 컴퓨터에서 실행 중인 프로그램과 데이터를 임시 저장

  • 휘발성 메모리(Volatile Memory) → 전원이 꺼지면 데이터가 사라짐

📌 RAM의 종류

  1. SRAM (Static RAM)

    • 전원이 공급되는 동안 데이터를 유지함

    • DRAM보다 빠르지만 가격이 비싸고 용량이 작음

    • 주로 CPU 캐시 메모리(L1, L2, L3 캐시) 로 사용

  2. DRAM (Dynamic RAM)

    • 일정 시간마다 데이터를 새로고침(refresh)해야 함

    • 저렴한 가격과 높은 용량을 제공

    • 일반적인 RAM (DDR4, DDR5) 로 사용됨

  3. SDRAM (Synchronous DRAM)

    • CPU 클럭 신호와 동기화되어 동작하는 DRAM

    • 현대적인 RAM의 기본 구조 (DDR SDRAM, LPDDR 등)


📌 ROM (Read-Only Memory) – 비휘발성 메모리

  • 전원이 꺼져도 데이터가 유지되는 비휘발성 메모리(Non-Volatile Memory)

  • 부팅 과정에서 운영체제(OS)를 로드하는 역할 (BIOS, 펌웨어 저장소)

📌 ROM의 종류

  1. Mask ROM

    • 데이터를 한 번만 저장할 수 있음 (제조 시 미리 데이터가 입력됨)

    • 변경이 불가능하여 고정된 소프트웨어 저장에 사용

  2. PROM (Programmable ROM)

    • 한 번만 데이터를 기록할 수 있음 (사용자가 직접 데이터를 입력 가능)

    • 전기적으로 수정 불가능

  3. EPROM (Erasable Programmable ROM)

    • 자외선(UV)으로 데이터를 삭제하고 다시 기록 가능

    • 옛날 마더보드의 BIOS 칩 등에 사용됨

  4. EEPROM (Electrically Erasable Programmable ROM)

    • 전기적으로 데이터를 지우고 다시 기록 가능

    • 플래시 메모리(USB, SSD)도 EEPROM 기반

컴퓨터는 메모리 주소를 이용해 데이터를 식별하며, 주기억장치에 있는 데이터를 CPU가 처리하는 방식으로 동작한다.


🔹 CPU – 컴퓨터의 두뇌

CPU(Central Processing Unit)는 컴퓨터에서 데이터를 처리하는 가장 중요한 장치다.
CPU의 성능은 클럭 속도(Hz)와 코어 개수에 의해 결정된다.

✔ CPU의 주요 구성 요소

1️⃣ 산술논리 연산 장치(ALU, Arithmetic Logic Unit)

  • 덧셈, 뺄셈, 논리 연산(AND, OR, NOT) 수행

2️⃣ 제어 장치(Control Unit)

  • 명령어를 해석하고, CPU의 동작을 제어

3️⃣ 레지스터(Register)

  • CPU 내부에서 데이터를 임시로 저장하는 초고속 메모리

📌 논리 회로와 불 대수
컴퓨터의 논리 연산은 불 대수(Boolean Algebra) 를 기반으로 한다.
즉, 0과 1만을 이용하여 모든 연산을 수행하며, 이를 위해 논리 게이트(AND, OR, NOT 등)를 사용한다.


🔹 CPU 제어 장치

CPU의 제어 장치는 명령어를 해독하고 실행하는 역할을 한다.

📌 CPU 내부 주요 레지스터

  • 명령어 레지스터(IR) → 실행할 명령어를 저장

  • 메모리 주소 레지스터(MAR) → 명령어의 주소 저장

  • 메모리 버퍼 레지스터(MBR) → 데이터를 임시 저장

  • 프로그램 카운터(PC) → 다음에 실행할 명령어의 주소 저장

CPU는 이러한 레지스터를 활용하여 연산을 빠르게 수행하고, 전체적인 컴퓨터의 흐름을 제어한다.


🔹 기타 장치 – 컴퓨터를 구성하는 요소들

1️⃣ 입출력 장치

  • 입력 장치: 데이터를 입력하는 장치 (키보드, 마우스, 조이스틱 등)

  • 출력 장치: 처리된 데이터를 출력하는 장치 (모니터, 스피커, 프린터 등)

2️⃣ 보조 기억장치

  • 전원이 꺼져도 데이터를 보관하는 역할

  • 예시: SSD, HDD, CD-ROM, USB

📌 보조 기억장치는 주기억장치보다 속도가 느리지만, 영구적인 데이터 저장이 가능하다.


🔹 컴퓨터의 동작 흐름

✔ 시스템 버스 (System Bus)

컴퓨터 시스템 내에서 데이터를 주고받는 경로를 의미하며, 크게 3가지로 나뉜다.

시스템 버스 종류역할
제어 버스CPU가 명령을 전달하는 경로
주소 버스메모리 및 입출력 장치의 주소를 전송
데이터 버스데이터가 실제로 이동하는 경로

컴퓨터의 모든 장치는 메인보드(마더보드)를 통해 시스템 버스로 연결된다.


🔹 전체적인 컴퓨터 동작 과정

1️⃣ 전체 시스템의 동작 흐름

  1. 입력 장치로 데이터를 입력

  2. CPU가 데이터를 처리 (레지스터 & 연산 장치 활용)

  3. 결과를 메모리에 저장하거나 출력 장치로 전달

2️⃣ CPU의 동작 과정 (명령어 처리 사이클)

1️⃣ FETCH (인출) → 메모리에서 명령어를 가져옴
2️⃣ DECODE (해석) → 명령어를 해석
3️⃣ EXECUTE (실행) → 명령어를 실행

CPU는 이 과정을 반복하며, 사용자가 요청한 모든 작업을 처리한다.


🚀 정리

컴퓨터는 데이터와 명령어를 처리하는 기계이며, 다양한 하드웨어로 구성됨
CPU는 컴퓨터의 두뇌 역할을 하며, 명령어를 해석하고 연산을 수행
메모리는 데이터 저장을 담당하며, RAM(휘발성), ROM(비휘발성)으로 나뉨
컴퓨터의 모든 장치는 시스템 버스를 통해 데이터를 주고받음
컴퓨터는 FETCH → DECODE → EXECUTE 과정을 반복하여 동작

컴퓨터의 기본 개념을 잘 이해하면, 더 효율적인 코드를 작성하고 성능을 최적화하는 개발자가 될 수 있다.

0
Subscribe to my newsletter

Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

KiwiChip
KiwiChip

I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).