1. 컴퓨터 동작 원리
현대 컴퓨터의 구성
-
메모리 : 데이터 저장 공간
-
I/O : input + output
-
CPU : 계산이 이뤄지는 공간
Memory
-
메모리 저장 방식
- 리틀엔디안 -> 0001 -> 연산하기에 용이하기 때문에 자주 사용됨.
- 빅 엔디안 -> 1000
CPU
- 산술 논리 유닛(ALU) : 연산
- 레지스터 : CPU가 데이터를 저장 (CPU는 레지스터에서만 논다.)
- 제어장치 : 둘을 제어함.
CPU cache mainMemory diskCache hardDisk 순차적으로 불러오며 연산함.
컴퓨터 아키텍쳐 : 컴퓨터의 여러 구성요소가 배치되는 방법.
I/O
- 입력(input) : 컴퓨터에게 데이터를 주는것
- 출력(output) : 컴퓨터가 데이터를 주는것
OS
프로세스
프로그램이 실행
- 힙 : 동적 할당 영역
- 스택 : 정적 할당 영역
- 데이터 : 정적 데이터
- 코드 : 작성한 명령 코드
프로세스가 진행 -> 스레드
한 프로세스가 하나의 스레드를 가짐.
프로세스가 진행되는 스레드 -> 메인스레드
네트워크
- 서로 통신하기 위해 만들어짐 -> OSI 7 Layer
OSI 7 Layer
- 애플리케이션 레이어 : 네트워크를 통하여 받은 데이터를 어떻게 통신 할 것인가.
- 프레젠테이션 레이어 : 인코딩 디코딩
- 세션 레이어 : 세션을 어떻게 연결할 것 인가.
- 트랜스포트 레이어 : 데이터 전송 방식
- 네트워크 레이어 : 컴퓨터를 어떻게 식별할 것인가 IP주소
- 데이터링크 레이어 : 데이터 경로 식별 방식
- 피지컬 레이어 : 실제 비트 전송방식.
2. 프로그래밍 언어.
- Type : 비트를 해석하는 방법. + 그리고 그에 저장할 수 있는 연산을 포함한다.
Primitive Type
Built-in Type
User Defined Type
ex)
struct Account
{
//이름 string name;
//번호 string, int, ... accountNumber;
//잔액 int balance;
//이율 float interest;
}
-> 어떤 상황에 어떤 타입을 사용할 지 연습이 되어있어야함.
추상화.
- Control Statement
-
Conditional Statement.
if / else /switch
-
Iteration Statement
for / while / do while
C, C++, C#
for (int i = 0; i < 5; i++)
{
}
python
for i in range(5) :
- Function
정의역에 있는 어떤 값을 대입 시켰을 때, 그에 대응되는 공역의 값이 나오는 것.
f(x) = x
Core
언어의 핵심 -> 문법
변수, 조건문, 반복문, 함수
구조체, 열거형, 배열, 포인터,
공용체, 매크로, 타입 재정의
- Library
- 함수의 모음
- 표준(Standard) -> 표준이 아닌것은 프로그램이 동작할 때 마다 설정을 다시 해주어야함.
Computational Thinking을 가지는 것이 프로그래머의 기본 소양!