컴퓨터 구조
- 컴퓨터 구조란?
: 컴퓨터는 어떤 구조로 이루어져 있을까?
=> 문제 해결 능력 상승, 성능/용량/비용 고려하면서 개발!
- 컴퓨터 구조는 크게 2가지
1) 컴퓨터가 이해하는 정보 : 데이터와 명령어
ex) 게임
- 데이터 : 게임 그래픽, 게임 음악, 성우 보이스, 컷씬 등
- 명령어 : 명령하는 언어
- 게임 = 데이터 + 명령어
2) 컴퓨터의 4가지 핵심 부품 :
- 중앙처리장치 (CPU) : 메모리의 명령어를 읽고 해석해서 실행
- ALU (산술논리연산장치) : 계산기
- 제어장치 : CPU 전용 임시 저장 장치
- 레지스터 : 제어 신호 (메모리 읽어!, 메모리에 써!) 라는 명령어를 해석하는 장치
- 주기억장치 (메모리 = Ram) : 명령어와 데이터를 저장, 실행되는 프로그램을 저장
- 보조기억장치 (SSD, 하드디스크, USB) : 전원이 꺼져도 보관할 프로그램을 저장
- 입출력 장치 (모니터, 키보드, 마우스, 스피커 등) : 컴퓨터 내부의 정보를 교환하는 컴퓨터 외부 장치
메인보드 (마더보드)
: 메인보드의 시스템 버스 (통로) 가 4가지 핵심 부품을 연결해줌
데이터
- 0과 1로 숫자를 표현하는 방법
컴퓨터 = 0과 1로 이루어짐
정보 단위 : 0과 1의 단위 (bit, byte 등)
- bit : 0과 1을 표현할 수 있는 가장 작은 정보 단위
- byte : 8개의 bit
- 킬로바이트 : 1000개의 byte
- 메가바이트 : 1000개의 킬로 byte
- 기가바이트 : 1000개의 메가 byte
- 테라바이트 : 1000개의 기가 byte
- 이진법 : 0과 1로 모든 숫자를 표현하는 방법
- 이진수 : 0, 1
- 이진수의 음수 표현 : 2의 보수 사용 (보수 : 뒤집은 수)
- 십진법 : 0 ~ 9 로 모든 숫자를 표현하는 방법
- 십진수 : 0 ~ 9
컴퓨터 : 이진수밖에 이해 못함
==> 그래서 우리가 사용하는 십지수를 이진수로 변환 해서 컴퓨터한테 알려주어야 함
- 십육진법 : 0 ~ 15로 모든 숫자를 표현하는 방법
- 십육진수 : 0 ~ 15
- 0과 1로 문자를 표현하는 방법
- 문자 집합 : 컴퓨터가 인식할 수 있는 문자들의 모음 (아스키 : 초창기 문자 집합, 유니코드 : 여러 나라의 문자를 광범위하게 표현할 수 있는 문자 집합)
- 인코딩 : 문자 => 0과 1 (UTF-8 : 유니코드를 인코딩하는 방식)
- 디코딩 : 0과 1 => 문자
명령어
- 소스 코드와 명령어
- 프로그래밍 언어 = 고급 언어
- 소스 코드 : 프로그래밍 언어로 작성한 글
- 명령어 : 명령하는 언어
- 고급 언어 : 사람을 위한 언어 (C언어, Python)
- 저급 언어 : 컴퓨터를 위한 언어
- 기계어 : 0과 1로 이루어진 명령어
- 어셈블리어 : 기계어를 읽기 편한 형태로 변환한 언어 (push, pop, mov 등)
컴파일 방식
- 컴파일 언어 : C언어
- 컴파일 : 컴파일 언어 (소스 코드) => 저급 언어 (목적 코드)
- 목적 코드 : 소스 코드가 컴파일된 저급 언어 코드
- 인터프리트 방식
- 인터프리터 언어 : Python
- 인터프리터 : = 컴파일, 다만 한 줄 씩 변환
실행 파일 : .exe
목적 파일 : .obj
링킹 : 목적 코드 => 실행 코드