우리에게 익숙한 컴퓨터(computer)는 '계산을 하는 사람'의 의미였고
파생된 단어인 컴퓨팅(computing)은 계산을 하는 그 행위 자체를 의미했다.
현대 사회에서 컴퓨터는 단순한 계산을 넘어
전기적인 신호를 통해 우리 삶의 중요한 부분을 차지하고 있고,
컴퓨팅한다는 것은 컴퓨터의 기술 및 자원을 활용해 개발과 같은 모든 활동을 일컫는 말이 되었다.
우선 우리가 자주 사용하는 컴퓨터를 알기 위해서는 컴퓨터 그 자체인 '하드웨어'에 중점을 둬서 살펴보자.
하드웨어(hardware)란 컴퓨터가 작동하는 데 필요한 물리적인 구성요소로서,
크게 범주를 나누면 대략 중앙처리장치(CPU), 임의 접근 기억장치(RAM), 하드 드라이브(HHD)
그리고 입출력 장치(ex. 키보드, 스피커, 모니터, 마이크, 캠 등등)로 나눌 수 있다.
CPU부터 살펴보자.
중앙처리장치인 CPU는 말에서도 알 수 있듯이 컴퓨터의 시스템 전체를 제어하는 장치로 인간의 두뇌에 빗댈 수 있다.
CPU를 제작하는 대표적인 회사는 인텔(Intel)과 AMD가 있다(최근에는 애플도 M1이라는 CPU를 자체 제작하였다).
이 둘은 라이벌의 구도로, 최근 상황으로 봤을 때는
라이젠의 주가가 미친 듯이 상승하며 인텔을 따라잡고 계속해서 상승세의 모습을 보이고 있다.
인텔과 라이젠 그 둘의 차이는 뭘까?
우선 모델 명부터 살펴보자.
인텔:
내 cpu는 i5-8400이다.
i 뒤에 붙은 숫자가 크면 클수록 좋다고 생각하면 된다.
굳이 범주로 나타내면,
i3 시리즈는 보급형
i5 시리즈는 메인스트림(걍 보통 제품)
i7 시리즈는 고성능
i9 시리즈는 킹왕짱짱맨 cpu
그리고 뒤에 붙은 숫자는 각 제품의 세대를 나타낸다.
나 같은 경우는 8400이니까 8세대 제품을 사용하는 것이다.
현재 기준으로 제일 높은 세대는 11세대이다.
그리고 모델명에서는 명시되어 있지만 cpu를 확인할 때 cpu의 코어 수도 중요하다.
내가 쓰는 제품인 i5-8400의 코어 수는 6개로 "헥사 코어"이다.
이처럼 cpu의 코어의 수가 2개 이상일 경우 그 제품을 멀티 코어 cpu라 부르고
2개는 듀얼 코어(dual-core)
4개는 쿼드 코어(quad-core)
6개는 헥사 코어(hexa-core)
8개는 옥타 코어(octa-core)
10개는 데카 코어(deca-core)
12개는 도데카 코어(dodeca-core)
라고 불린다.
우선 코어 역시 많으면 많을수록 성능이 더 좋고 비싸다.
코어의 역할은 쉽게 말해 '멀티 태스킹'이라고 생각하면 된다.
코어의 수가 늘어날수록 cpu는 다양한 작업을 동시에 보다 수월히 처리할 수 있다.
다만 주의해야 할 것이
무조건 듀얼 코어 cpu가 코어의 수가 하나인 싱글 코어 cpu보다 2배의 작업능력을 보여주는 것은 아니다.
RYZEN:
다음은 AMD사의 라이젠이다.
인텔사의 cpu의 모델명은 회사명과 동일한 intel이라는 이름을 사용하는 반면
amd사의 cpu는 ryzen이라는 이름을 사용한다.
(그래서 가끔 라이젠이 회사 이름인 줄 알고 혼동하시는 분도 계신다.)
우선 라이젠의 모델명도 intel 시리즈와 비슷한 부분이 많다.
AMD RYZEN 9 5900X를 살펴보자.
AMD = 회사명
RYZEN = 모델명
9 = 성능
(보통 3, 5, 7, 9로 나누어지고 3은 메인스트림, 5는 고성능, 7은 고사양 게임 가능용, 9는 고사양 게임 + 콘텐츠 제작용)
5900 = 세대
(맨 앞 숫자가 5이므로 5세대 제품이고 900이 의미하는 바는 성능지표다 숫자가 높을수록 좋음)
X = 특징
(만약 아무런 알파벳이 없다면, 아무 특징 없는 데스크톱 용 cpu라는 의미고 X는 보다 고성능의 특징을 가졌다는 의미)
인텔의 cpu의 경우는 각각의 코어가 물리적으로 서로 가깝게 연결되어 있고 같은 캐시 메모리를 공유한다.
따라서 작업의 지연속도가 짧다.
하지만 하나의 코어라도 고장이 난다면, 그 코어는 대체 불가능하며 고칠 수 없는 큰 단점이 있다.
반면 amd의 라이젠 모델 같은 경우는 기능을 담당하는 부분이 따로, 코어가 연결되어 있는 부분이 따로 있다.
따라서 인텔에 비해 작업의 지연속도는 길다.
하지만 인텔의 단점과 달리 만약 하나의 코어가 고장이 난다면, 대체할 수 있기 때문에 cpu 수리에 용이한 장점이 있다.
두 회사의 비슷한 성능의 cpu를 각각 비교해 봤을 때,
가격적인 부분에서 amd의 모델이 보다 저렴하기 때문에
아까 말했다시피 amd가 인텔의 뒤를 놀라운 성장 속도로 따라잡고 있다는 것은 당연한 이치인 것 같다.
다음은 임의 접근 기억 장치인 RAM이다.
램은 이름에서 알 수 있듯이 임의의 영역에 자유롭게 왔다 갔다 할 수 있는 장치이다.
(이게 뭔 개소리)😵💫
하지만 이렇게 말해도 직접 와닿지 않고 이해하기 어려우니 램을 책상으로 비유를 들어보자.
위에서 설명한 CPU를 사람이라 생각하고
RAM을 책상
그리고 HDD나 SSD를 갖가지 자료들과 책들이 꽂혀 있는 책장으로 생각해보자.
사람(CPU)이
책장(HDD/SSD)에서
자신이 원하는 자료나 책들(DATA)을 하나 씩 뽑아 놓고
열심히 찾고 있다고 가정했을 때
만약 책상(RAM)이 넓다면 동시에 많은 책들을 펴내서
원하는 것들을 발견할 수 있지만
책상(RAM)이 좁다면 동시에 작업하기에는 어려움이 있다.
따라서 RAM은 쉽게 말해 CPU와 HDD나 SSD(이 둘을 보조기억장치라 부른다)의
중간다리 역할을 한다고 보면 된다.
램의 특징으로 첫 번째는 휘발성(불에 잘 타는 거 아니다)을 들 수 있다.
여기서 말하는 휘발성이란,
컴퓨터가 작동될 때 램은 갖가지 자료들을 저장하고 있지만
만약 컴퓨터가 꺼지고 전력이 차단되면
저장한 자료들을 그대로 날려 보낸다.
여기서 설명하는 자료들은 물리적으로 완전히 사라진다는 의미가 아니라
원래 자료가 저장되어 있던 책장인 보조기억장치에 그대로 다시 돌려보낸다고 생각하면 된다.
그렇다면 우리는 왜 램을 사용할까?
그 이유는 보조기억장치에서 자료를 불러오거나 처리하는 속도가 상대적으로 느리고,
반면에 CPU에 저장되는 캐시 메모리는 처리속도가 굉장히 빠르지만
저장할 수 있는 공간이 매우 적기 때문에,
그 중간에서 다리 역할을 하는 존재가 필요하기 때문이다.
램에도 종류가 있는데 대표적으로 DDR2, DDR3, DDR4
그리고 곧 상용화될 예정인 DDR5가 있다.
DDR2는 동시에 4가지의 데이터를 처리할 수 있고,
DDR3와 DDR4는 동시에 8개의 데이터를 처리할 수 있지만,
속도면에서는 DDR4가 3보다 더 빠르다.
개발은 되었지만 아직 상용화되지 않은 DDR5는 16개의 데이터를 동시 처리할 수 있다.(갖고 싶다. 츄릅)
다음은 보조기억장치인 HDD와 SSD이다.
우선 HDD와 SSD를 구분하기 전에 주기억장치와 보조기억장치라는 말을 살펴보자.
위에서 살펴본 RAM은 주기억장치에 해당한다.
주기억장치의 역할은 중앙처리장치가 직접 데이터에 접근할 수 있는 장치를 말한다.
따라서 속도는 빠르지만 저장할 수 있는 공간이 상대적으로 적다.
보조기억장치는 반대로 주기억장치에 비해
데이터를 불러오는 속도는 느리지만 주기억장치보다 훨씬 더 많은 데이터들을 저장할 수 있다.
아까 위에서 RAM의 특징 중 휘발성에 대해서 설명했다.
보조기억장치의 특징은 영구성이다.
램과 달리 컴퓨터가 작동하지 않을 때, 즉 전류가 흐르지 않을 때도 보조기억장치는 데이터를 보존한다.
하지만 이 영구성이라는 게 물리적으로 무한히 영구하다는 의미는 아니다.
HDD는 자기성을 이용해 동작하기 때문에 외부의 자기장에 노출된다면 고장이나 데이터를 복구하기 어려울 수 있다.
SSD는 TBW(Total Byte Written)라는 데이터를 읽고 사용하는 데에 있어 제한을 나타내는 지표가 존재한다.
따라서 SSD의 TBW를 다 사용한다면 SSD는 더 이상 작동하지 않을 것이다.
따라서 HDD든 SSD든 자료를 저장할 때 항상 클라우드를 활용하여 백업하는 습관을 들이는 것이 좋다.
만약 SSD에 자신이 여태 모아 온 데이터들 넣어 놓다가 TBW를 다 사용한다면.. 정말 상상도 하기 싫다.
마무리하며
이외에도 컴퓨터는 그래픽 카드나, 입력받은 데이터를 가시적인 형태로 출력해 우리에게 보여주는 모니터나, 키보드 등 갖가지 것들로 이루어져 있다.
이러한 부품들, 하드웨어들을 전부 조립하거나 연결한 것이 컴퓨터이고 우리는 이 컴퓨터로 개발이나 활용을 하는 컴퓨팅이 가능하다.
대표적인 예로는 컴퓨터의 언어(C++, java, python)들을 활용하여 자신이 원하는 게임이나 프로그램 등을 만들 수 있고, android studio라는 sdk(소프트웨어 개발 킷)를 이용하여 코틀린이나 자바 같은 언어로 안드로이드 운영체제에서 실행될 수 있는 앱을 만드는 것도 가능하다(Apple의 운영체제에서는 다른 킷과 swift라는 언어를 사용해야 한다).
따라서 컴퓨터가 어떻게 작동하고 갖가지 활용법을 터득한다면 사실 상 우리가 컴퓨터로 할 수 있는 일은 무궁무진하다. 현대 사회에서 컴퓨터가 필수 요소인 만큼, 컴퓨터를 공부하는 자세도 필수가 되었다.
'CS' 카테고리의 다른 글
Abstract Data Type(추상적 자료형) (0) | 2021.08.13 |
---|---|
python으로 쉽게 설명하는 merge sort algorithm(합병 정렬) (1) | 2021.08.08 |
네트워크란? 인터넷이란? 그게 모야? (˵⚈ε⚈˵).feat(OSI 7 layers) (0) | 2021.07.23 |
비트(bit)의 표현을 잘 사용해야 하는 이유 (0) | 2021.07.18 |