안녕하세요, 오늘부터는 컴퓨터 공학에 대해 공부해보려 합니다. 비전공자로서 스스로 쉽게 이해하고 오래 기억에 남도록, 또 업무에 적용 및 응용도를 높일 수 있도록 목표하겠습니다.
컴퓨터는 우리가 입력한 명령을 받아서 처리(연산)을 하고, 결과를 출력한다. 이 과정은 단순하지만 내부적으로 여러 하드웨어와 소프트웨어가 협력해서 작동한다(상호의존적 관계).
컴퓨터의 4가지 핵심 기능
컴퓨터는 단순한 계산기 이상의 일을 수행하는 복잡한 정보 처리 시스템이다. 하지만 그 작동 원리는 의외로 단순한 흐름으로 요약된다.
입력 → 처리 → 저장 → 출력
이 4단계 구조는 모든 디지털 시스템의 근간이 되는 작동 방식이다.
1. 입력(Input) - 키보드, 마우스, 터치스크린 같은 장치를 통해 데이터를 입력 [컴퓨터와 상호작용의 시작점]
2. 처리(Processing) - CPU(중앙처리장치)가 연산 및 데이터 처리 [Fetch → Decode → Execute]
3. 저장(Storage) - RAM, SSD, HDD 등에 데이터를 저장 [프로그램 실행 → SSD에서 RAM으로 불러와짐 → CPU는 RAM에 적재된 명령어 처리]
4. 출력(Output) - 모니터, 스피커 등을 통해 사용자에게 결과 출력
이 4가지가 조합(협력)되어 컴퓨터는 우리가 원하는 작업을 수행하게 된다.
예시: 웹사이트에 접속할 때
주소창에 URL 입력(입력) → 브라우저가 요청 분석 후 서버에 접속(처리) → HTML, CSS, JS 파일을 다운로드 후 메모리에 저장(저장) → 브라우저가 웹페이지를 렌더링하여 화면에 표시(출력)
* RAM: 작업 공간
* SSD: 하드디스크 드라이브
* HDD: 솔리드 스테이트 드라이브
하드웨어 : 컴퓨터의 물리적 인프라
컴퓨터 하드웨어(computer hardware, H/W)는 케이스, 중앙 처리 장치, 모니터, 자판, 컴퓨터 기억 장치, 그래픽 카드, 사운드 카드, 메인보드와 같은 컴퓨터의 물리적 부품을 의미한다. 입력, 연산, 제어, 기억, 출력 등 다섯 가지 기능을 구현하기 위해 컴퓨터는 여러 가지 부품들로 구성되어 있다.
(출처: 위키백과)
폰 노이만 구조
현대의 모든 컴퓨터 템프릿은 헝가리 수학자 폰 노이만이 1945년에 제안한 '폰 노이만 구조'로, 컴퓨터가 프로그램과 데이터를 동일한 메모리에 저장하면서 처리하는 방식을 말한다.
폰 노이만은 알베르트 아인슈타인, 앨런 튜링과 함께 20세기를 대표하는 과학자 중 한 명으로 평가 받는다. 현대 컴퓨터의 아버지라고도 불린다.
1. 작동 원리 - "명령어 순차 실행"
1) 명령어 읽기(Fetch): 메모리에서 다음 명령어를 읽어온다.
2) 명령어 해석(Decode): CPU가 명령어를 분석해서 어떤 작업인지 파악한다.
3) 명령어 실행(Execute): 연산장치가 계산하거나 메모리에 접근하거나 입출력을 수행한다.
2. 폰 노이만 구조의 한계 - "폰 노이만 병목 현상"
1) CPU는 메모리에서 명령어와 데이터를 한 번에 하나씩 가져올 수 있다.
2) CPU는 빠는데 메모리는 느려서, CPU가 대기하는 시간이 생긴다.
컴퓨터의 주요 하드웨어 구성 요소
1. 중앙처리장치(Central Processing Unit)
- CPU
- 역할: 컴퓨터의 두뇌 역할로, 명령어를 해석하고 연산을 수행하며 전체 시스템을 제어
- 구성
- ALU(산술 논리 연산장치) - 기본적인 산술 및 논리 연산 수행
- CU(제어 장치) - 명령어의 흐름을 관리하고 하드웨어 간 신호 조정
- 레지스터(Register) - 초고속 임시 저장 공간으로, 연산 속도 극대화
- 특징
- 멀티코어: 여러 개의 코어가 동시에 작업을 분담하여 병렬 처리 성능 향상
- 하이퍼스레딩(Hyper-Threading): 하나의 코어가 두 개의 스레드를 실행하도록 하여 처리량 증가
2. 기억장치(Memory & Storage)
- 주기억장치(Main Memory) - "RAM"
삼성전자 PC133 SDR SDRAM(나무위키)
- 역할: 실행 중인 프로그램과 데이터의 임시 저장(단기기억)
- 종류: DRAM(일반적), SRAM(캐시)
- 특징: 휘발성, 속도 빠름
- 보조기억장치
- HDD(하드디스크 드라이브)
2.5" HDD (IDE, SATA 방식) (나무위키)
- 자기 디스크 방식, 속도 느림, 용량 큼
- SSD(솔리드 스테이트 드라이브)
M.2 SSD (나무위키)
- 반도체 기반 저장, 속도 빠름, M.2 NVMe 방식 등
- 비휘발성, 영구 저장
- HDD(하드디스크 드라이브)
* 휘발성 메모리: 예를 들어, 웹 브라우저를 열면 RAM에 데이터를 올려놓고 빠르게 접근하지만, 브라우저를 닫으면 RAM에서 사라짐
3. 입출력 장치(Input/Output Devices)
- 입력 장치
- 키보드, 마우스, 터치패드, 마이크, 스캐너 등
- 역할: 사용자 명령 또는 데이터를 컴퓨터로 전달
- 출력 장치
- 모니터, 프린터, 스피커 등
- 역할: 처리 결과를 사용자에게 보여줌
4. 연결 및 통신 장치
- 메인보드(Motherboard)
- 모든 하드웨어가 연결되는 중앙 허브 역할
- CPU, RAM, 저장 장치, 그래픽 카드 등이 연결되어 소통할 수 있게 해줌
- 메인보드에 따라 지원하는 부품의 종류와 성능이 달라짐
- 버스(Bus)
- 데이터 버스, 주소 버스, 제어 버스 등
- CPU, 메모리, 입출력 장치를 연결하는 데이터 통로
5. 전원 공급 장치(Power Supply)
- 각 부품이 필요한 전력을 공급하는 역할
- 전력이 부족하거나 불안정하면 시스템이 오작동할 수도 있음
소프트웨어 : 하드웨어를 구동하는 논리적 계층
소프트웨어의 2가지 종류
1. 시스템 소프트웨어(운영체제, OS)
- 컴퓨터의 모든 부품을 관리하고, 프로그램이 실행될 수 있도록 도와줌
- 대표적인 운영체제(OS)
- Windows - 직관적인 인터페이스
- macOS - 애플 기기에 최적화
- Linux - 오픈소스 기반, 개발자 친화적
- 운영체제가 하는 일
- CPU, 메모리, 저장 장치 등 하드웨어 관리
- 파일 시스템 운영(파일 저장, 삭제, 복구 등)
- 사용자 인터페이스 제공
- 운영체제가 없다면?
- 컴퓨터가 켜지기는 하지만, 아무것도 할 수 없음
- 일일이 코드로 명령해야 함
2. 응용 소프트웨어(Application Software)
- 사용자가 직접 실행하는 프로그램들
- 예: 웹 브라우저, 문서 작성 프로그램, 게임, 사진 편집 프로그램 등
컴퓨터는 위 과정을 거치며 동작한다.
다음은 이해에 도움이 되는 질문과 그에 대한 답이다.
CPU가 빠르면 무조건 좋은 걸까?
→ ❌, CPU의 성능은 중요하나, 다른 부품(RAM, 저장 장치 등)과 균형이 맞아야 한다. 만약 CPU만 빠르고 다른 부품이 느리면 병목현상이 생길 수 있다.
💡 예제:
- CPU가 아무리 빠르더라도 RAM이 부족하면 실행 중인 프로그램이 느려질 수 있음
- SSD 대신 느린 HDD를 쓰면 CPU가 처리한 데이터를 저장하는 속도가 느려져 전체 시스템 속도가 떨어질 수 있음
- GPU(그래픽카드)가 필요 없는 작업에서는 CPU가 더 중요하지만, 게임이나 영상 편집처럼 그래픽 연산이 많은 작업에서는 GPU가 더 중요한 경우도 있음
RAM이 많으면 컴퓨터가 안 느려질까?
→ ❌, RAM의 역할은 실행 중인 프로그램이 사용하는 데이터를 저장하는 것이다. 만약 RAM이 부족하면 컴퓨터는 SSD/HDD를 가상 메모리로 사용하는데, 이 과정이 느려서 성능이 떨어진다. 하지만 RAM이 너무 많아도 필요 이상이면 그냥 놀고 있는 메모리가 된다.
💡 예제:
- 일반적인 웹서핑, 문서 작성만 한다면 8GB~16GB RAM이면 충분
- 하지만 영상 편집, 3D 렌더링, 머신러닝 같은 무거운 작업을 한다면 32GB~64GB RAM이 필요할 수도 있음
SSD가 HDD보다 빠른 이유는?
→ ✅, HDD는 데이터를 읽을 때 회전하는 디스크에서 물리적으로 읽어야 하기 때문에 느리다. 반면, SSD는 전자 회로에서 직접 데이터를 처리해서 훨씬 빠르다. 그래서 요즘은 SSD가 보다 기본 저장 장치로 사용된다.
운영체제가 다르면 프로그램 실행 방식도 달라질까?
→ ✅, 설치 파일 형식도 다르고 명령어도 다르다.
'컴퓨터공학 > 컴퓨터 구조와 작동 원리' 카테고리의 다른 글
[컴퓨터공학] 컴퓨터 개념 기초 | 메모리 계층 구조 (0) | 2025.03.24 |
---|---|
[컴퓨터공학] 컴퓨터 개념 기초 | CPU가 명령어를 실행하는 방법 - Fetch, Decode, Execute 사이클 완전 정복 (0) | 2025.03.24 |
[컴퓨터공학] 컴퓨터 개념 기초 | 컴퓨터가 숫자를 표현하는 방법(2의 보수, 고정소수점 등) (0) | 2025.03.24 |
[컴퓨터공학] 컴퓨터 개념 기초 | 비트, 바이트, 이진수 개념 (0) | 2025.03.24 |