혼자 공부하는 컴퓨터 구조+운영체제
• 진도: Chapter 01 ~ 03
• 기본 숙제(필수): p. 51의 확인 문제 3번, p. 65의 확인 문제 3번 풀고 인증하기
• 추가 숙제(선택): p. 100의 스택과 큐의 개념을 정리하기
▼ 기본숙제
▼ p. 51의 확인 문제 3번

▼ p. 65의 확인 문제 3번

▼ 추가 숙제 (스택과 큐)
1. 스택(Stack)
- 정의: 데이터를 쌓아 올리는 방식의 자료구조
- 특징: LIFO(Last In, First Out) → 마지막에 넣은 데이터가 가장 먼저 나옴(후입선출)
- 주요 연산:
- push: 데이터를 스택의 맨 위에 추가(새로운 데이터를 저장)
- pop: 스택의 맨 위 데이터를 제거하고 반환
- peek(또는 top): 스택의 맨 위 데이터를 확인하지만 제거하지 않음
- 예시:
- 접시 쌓기: 가장 위에 올린 접시를 먼저 꺼내는 것
- 실행 취소(Undo): 가장 최근 작업부터 되돌림
2. 큐(Queue)
- 정의: 데이터를 줄세우는 방식의 자료구조
- 특징: FIFO(First In, First Out) → 먼저 넣은 데이터가 가장 먼저 나옴(선입선출)
- 주요 연산:
- enqueue: 데이터를 큐의 맨 뒤에 추가
- dequeue: 큐의 맨 앞 데이터를 제거하고 반환
- peek(또는 front): 큐의 맨 앞 데이터를 확인하지만 제거하지 않음
- 예시:
- 줄 서기: 먼저 줄 선 사람이 먼저 서비스를 받음
- 프린터 작업: 먼저 보낸 문서가 먼저 출력됨
컴퓨터 구조 왜 배워야 할까?
컴퓨터 구조를 이해하고 있다면 코드상의 문법적인 오류가 아닌 오류가 발생해도 문제 상황을 빠르게 진단하고, 문제해결의 실마리를 다양하게 찾을 수 있다.
컴퓨터 구조를 이해하면 성능,용량,비용까지 고려하며 개발하는 개발자가 될 수 있다.
컴퓨터 구조에는 컴퓨터가 이해하는 정보와 컴퓨터의 네 가지 핵심 부품이 있다
Chapter 01. 컴퓨터 구조 지식
1. 컴퓨터가 이해하는 정보 : 컴퓨터는 0과1로 표현된 정보만을 이해
- 데이터 ( 숫자,문자,이미지,동영상과 같은 정적인 정보)
- 명령어 (데이터를 움직이고 컴퓨터를 작동시키는 정보)
2.컴퓨터의 4가지 핵심 부품 -
메인보드(=마더보드) : 컴퓨터의 4가지 핵심부품이 연결되어 있는 판
시스템버스(주소/데이터/제어)라는 통로로 컴퓨터 4가지 부품들이 서로 정보를 주고 받는다.
- 중앙처리장치 - CPU
- ARU :산술논리장치 = 계산기
- 레지스터 : CPU 내부의 임시 저장 장치(여러개가 있다)
- 제어장치 : 제어신호를 보내고 명령어를 해석하는 장치다.
메모리 읽기(저장된 값을 읽고 싶을때 ) 메모리 쓰기 (어떤 값을 저장하고 싶을때)
- 주기억장치 - 메모리(RAM,ROM)
- 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.
- 메모리가 저장된 값의 위치는 주소로 알 수 있다.
- 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다.
- 보조기억장치
- 크기가 크고 전원이 꺼져도 저장된 값을 잃지 않는다. (↔메모리 : 용량이 적고 전원이 꺼지면 저장된 값을 잃는다)
- 하드디스크, USB, SSD , DVD 등
- 입출력장치
- 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
- 마우스,키보드,프린터 등
Chapter 02. 데이터
정보단위
| bit (비트) | 0과 1을 나타내는 가장 작은 정보 단위 |
| bite(바이트) | 8bit |
| kB(킬로바이트) | 1000bite = 8000비트 |
| MB(메가바이트) | 1000kB |
| GB(기가바이트) | 1000MB |
| TB(테라바이트) | 1000GB |
워드 : CPU가 한번에 처리할수있는 데이터 크기
대부분의 컴퓨터 워드 크기는 32비트 / 64비트다
이진법
- 수학에서 0과 1만으로 모든 숫자를 표현하는 방법
- 1을 넘어가는 시점에서 자리 올림
- 수학적 표기 : 8 -> 1000(2) 코드상 표기 : 8 -> 0b 1000
[ 음수 표현 ]
- 2의 보수 : 어떤 수를 그보다 큰 2n에서 뺀 값
- 모든 0과 1을 뒤집고(1의 보수) , 거기에 1을 더한 값(2의 보수)
1000(2)의 보수 -> 0111 + 1 -> 1000(2)
- 컴퓨터 내부에서는 양수와 음수를 구분하기 위해 플래그( = 부가정보)를 사용한다.
십육진법
- 한 글자로 열여섯 종류의 정보를 표현 ( 0~9, A~F)
- 15를 넘어가는 시점에서 자리 올림
- 수학적 표기 : 15 -> 15(16) 코드상 표기 : 15 -> 0x 15
- 이진수를 십육진수로, 십육진수를 이진수로 변환하기 쉽다.
십육진수를 이진수로 표현하기
- 십육진수 한 글자를 4비트의 이진수로 간주
1A2B(16) -> 1/A/2/B -> 0001(2) 1010(2) 0010(2) 1011(2) -> 0001101000101011(2)
이진수를 십육진수로 변화
- 이진수 숫자를 4개씩 끊고 십육진수로 변환한 후 이어 붙인다.
11010101(2) -> 1101/0101 -> D(16) 5(16) -> D5(16)
문자 집합
컴퓨터가 인식하고 표현할 수 있는 문자의 모음
- 아스키코드 : 한글을 표현할 수 없으며, 27=128개의 문자를 표현할 수 있다
- 유니코드 : 대부분 나라의 문자, 특수문자, 화살표나 이모티콘을 표현할 수 있는 통일된 문자 집합
문자 인코딩
문자를 0과 1로 변환하는 과정
- EUC-KR : 완성형 한글 인코딩 방식 2530개의 한글 단어 표현할 수 있다.
- CP949 : EUC-KR의 확장 버전
- UTF(Unicode Transformation Format) : 유니코드 인코딩 방법 UTF-8 / 16 / 32 등이 있다
문자 디코딩
문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정 ( ↔ 문자 인코딩)
HTML <head> 부분에 UTF-8이 들어가있다!!
Chapter 03. 명령어
고급 언어는 사람이 이해하고 작성하기 쉽게 만들어진 언어
저급언어는 컴퓨터가 이해하고 직접 실행할수있는 언어 ( 기계어 , 어셈블리어)

'BOOK' 카테고리의 다른 글
| [혼공컴운] 13기 2주차 (1) | 2025.01.20 |
|---|