운이 좋게도 휴학 후 카카오테크 부트캠프 클라우드 네이티브 교육 과정에 합격하게 되어 6개월간 해당 교육과정을 수강할 수 있는 좋은 기회를 얻게 되었다. 5월 12일부터 본격적인 교육과정이 시작하기 전에 기본적인 CS지식에 관한 프리코스를 수강하면서 TIL을 꾸준히 작성하려고 한다. 전공과목을 수강하면서 들었던 내용들이 있긴 하지만 복습차원으로 교육 전에 들어놓으면 더욱 좋을 것 같다.

컴퓨터를 '미지의 대상'에서 '분석의 대상'으로
좋은 개발자에게는 뛰어난 문제 해결 능력이 필수적이다. 이를 위해서는 단순 프로그래밍 문법을 잘 알거나, 코드를 잘 짜는 능력 외에도 탄탄한 CS 지식이 받쳐줘야 하며, 컴퓨터를 세세하게 분석해보려는 습관이 필요하다.
'성능', '용량', '비용'을 고려한 개발

개발자는 위의 세 가지 요소를 고려해서 프로그램을 개발할 줄 알아야 한다. 서버 컴퓨터를 고를 때도, 실제 서버 컴퓨터 대신 클라우드 서비스를 활용할 때도, 이 세 가지 요소를 고려해 '효율적인' 계산을 해야 한다.
컴퓨터가 이해하는 정보: 데이터, 명령어
데이터에는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 비롯한 컴퓨터와 주고 받는 내부에 저장된 정보를 통칭하는 말이다. 중요한 점은, 컴퓨터는 어떤 형식이건 0과 1(이진수)로만 데이터를 받아드린다.
컴퓨터는 결국 명령어를 처리하는 기계다.
컴퓨터의 네 가지 핵심 부품: CPU, 메모리(RAM), 보조기억장치, 입출력장치

1. CPU

메모리에 저장된 명령어를 읽고, 해석하여 실행하는 부품이다.
CPU는 크게 3가지의 또 작은 구성요소로 이루어진다.



CPU의 가장 대표적인 작업을 간단하게 나열한 그림이다. 제어 신호를 통해 읽어들인 명렁어들은 레지스터에 저장되고, 제어장치는 이 명령어를 해석하며, ALU가 이 연산을 수행한다.
2. RAM(메모리)

'현재 실행'되는 프로그램의 명령어와 데이터를 저장하는 부품이다.
'현재 실행되고 있는'이 포인트다. 다른 말로 하면 process다.

또한 메모리에는 '주소'가 있어 특정 명령어와 데이터의 위치를 주소를 통해 알 수 있다.
3. 보조기억장치

메모리의 경우는 장치의 전원이 꺼지면 다 잃어버리게 되는 휘발성 장치이다.
보조기억장치는 메모리와 달리 전원이 꺼져도 보관될 프로그램을 저장하는 장치다.
즉, 메모리는 실행할 프로그램을 저장하고, 보조기억장치는 보관해야 할 정보를 저장한다.
4. 입출력장치
컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품이다.
참고로 보조기억장치도 장기적으로 보관해야할 정보를 저장하는 특수한 입출력장치 중 하나라고 봐도 무관하다. 보조기억장치 + 입출력장치를 다 통칭해서 block devices라고 하기도 한다.
5. 메인보드
이 4가지 부품들이 모두 모이는 부품이 메인보드(마더보드)이다.

메인보드 안에서는 'bus'라는 부품끼리의 정보를 주고받는 일종의 통로 역할을 하는 장치를 통해 정보를 주고받는다. 다양한 종류의 bus가 있고, 그 중에 컴퓨터 핵심 부품을 연결하는 버스는 System bus다.

System bus안에도 여러 가지 종류의 bus가 있고, 각 bus는 각각의 해당되는 정보를 전달한다.
이 파트를 들으면서 따로 개념적인 부분에서 AI에게 질문한 것은 없었다.
어렸을 때 부터 컴퓨터가 고장나면 '메인 보드가 나갔다'라는 말을 많이 들어봤었는데, 이 메인보드가 컴퓨터의 핵심 부품 4가지를 포함하고 있는 부분이었다.
내가 쓰고 있는 맥북에 있는 M칩도 CPU의 일종인지 궁금해서 AI한테 물어보았다.
애플의 M칩은 CPU를 '포함'하지만, 단순한 CPU가 아닌 그 이상을 담은 SoC(System on Chip)'이다.

전통적인 컴퓨터 구조면 메인보드에 여러가지 부품을 따로 꽂아서 조립한다. SoC는 이와 달리 손톱만한 칩에 컴퓨터 구도에 필요한 핵심 부품들을 모조리 통합해놓은 구조다. CPU, GPU, NPU, 통합 메모리 등이 다 포함되어있다.
CPU, RAM, GPU가 물리적으로 떨어져 있으면 언급했다싶이 bus를 통해서 서로 데이터를 주고받아야 한다. 이렇게 되면 시간도 지연되고, 전력 소모도 커지는 bottleneck(병목 현상)이 발생하는데, 애플은 이 부품들을 하나의 칩에 통합시켜 데이터 간의 이동 거리를 극한으로 줄임으로써 통신 속도는 매우 빨라지고, 전력은 매우 적게 먹는 구조를 SoC를 통해 구현해낸 것이다.
전공자는 가능하다면 아래 질문 중 하나 이상에 답해 주세요.