
컴퓨터 구조는 컴퓨터를 다루는 프로그래머라면 반드시 알아야 하는 기본 지식이다.
개발 단계에서는 문제 없이 동작하더라도 실제 라이브 서비스를 개시했을 때는 개발 단계에서 예상했던 동작과 동일하게 작동하지 않는 상황이 자주 일어날 것이다.
이 때, 컴퓨터 구조에 대해 알고 있는 상태라면 모르는 것보다 문제 상황 파악 및 해결을 빠르게 할 수 있을 것이다.
폰 노이만 모델 또는 프린스턴 구조라고도 불린다.
1945년 존 폰 노이만이 제시했다고 알려진 컴퓨터 구조로, 현재 일반적으로 사용되는 컴퓨터들은 모두 폰 노이만 구조를 따르고 있다.
폰 노이만 구조의 핵심은 CPU와 메모리를 분리하여 명령어를 따로 저장하는 프로그램 내장 방식이다.
기존에 하나의 기기를 스위치로 조작하던 방식에서 CPU와 메모리를 분리하고, 연산 작업을 프로그램 메모리에 순서대로 저장한다.
그리고 해당 연산 작업이 필요해질 때 저장해놓은 프로그램을 찾아 데이터 영역으로 꺼내온 뒤 입력 값과 함께 CPU에 전달하여 연산 작업을 진행한다.
그리고 CPU에서 데이터 연산을 마친 뒤 다시 메모리에 저장한다.

폰 노이만 구조를 따르는 컴퓨터는 크게 CPU, 기억장치(메모리), 입출력 장치 로 구분되어져 있다.
CPU는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리한다.
메모리에 저장된 명령어를 읽어 들이고, 읽어들인 명령어를 해석하고 실행하는 부품이다.
CPU 내부를 구성하는 요소에 가장 중요한 세가지가 있다.
메모리는 현재 실행되는 프로그램 명령어와 데이터를 저장하는 부품이다.
프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.
컴퓨터가 빠르게 작동하기 위해서는 메모리 안에 저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다.
메모리에 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(address) 라는 개념이 사용된다.
컴퓨터에서 주소를 활용하여 메모리 내 원하는 위치에 접근 가능하다.
반도체 칩으로 구성되어 있어 고속 접근이 가능하지만 가격이 높고 면적을 많이 차지하여 저장 용량에 한계가 존재한다.
또한 전원이 꺼지면 데이터가 지워지는 휘발성 메모리를 가진 저장장치이다.
하드 디스크, SSD, 플래시 메모리와 같은 비휘발성 메모리를 가진 저장장치로, 저장 밀도가 높고 저가이지만 속도가 느리다.
CPU에서 당장 필요하지 않은 많은 양의 데이터나 프로그램을 저장한다.
마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치이다.

메인 보드는 위에서 설명한 컴퓨터의 핵심 부품들을 부착할 수 있는 슬롯과 연결 단자가 있는 판으로 컴퓨터의 각 부품에 전원을 공급하고 부품 간에 신호를 주고 받는 통로 역할을 한다.
메인 보드가 이러한 역할을 수행할 수 있는 이유는 메인 보드 내부에 버스(bus)라는 통로가 존재하기 때문이다.
버스에도 여러 가지 종류가 있으며, 컴퓨터의 핵심 부품들을 연결하는 가장 중요한 버스를 시스템 버스 (system bus)라고 부른다.
시스템 버스는 세가지 버스로 구성되어 있다.

제어 버스를 통해 '메모리를 읽는다.' 라는 제어 신호가 전달된다.
주소 버스를 통해 메모리 읽기를 실행할 '1번 주소' 라는 주소 데이터가 전달된다.
메모리는 제어 버스와 주소 버스를 통해 전달 받은 데이터를 바탕으로 '메모리 1번 주소의 데이터 읽기' 를 수행하고, 1번 주소에 저장되어 있는 데이터는 데이터 버스를 통해 전달된다.

제어 버스를 통해 '메모리에 데이터를 저장한다.' 라는 제어 신호가 전달된다.
주소 버스를 통해 메모리 쓰기를 실행할 '5번 주소' 라는 주소 데이터가 전달된다.
데이터 버스를 통해 저장하고자 하는 데이터인 '220' 이라는 데이터가 전달된다.
메모리는 세 개의 버스에서 전달 받은 데이터를 통해 메모리 5번 주소에 220이라는 값을 저장한다.
[컴퓨터 구조] 1. 컴퓨터의 기능과 기본 구조
1.1.2. 컴퓨터 구조 + 운영체제
컴퓨터공학부: 컴퓨터 구조
[컴퓨터 구조] 컴퓨터의 4가지 핵심 부품: CPU, 메모리, 보조기억장치, 입출력장치
컴퓨터를 구성하는 기본 요소들
Chapter 01: 컴퓨터 구조 시작하기