하드웨어(Hardware)란 컴퓨터를 구성하고 있는 모든 장치나 부품을 의미한다.
컴퓨터는 장치 자체가 아니라 여러 장치가 함께 동작하는 일종의 시스템이다.
중앙 처리 장치(CPU : Central Processing Unit)
프로그램에 정의된 모든 일(산수르 논리, 입출력 연산)을 실제로 수행하는
컴퓨터의 구성요소
주기억 장치(Main Memory)
프로그램 수행에 필요한 프로그램과 데이터를 저장하고 있는 영역
주기억 장치에 저장된 모든 프로그램과 데이터는 컴퓨터를 ShutDown하거나
플러그를 뽑으면 사라진다.
보조 기억 장치(Secondary Storage Device)
일반적으로 하드 디스크(Hard Disk)라고 하며 CD/DVD 드라이브도 이 장치에 속한다. 컴퓨터가 ShutDown 되어도 오랜 기간 데이터를 유지한다.
하지만 컴퓨터는 보조 기억 장치에 저장된 프로그램을 직접 실행할 수 없다.
좀 더 속도가 빠른 주기억 장치로 프로그램이 전송되고 난 후에 실행할 수 있다.
입력 장치(Input Device)
외부로부터 데이터를 모아 컴퓨터 내부로 들여보내는 장치를 의미한다.
키보드, 마우스, 마이크 등이 이에 해당한다.
출력 장치(Output Device)
데이터를 외부로 내보내기 위한 장치를 의미한다. 모니터와 프린터가 이에 해당된다.
컴퓨터가 수행하는 모든 것을 제어하는 것을 소프트웨어(Software)라고 한다.
일반적으로 소프트웨어는 시스템 소프트웨어(System Software)와
응용 소프트웨어(Application Software)로 구분된다.
시스템 소프트웨어
기본 동장 제어, 컴퓨터 내부 동작 제어, 연결된 장치 제어 등
윈도우, 리눅스, 맥OS, 안드로이드, IOS와 같은 '운영체제(Operating System)' 또한 시스템 소프트웨어이다.
응용 소프트웨어
시스템 소프트웨어를 제외한 웹 브라우저, 워드프로세서, 게임 등과 같은
거의 모든 프로그램은 응용 소프트웨어에 해당한다.
주기억 장치는 컴퓨터를 처음 부팅했을 때 완전히 비어있는 상태에 있는데,
이때 컴퓨터는 가장 먼저 하드디스크에서 주기억 장치로 운영체제를 전송한다.
운영체제가 주기억 장치로 전송되면 어떠한 프로그램도 수행할 수 있다.
프로그램은 하드 디스크와 같은 보조 기억 장치에 저장되고,
프로그램을 컴퓨터에 설치할 때 그 프로그램은 실제로 하드 디스크에 복사된다.
프로그램이 수행될 때는 하드 디스크에서 주기억 장치로 전송된
프로그램의 복사본이 수행되는 것이다.
컴퓨터가 이해 가능한 저수준 언어(Low-level language)
기계어로 작성된 모든 명령문과 명령어는 전부 0과 1로 이루어져 있다.
사람이 쉽게 이해할 수 있는 고급 언어(High-level language)를
기계어로 번역해주는 프로그램으로, 번역이 끝나면 컴파일러는 더 이상 필요가 없다.
고급 언어로 작성한 명령문을 번역함과 동시에 수행하는 프로그램이다.
즉, 인터프리터는 프로그램 내의 각 명령문을 읽은 후에 그것을
기계어 코드로 번역하며, 곧바로 수행한다.
프로그래머가 고급 언어로 작성한 명령문을 '소스코드(Source code)' 혹은
단순히 '코드(Code)'라고 한다.