241010 CS 스터디 정리

apple-mint·2024년 10월 10일

CS study

목록 보기
1/15

1. 컴퓨터 구조의 큰 그림

1) 컴퓨터가 이해하는 정보

  • 컴퓨터가 이해할 수 있는 정보는 명령어와 데이터
  • 명령어
    • 수행할 동작과 수행할 대상으로 이루어짐
    • 데이터를 활용하는 정보
  • 데이터
    • 숫자, 문자, 이미지, 동영상과 같은 정적인 정보
    • 명령의 대상, 명령어의 재료, 명령어에 종속적인 정보

2) 컴퓨터의 핵심 부품

(1) CPU

  • 명령어와 데이터를 읽어 들이고 해석하고 실행하는 부품
  • 인간으로 비유했을 때 두뇌에 해당함
  • 산술논리연산장치, 제어장치, 여러 레지스터들이 존재함
  • 산술논리연산장치
    • 연산을 수행할 회로로 구성되어 있는 일종의 계산기
  • 제어장치
    • 특정 부품에 신호를 보내 동작시키는 전기 신호를 보내는 장치
  • 레지스터
    • CPU 내부 작은 임시 저장장치
    • 명령어와 데이터를 처리하는 과정의 중간값 저장
    • CPU가 처리하는 명령어가 반드시 저장되므로 프로그램이 어떻게 실행되는지 확인 가능

(2) 메모리

  • 실행 중인 프로그램을 구성하는 명령어와 데이터를 저장하는 부품
  • 주소
    • 메모리 속 명령어와 데이터에 쉽게 접근할 수 있도록 주소가 있음
    • CPU에서 원하는 정보에 접근하기 위해서는 주소가 필요함
  • 휘발성
    • 컴퓨터에 전원이 연결되어 있는 동안 메모리에 저장된 정보가 남아 있음
    • 전원이 꺼질 경우 컴퓨터 실행 시 저장되었던 정보가 모두 삭제됨

(3) 보조기억장치

  • 전원이 꺼져도 정보가 삭제되지 않는 정보를 저장하는 부품
  • 메모리와 달리 비휘발성이며 보괄할 프로그램을 저장함
  • CPU는 보조기억장치에 저장된 프로그램을 곧장 가져와 실행할 수 없으므로 RAID를 활용함

(4) 입출력장치

  • 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
  • 보조기억장치와 입출력장치를 묶어 주변장치라고도 함

(5) 메인보드

  • 위와 같은 부품들을 모두 고정하고 서로 연결하는 기판
  • 버스
    • 각 부품들이 정보를 주고받는 통로
  • 시스템 버스
    • 핵심 부품들을 연결하는 버스

2. 컴퓨터가 이해하는 정보

1) 표현 단위

  • 비트(bit)
    • 0과 1을 나타내는 가장 작은 정보의 단위
    • N비트는 2N2^N개의 정보를 표현할 수 있음
구분단위
1byte8bit
1kB1,000byte
1MB1,000kB
1GB1,000MB
  • 워드(word)
    • CPU가 한번에 처리할 수 있는 데이터의 크기
    • 대부분 현대 컴퓨터 워드 크기는 32bit, 64bit임

2) 숫자 표현

(1) 2진법

  • 숫자 1을 넘어가는 시점에 자리올림해 0, 1로 모든 수를 표현
  • 숫자 뒤에 아래첨자로 (2)(2)를 붙이거나 2진수 앞에 0b0b를 붙임

(2) 16진법

  • 숫자 16을 넘어가는 시점에 자리올림해 모든 수를 표현
  • 2진법으로 표현 시 숫자의 길이가 너무 길어지는 단점을 보완하기 위해 사용
  • 숫자가 두 자리수로 넘어갈 경우 A, B, C, D, E, F를 사용
  • 숫자 뒤에 아래첨자로 (16)(16)를 붙이거나 16진수 앞에 0x0x를 붙임

(3) 부동 소수점

  • 소수점을 나타내기 위해 사용하는 표현 방식
  • 2진수의 지수와 가수를 IEEE 754 방식을 통해 저장함
  • 10진수 체계의 소수를 2진수 또는 16진수 체계의 소수로 바꾸는 과정에서 그 수가 딱 떨어지지 않을 수 있으므로 일부 소수점을 생략함
  • 따라서 같은 결과가 나옴에도 이를 같은 숫자로 보지 않는 문제가 발생함

3) 문자 표현

(1) 문자 집합

  • 컴퓨터가 이해할 수 있는 문자들의 집합
  • 아스키, KS X 1001, KS X 1003, 유니코드가 있음
  • 오른쪽으로 갈수록 더 많은 문자를 표현할 수 있음

(2) 문자 인코딩

  • 사람이 이해하는 문자 집합의 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정
  • 아스키 인코딩
    • 하나의 문자를 표현하기 위해 8bit 사용
    • 그 중 1bit는 오류 검출을 위해 사용되는 패리티 비트
    • 7bit로 이루어진 코드를 대응해 인코딩함
  • KS X 1001, KS X 1003 인코딩
    • 아스키로 한글을 표기할 수 없어 만들어진 문자 집합
    • 2byte로 하나의 한글 글자를 표현하며 EUC-KR로 인코딩함
  • 유니코드 인코딩
    • 현대 가장 많이 사용되는 표준 문자 집합
    • UTF-8, UTF-16, UTF-32 등으로 인코딩함
  • base64
    • 문자뿐만 아니라 이진 데이터까지 변환할 수 있는 인코딩 방식
    • 64개의 문자를 사용하므로 6bit씩 끊어서 아스키 문자로 변환함
    • 6bit로 끊어지지 않는다면 해당 자리를 0으로 채우는 패딩이 발생함

(3) 문자 디코딩

  • 0과 1로 이루어진 문자 코드를 사람이 이해하는 문자 집합의 문자로 변환하는 과정

0개의 댓글