본문 바로가기
BOOK

[혼공컴운] 13기 1주차

by zing! 2025. 1. 12.
                                                      혼자 공부하는 컴퓨터 구조+운영체제
• 진도: 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