문자 집합
: 컴퓨터가 인식할 수 있는 문자 모음을 말한다. 인코딩하여 0과 1로 표현이 가능하다.

인코딩: 사람의 언어를 컴퓨터가 이해할 수 있게끔 변환
디코딩: 컴퓨터의 언어를 사람이 이해할 수 있게끔 변환...
아스키 코드
: ASCII(American Standard Code For Information Interchange), 미국 정보 교환 표준 부호를 말한다.
EUC-KR
: 한글을 2바이트 크기로 인코딩 해 만들어진 한글 완성형 인코딩이다.
유니코드
: 여러 나라의 문자들을 표현할 수 있는 통일된 문자 집합
UTF-8, UTF-16, UTF-32...
문자 집합의 등장 흐름
- 기계어로 문자 인식이 되지 않음
- 이미 약속된 문자표를 정함
- 대표적 문자표, 아스키 코드를 사용
- 영어권이 아닌 컴퓨터 사용자가 등장하게 됨
- 영어 아닌 문자는 인식이 되지 않는 문제 발생
- 한글을 위해 EUC-KR 등장
- 한글 뿐 아니라 여러 나라별 문자 호환성 문제 발생
- 토일된 방식의 유니코드 등장
- 영어는 1 바이트, 한글을 2 바이트로 지정
- 문자 앞에 바이트 정보 표를 넣어 저장하게 됨, 이를 인코딩이라 함
기계어 단위
- 기계어
: 말 그대로 컴퓨터가 쓰는 언어
- 저급언어
: 기계어와 비슷한 컴언어(ex. 어셈블리어...)
- 고급언어
: 사람의 언어와 비슷한 컴언어(ex. C언어, JAVA, PYTHON...)
- 사람의 언어
: 말 그대로 사람이 쓰는 언어
진법
: 0부터 n개의 숫자를 사용해 수를 표현하는 방법. 0~(n-1) 만큼 표현이 가능하다.
2진수, 8진수, 10진수, 16진수 등 다양하게 존재한다.
10진수
: 0부터 9까지 숫자를 사용해 수를 표현하는 방법. 사람이 사용한다.
왜? 손가락은 열 개니까...
2진수
: 0부터 1까지 숫자를 사용해 수를 표현하는 방법. 컴퓨터가 사용한다.
왜? 컴퓨터는 꺼짐과 켜짐만으로 대화하니까...
10진수 → 2진수

이미지로 대체합니다...
2의 보수
: 어떤 수를 커다란 2의 제곱수에서 빼서 얻은 이진수이다.
- 모든 0과 1을 뒤집고 1을 더하면 보수를 구할 수 있다.
명령어
: 특정 작업을 수행하기 위한 컴퓨터 프로그램의 명령

여기서 변환할 때 쓰는 문장 또한 명령어이다.
변환 방식

컴파일 언어의 예씨로는 C언어, 인터프리터 언어의 예시로는 파이썬이 있다.
컴파일 언어는 파일을 통째로 변환, 인터프리터 언어는 한 줄씩 변환한다는 차이가 있겠다.
어셈블리어를 알아야 할까?
: 하드웨어와 맞닿아 있는 프로그램 개발에 사용되기에 알아두면 좋긴 하다.
- 임베디드 개발
- 게임 개발
- 정보 보안 분야...
연산코드와 오퍼랜드
연산코드(opcode)
: 명령어가 수행할 연산을 의미한다. 아래와 같이 이루어져있다.
- 데이터 전송
- 산술/논리 연산
- 제어 흐름 변경
- 입출력 제어
오퍼랜드(주소필드)
: 연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치를 의미한다. 아래와 같이 이루어져있다.
- 즉시 주소 지정방식
- 직접 주소 지정방식
- 간접 주소 지정방식
- 레지스터 주소 지정방식
- 레지스터 간접 주소 지정방식
- 묵시적 주소지정 방식, 스택 주소 지정방식
- 변위 주소 지정방식 - 상대 주소 지정방식
- 변위 주소 지정방식 - 베이스 레지스터 주소 지정방식
자료 구조
스택(STACK)
: 최근에 저장한 데이터를 먼저 사용하는 구조, LIFO(Last In First Out) 구조라고 부른다.
사용의 예시로는
- 웹 브라우저 뒤로 가기
: 가장 나중에 열린 페이지부터 뒤로 가기를 실행한다.
- 문서 작업에서 Ctrl+Z
: 가장 나중에 수정한 내역부터 되돌린다.
- 역순 문자열 만들기
: 맨 끝의 문자열부터 차례대로 만들어진다.
- 후위 표기법 계산
- 재귀적 알고리즘
등등이 있다.
큐(QUEUE)
: 먼저 저장한 데이터를 먼저 사용하는 구조, FIFO(First In First Out) 구조라고 부른다.
- 선형 큐(Linear Queue), 환형 큐(Circular Queue)로 이루어져있다.
사용의 예시로는
- 은행창구 번호표 대기
: 빠른 번호표를 가진 사람이 먼저 업무를 본다.
- 프린터 출력
: 가장 먼저 대기열에 오른 프린트가 먼저 출력된다.
- 너비 우선 탐색(BFS) 알고리즘
등등이 있다.
참고한 글