컴퓨터(Computer)란 무엇인가?
목차
0. 들어가며
1. 컴퓨터(computer) 명칭의 이해
2. 컴퓨터의 시초
3. 현대 컴퓨터의 개념과 구성요소
4. 컴퓨터의 동작
...
n. 마치며
(... 추후 업데이트)
0. 들어가며
내가 처음 컴퓨터를 본 건 초등학교 시절 아버지가 윈도우 95가 설치된 컴퓨터를 사오시면서부터였다. 아마도 엑셀을 배우기 위해 컴퓨터를 시작하셨던 것으로 기억한다. (물론 아직도 잘 다루시는지는 모른다.) 그리고 서재 한 켠엔
그 유명했던 '컴퓨터, 일주일만 하면 전유성만큼 한다' 가 꽂혀있었고 플로피 디스크를 보관하는 보관함이 있었다. 그런 원시시절을 거쳐 지금까지 함께하며 컴퓨터를 조금씩 배워왔다. 본격적으로 프로그래밍과 IT에 대한 블로그를 시작하는 김에 컴퓨터에 대한 이야기를 전반적으로 한번 정리하고 가려한다.
1. 컴퓨터(computer) 명칭의 이해
무언가의 정체를 알아보기 위한 가장 쉽고 편한 방법은 단어의 어원을 알아보는 것이다. 'Computer (compute + -er)'는 말 그대로 '계산하는(compute) 무언가(-er)'라는 뜻이다. 여기서 보통 질문이 나온다. 그럼 계산기(calculator)는? 사실 영단어 compute와 calculate는 대부분 상황에서 함께 쓰일 수 있는 유의어지만, compute가 조금 더 복잡한 알고리즘 작업(논리 연산)을 말 할 때 주로 쓰인다. 여기서 조금 더 가면 소위 말해 뇌절일테니, 영어에 관심 있으신 분들은 아래의 링크를 통해 확인하자.
Difference between ‘compute’ and ‘calculate’
Tip: See my list of the Most Common Mistakes in English. It will teach you how to avoid mistakes with commas, prepositions, irregular verbs, and much more. The words “compute” and “calculate” are almost always interchangeable, as ar
jakubmarian.com
어쨋든 컴퓨터는 '복잡한 논리연산을 계산하는 무언가'이다. 그리고 컴퓨터라는 무언가는 트랜지스터(Transistor)라는 아주 작은 전기 스위치로 구성된 '기계'이다. 그렇다면 이 전기 스위치의 집합인 컴퓨터는 논리연산을 어떻게 계산할까?
바로 0과 1로 이루어진 이진법(binary number system)으로 계산한다. 쉽게 얘기하자면 트랜지스터를 끄면 0 켜면 1 두 가지로 이해하는 기계가 바로 컴퓨터이다. 즉, 컴퓨터는 0과 1만 알아듣는 기계이며, 이 법칙을 이용해 다양한 논리 연산과 저장을 수행한다. (참고로 우리 인간들은 손가락이 10개인 관계로 10진법으로 계산한다.)
결론은 컴퓨터(computer)란 '이진법을 이용해 복잡한 논리연산을 수행하는 전기 스위치'이다.
2. 컴퓨터의 시초
컴퓨터의 역사는 20세기 최고의 천재 중 다섯 손가락 안에 꼽히는 '앨런 튜링'으로부터 시작한다. 이 아저씨는 1936년에 '튜링머신(turing machine)'이라는 개념을 창조했는데, 컴퓨터의 일반적인 개념을 세운 가상의 기계이다. 튜링은 일정한 규칙을 지닌 기계를 제시하며 이 규칙을 충족하는 장치가 마련이 되면 거의 모든 계산을 모두 해낼 수 있다고 설명한다. 이 개념을 기반으로 장치를 개발하며 현대의 컴퓨터가 된 것이다. 튜링 아저씨의 이론은 계산하는 기계인 컴퓨터의 이론이 되었다. (아직 최초의 컴퓨터 에니악은 멀었다...)
이 아저씨 덕분에(?) 컴퓨터라는 편리한 기계가 시작되었다. 튜링머신의 개념을 알아보면 컴퓨터의 기본 원리가 무엇인지 어느정도 감이 잡힌다. 아주 아주 심심할 때 튜링머신에 대해 한번 알아볼만한 레퍼런스가 몇 개 있다.
Get updates, career advice, and job market news on the FutureLearn Blog
Find out how you can boost your career, make your CV stand out, and build the skills you need for your next career step.
www.futurelearn.com
튜링머신을 가장 짧고 굵게 설명하는 글
https://www.youtube.com/watch?v=IhyEGNn-7Uo
인도의 교수님이 설명해주시는 튜링머신. 29:00부터 깔끔한 설명이 나온다.
이제 컴퓨터의 시초에 대해 확인했으니, 현대에 우리가 쓰고 있는 컴퓨터는 어떤 의미로 통용되는지 알아보자.
3. 현대 컴퓨터의 개념
이전에 '이진법을 이용해 복잡한 논리연산을 수행하는 전기 스위치' 라고 컴퓨터를 정의했지만 이는 가장 이론적인 개념에 가깝다. 우리가 직접적으로 받아들이는 컴퓨터는
입력 받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 전자 장치
이를 하나 하나 풀어보자면
- ‘입력 받은 데이터를’
- 컴퓨터는 사람으로부터 데이터를 받아들인다..
- 즉, 컴퓨터는 데이터를 입력장치를 통해 입력받는다..
- ‘정해진 규칙대로’
- 정해진 규칙은 프로그램(Program)을 의미한다.
- 프로그램은 소프트웨어 및 애플리케이션이라고도 한다.
- ‘처리해서’
- 위에서 언급한 정해진 규칙대로 연산을 수행한다.
- 즉, 컴퓨터는 중앙처리장치를 통해 연산을 수행한다.
- ‘처리 결과를 저장하고’
- 컴퓨터는 데이터를 저장할 수 있는 장치를 가지고 있다.
- 즉, 컴퓨터는 처리 결과물을 기억장치에 저장한다.
- ‘출력하는 전자 장치이다’
- 컴퓨터는 데이터 처리 결과를 사람이 감각할 수 있는 형태의 정보로 사람에게 전달해준다.
- 즉, 컴퓨터는 처리 결과물을 출력장치를 통해 출력한다.
실제 컴퓨터는 계산하기 위한 입력과 처리, 저장, 출력을 수행하기 위한 다양한 장치(하드웨어)와 프로그램(소프트웨어)로 구성되어있다.
하드웨어 종류 | |||
장치 종류 | 장치이름 | 기능 | 구성 |
중앙처리장치 | CPU (Central Processing Unit) |
프로그램의 실행과 데이터 처리를 담당하는 컴퓨터의 핵심 장치 | 제어장치, 연산장치, 레지스터 |
주기억장치 | RAM (Random Access Memory) |
CPU와 직접 소통하며 프로그램을 수행하는 동안 필요한 모든 데이터들을 저장한다. 데이터 임의 접근이 가능하며 사용자가 직접 내용을 쓰고 저장하고 지울 수 있다. | 컨트롤러, 플래시메모리 |
ROM (Read Only Memory) |
사용자는 오직 읽을 수만 있는 메모리. 데이터 임의접근은 가능하다. 우리나라에선 주로 펌웨어로 불린다. (MP3P의 추억..) | 컨트롤러, 플래시메모리 | |
보조기억장치 | SSD (Solid State Drive) |
필요한 모든 정보를 반영구적으로 저장. 주기억 장치에 비해 데이터를 읽고 쓰는 속도가 느리다. SSD는 고체 상태 저장소라는 뜻으로 반도체의 전기적 성질을 이용해 셀(cell)에 전자를 저장하는 방식이다. | 컨트롤러, 플래시메모리 |
HDD (Hard Disk Drive) |
자기적인(magnetic) 원리를 이용해 자석의 정렬 구조에 따라 1과 0을 저장하는 보조기억 장치. 헤드가 돌아가며 자석 정렬구조를 읽는다. RAM이나 SSD와는 다르게 순자접근으로 원하는 데이터에 접근한다. | 플래터(원판), 커넥터, 헤드 | |
시스템 버스 | 데이터 버스 (Data bus) |
하드웨어 간 데이터 전달 통로 | 대부분 메인보드 내에 회로로 집적(Intergrated)되어 있음 또는 케이블로 구성 |
주소 버스 (Address bus) |
데이터가 어디에 도착해야하는지에 대한 정보를 전달하는 통로 | ||
제어 버스 (Processing bus) |
CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로 | ||
입력장치 | 키보드 (Keyboard) |
컴퓨터에 문자를 입력하는 장치 | PCB, 스위치 |
마우스 (Mouse) |
2차원 평면(X축, y축)의 움직임을 입력해주는 장치. GUI 소프트웨어로 인해 대중화 | 송신기, 수신기, 감지기 등 | |
출력장치 | 모니터(Monitor), 스피커(Speaker), 프린터(Printer) | 컴퓨터 내부로부터 사용자에게 사람이 감각할 수 있는 형태로 데이터를 출력해주는 장치 | - |
하드웨어는 간략하게(...) 이 정도로 구성 된다. 데이터를 입력-전달-처리-저장-출력을 위한 요소들이 컴퓨터를 구성하고 있다는 정도만 이해하면 된다.
소프트웨어는 물리적인 형태가 존재하지 않는 컴퓨터의 구성 요소로서, 하드웨어가 어떻게 동작해야 하는지 규정해놓은 명령어의 집합이자 프로그램이다. 소프트웨어는 크게 두 분류로 나뉜다.
소프트웨어 종류 | |||
종류 | 개념 | 대표 소프트웨어 | |
시스템 소프트웨어 | 응용 소프트웨어를 실행하기 위한 일종의 플랫폼 역할을 수행하며, 하드웨어와 직접적으로 소통하며 하드웨어 장치들이 제대로 동작할 수 있도록 한다. 보통 OS, 커널이 여기에 속한다. | OS(윈도우, 맥, 리눅스, 유닉스, 안드로이드, ...) 게임엔진(언리얼, 유니티, 이드텍, ...) 가상머신(닷넷, 자바., ...) 드라이버(하드웨어 추상화 역할) |
|
응용 소프트웨어 | 소프트웨어에서 시스템 소프트웨어를 제외한 모든 소프트웨어를 의미한다. 앱 또는 어플리케이션이라고도 부른다. | 오피스 프로그램, 게임, IDE 등 대부분 |
4. 컴퓨터의 동작
지금 우리의 컴퓨터에서 프로그램을 하나 실행하면 컴퓨터 내에선 어떤 동작이 이루어지는지를 보자.
1. 시스템 소프트웨어인 OS가 보조기억장치에 있는 프로그램의 데이터를 호출한다.
2. 프로그램 데이터를 주 기억장치인 RAM으로 적재한다(load). 여기서 로딩(loading)이 일어난다.
3. 프로그램이 모니터에 출력된다. 실행중인 프로그램은 프로세스(Process)로 불린다.
4. 사용자가 입력장치를 통해 데이터를 입력한다.
5. 프로그램의 규칙에 따라 데이터를 CPU가 처리한다.
6. 처리 결과를 RAM에 저장한다.
7. 결과를 모니터에 출력한다.
이런 형태로 컴퓨터는 동작한다.
n. 마치며
컴퓨터의 개념, 시초, 구성요소, 동작방식에 대해 아주 간단히 찾아보았다. 각각의 내용을 전문적으로 들어가다보면 논문이 나오게 될 정도로 양이 방대하다. 그래도 이정만 알아도 '컴퓨터는 이런 친구야'라는 말은할 수 있지 않을까 한다. 나중에 좋은 내용이 있으면 조금씩 추가해보려고 한다.