반응형
1. 컴퓨터의 이해
우린 완성되어 있는 컴퓨터만 보면서 살아갑니다. 그러다 보니 컴퓨터는 하나의 마법처럼만 보입니다. 하지만 크기나 모양에 상관없이 구조는 동일합니다.
사람이 남자,여자,아이,노인,백인,흑인이더라도 사람이라는 점에서 동일하듯이, 노트북, 스마트폰, 드론, 로봇, 무인자동차 모두 다 컴퓨터입니다.
그럼 컴퓨터는 무엇으로 이뤄져 있을까요? 크게 3가지로 나뉩니다.
CPU, RAM, HARD DISK(SSD) 이지요. 이 세가지의 역할만 이해하면 컴퓨터의 원리를 알 수 있습니다. (다나와에서 노트북 살때도 도움이 됩니다. )
1.1.1 CPU (Central Processing Unit, 중앙 처리 장치)
- CPU는 고속 계산장치인데요. 사람의 뇌와 같은 역할을 합니다. 단순히 고속 계산 장치라고 하면은 감이 안 올 텐데요. CPU는 보통 Hz(헤르츠)라는 단위로 표시하는데 1초당 깜빡이는 횟수를 나타냅니다.
- 저렴한 20만원 짜리 노트북의 경우 1.8 GHz(기가 헤르츠)의 CPU를 쓰는데요. 기가 헤르츠가 10^9(1억)이니 1억번이나 깜빡인다고 할 수 있습니다. 작은 칩 속에 놀라운 비밀이 있는 것이죠.
- CPU는 덧셈, 뺄쎔을 엄청나게 빠른 속도로 하는 기계입니다. 다른 거는 하나도 못합니다. CPU는 이진법으로 밖에 계산을 못합니다. 0과 1만 이해할 수 있는 거죠. 어떻게 보면 멍청한 기계인데, 이 기계를 기반으로 인공지능을 만든다니 놀랍지 않나요?
- 인텔이 CPU를 만든 덕분에 세계에서 가장 큰 기업이 되었지요. 그만큼 CPU는 중요합니다.
- 손정의 소프트뱅크 회장이 투자한 ARM(35조에 인수)은 모바일용 CPU를 설계하는 회사입니다. CPU가 얼마나 IT업계에서 중요한지 알 수 있지 않나요?
1.1.2 RAM(Random Access Memory, 램)
- RAM은 임시 기억 장치인데요. CPU가 하려는 값을 잠시 저장했다가 CPU에서 계산할 때 씁니다. 우리도 외워야할 영어 단어나, 할 일을 종이에 적거나 스마트폰에 적어두듯이 컴퓨터도 할 일을 다른 데 적어두는 거죠. 그게 바로 RAM입니다.
- RAM은 왜 필요할까요? 다 CPU에서 하면은 편할텐데 굳이 RAM을 만들어 머리 아프게 하는 걸까요? 바로 경제적 이유때문입니다. CPU는 만들기도 어렵고 가격이 비쌉니다. 한때는 전세계에서 2개의 회사만 만들정도로 독점이 심했습니다.
- 결국 RAM은 비싼 CPU를 효율적으로 쓰기 위해 만들어졌습니다.
- RAM은 큰 문제가 있는데 전원을 끄면은 저장된 게 사라집니다. 잠깐 밖에 기억을 못합니다. 문서나 PPT 작업을 하다가 날아간 기억이 있으시죠? 이게 다 RAM에다만 저장을 해서 생긴 일입니다. 이를 해결하고자 나온 게 하드 디스크입니다.
1.1.3 HARD DISK(하드 디스크, 보통 SSD)
- 하드 디스크는 영구 기억 장치인데요. 한번 저장된 데이터는 물리적 충격이 없는 이상 계속 보존됩니다. 하드 디스크를 집어 던지거나, 강하게 때리지 않는 이상 데이터를 보관, 저장합니다. 뇌의 장기 기억과 비슷하죠. 어렸을 떄 배운 외국어나, 수학공식은 시간이 지나도 안 까먹잖아요. 그게 다 장기 기억으로 옮겨갔기 때문입니다.
- 얼핏 봐도 하드 디스크가 제일 좋아보이는데 왜 굳이 RAM을 쓸까요? 바로 속도 문제입니다. RAM에 비하면 하드 디스크는 굼뱅이 수준이거든요. CPU가 바로 하드디스크에서 데이터를 찾아야 했다면 컴퓨터 켜는 데만도 1시간은 걸렸을 거에요.
1.1.4 CPU, RAM, HARD DISK의 연관성
문서 프로그램을 실행하는 걸 생각해봅시다. 어떻게 하드디스크로부터 CPU까지 연결이 될까요?
-1. 우리가 소프트웨어를 쓰려면 일단 하드 디스크에 저장되었는지 보고, 디스크에 있는 데이터를 불러옵니다.
-2. 램에다 소프트웨어를 올리고 동작을 할 준비를 합니다.
-3. 필요한 만큼 CPU에서 연산을 하며 소프트웨어를 동작시킵니다.
요약하자면 아래와 같아요
cpu - 계산 장치, 뇌와 유사
ram - 단기 기억 장치, 잠깐 계산 결과를 기억함
disk - 장기 기억 장치.
항상 기억하고 있어 주세요.
반응형
'안드로이드 (Android)' 카테고리의 다른 글
힐트 Hilt 안드로이드에서 의존성 관리하기 (9) | 2022.04.07 |
---|---|
안드로이드 레이아웃, 생명주기 (0) | 2018.10.24 |
안드로이드를 위한 자바 - 클래스 (2) | 2018.10.24 |
안드로이드를 위한 자바 - 변수, 자료형, if, for (0) | 2018.10.14 |