'이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽으면서 배운 점을 정리합니다.
컴퓨터가 이해하는 정보
개발자가 프로그래밍 언어로 작성한 소스 코드는 컴퓨터가 바로 이해할 수 없다. 그래서 소스 코드를 컴퓨터가 이해할 수 있는 정보로 변환한 후에 실행한다.
💡 컴파일 언어 vs 인터프리터 언어
컴파일 언어: 소스코드 - 컴파일 - 실행파일 - 실행 (Java, C/C++)인터프리터 언어: 소스 코드를 읽으면서 즉시 변환하고 즉시 실행 (Javscript)
컴퓨터가 이해할 수 있는 정보는 데이터 와 명령어 이다.
컴퓨터는 0과 1만을 이해할 수 있으므로, 데이터와 명령어 역시 0과 1로만 이루어져 있다.
명령어는 수행할 동작과 수행할 대상에 대한 정보가 있다. 수행할 대상에는 데이터 뿐만이 아니라 메모리 주소, 레지스터의 이름이 들어갈 수 있다.
이 명령어를 이해하고, 실행하는 주체가 CPU이다. CPU는 명령어 사이클에 따라 명령어를 처리한다.
컴퓨터의 핵심 부품
컴퓨터의 핵심 부품으로는 CPU, 메모리, 캐시메모리, 보조기억장치, 입출력장치가 있다.
CPU
CPU는 데이터와 명령어를 읽어들이고, 해석하고, 실행하는 부품이다.
CPU는 3가지 요소로 구성된다.
- 산술논리연산장치 (ALU): 명령어를 연산하는하는 요소
- 제어장치 (CU): 명령어를 해석해
제어 신호라는 전기 신호를 다른 장치로 내보내는 장치 레지스터(register): CPU 내부의 임시 저장 장치이자 데이터와 명령어를 처리하는 중간값을 저장
메모리
메모리는 실행 중인 프로그램을 구성하는 데이터와 명령어를 저장하는 부품이다. 즉 프로그램이 실행되려면 프로그램을 구성하는 데이터와 명령어가 메모리에 있어야 한다.
CPU가 원하는 정보로 접근하기 위해서는, 메모리의 주소가 필요하다.
메모리에 전원이 공급되지 않으면, 저장된 정보가 모두 사라지고 이를 휘발성이라고 한다.
CPU가 조금이라도 더 빨리 메모리에 저장된 값에 저장하기 위해, CPU와 메모리 사이에 캐시 메모리가 존재한다.
보조 기억 장치
보조 기억 장치는 비휘발성 장치이므로, 꺼져도 정보가 사리지지 않는다. CD-ROM, DVD, 하드 디스크 드라이브, 플래시 메모리, 플로피 디스크와 같은 저장장치가 보조기억장치의 일종이다.
저장된 정보를 안전하게, 안정적으로 보관하는 것이 보조 기억 장치의 본분이다. RAID를 이를 구현하는 기술이다.
입출력장치
입력 장치에는 마우스, 키보드가 있다. 출력 장치에는 스피커, 모니터, 프린터가 있다.
메인 보드/버스
메인 보드는 컴퓨터의 핵심 부품들을 고정하고 연결하는 기관이다.
메인 보드에 연결된 부품들이 각자의 역할을 수행하기 위해 정보를 주고받는 통로를 버스라고 한다.