[혼공단 10기] 혼공컴운 1주차

chaewon·2023년 7월 9일
0

혼공컴운

목록 보기
1/3
post-thumbnail

Ch1. 컴퓨터 구조 시작하기

01-1 컴퓨터 구조를 알아야 하는 이유

  • 문제 해결
    컴퓨터를 미지의 대상이 아닌 분석의 대상으로 인식 가능
  • 성능, 용량, 비용 고려
    다양한 요소를 고려하는 개발자가 되기 위해 필요

01-2 컴퓨터 구조의 큰 그림

  • 컴퓨터가 이해하는 정보
    • 데이터
      숫자, 문자, 이미지, 동영상 등 정적인 정보
    • 명령어
      데이터를 움직이고 컴퓨터를 작동시키는 정보
  • 메인보드(마더보드)에 연결 되는 핵심 부품들
    • 메모리
      현재 실행되는 명령어, 데이터 저장
    • 중앙 처리 장치(CPU)
      명령어를 처리함 -> 컴퓨터의 두뇌
      • 제어장치: 메모리에게 제어 신호 전송
      • ALU: 연산 수행
      • 레지스터: 메모리에게 받은/연산 결과 명령어/데이터 저장
    • 보조기억장치
      전원이 꺼져도 데이터를 보존
    • 입출력장치(주변 장치)
      외부에 연결되어 내부와 정보 교환
  • 시스템 버스
    • 주소 버스
      주소를 주고 받음
    • 데이터 버스
      명령어, 데이터를 주고 받음
    • 제어 버스
      제어 신호를 주고 받음

기본미션: p. 51의 확인 문제 3번 풀고 인증하기

프로그램이 실행되려면 반드시 메모리에 저장 되어 있어야 합니다.

Ch2. 데이터

02-1 0과 1로 숫자를 표현하는 방법

  • 정보 단위
    • 비트
      0과 1을 나타내는 가장 작은 정보 단위
      nn개의 전구 -> 2n2^n가지 정보 표현 가능
    • 1 byte = 8 bit
    • 1000 byte = 1 kB
    • 1000 kB = 1 MB
    • 1000 MB = 1 GB
    • 1000 GB = 1 TB
  • 이진법
    0과 1만으로 모든 숫자를 표현하는 방법
    숫자가 1을 넘어가는 시점에서 자리 올림
    • 이진수의 음수 표현
      2의 보수 -> 모든 0, 1을 뒤집고 1을 더함
  • 십육진법
    수가 15를 넘어가는 시점에서 자리 올림
    • 십육진수의 이진수 변환
      십육진수의 한글자를 4비트의 이진수로 간주

기본미션: p. 65의 확인 문제 3번 풀고 인증하기

1101(2)의 음수를 2의 보수 표현법으로 구해 보세요.
1101 -> 0010 -> 0011

02-2 0과 1로 문자를 표현하는 방법

  • 문자 집합과 인코딩

    • 문자 집합
      컴퓨터가 인식하고 표현할 수 있는 문자 모음
    • 문자 인코딩
      문자를 컴퓨터가 이해할 수 있게 변환하는 과정
    • 문자 디코딩
      문자를 사람이 이해할 수 있게 변환하는 과정
  • 아스키 코드
    영어 알파벳, 아라비아 숫자, 일부 특수문자를 포함하는 문자 집합

  • EUC-KR
    한글 인코딩을 위한 완성형 인코딩 문자 집합

    • 완성형 인코딩
      완성 된 글자에 숫자 부여
    • 조합형 인코딩
      초성, 중성, 종성 비트 각각 할당
  • 유니코드와 UTF-8
    대부분 나라의 문자, 특수문자 등을 모두 아우르는 표준 문자 집합

Ch3. 명령어

03-1 소스코드와 명령어

  • 고급 언어와 저급 언어

    • 고급 언어
      사람을 위한 언어
    • 저급 언어
      컴퓨터를 위한 언어
      • 기계어
        0과 1의 명령어 비트로 이루어진 언어
      • 어셈블리어
        기계어를 읽기 쉽게 번역한 언어
  • 컴파일 언어와 인터프리터 언어

    • 컴파일 언어
      컴파일러에 의해 소스 코드가 저급 언어로 변환 되는 언어
      소스 코드 -> 컴파일러 -> 목적 코드
    • 인터프리터 언어
      인터프리터에 의해 소스 코드가 한 줄씩 실행 되는 언어

03-2 명령어의 구조

  • 연산 코드 (연산자)
    명령어가 수행할 연산
    • 데이터 전송
    • 산술/논리 연산
    • 제어 흐름 변경
    • 입출력 제어
  • 오퍼랜드 (피연산자)
    연산에 사용할 데이터의 위치
    • n-주소 명령어
      오퍼랜드 수가 n개인 명령어
  • 주소 지정 방식
    연산에 사용할 데이터 위치를 찾는 방법
    • 즉시 주소 지정 방식
      연산에 사용할 데이터
    • 직접 주소 지정 방식
      유효 주소
    • 간접 주소 지정 방식
      유효 주소의 주소
    • 레지스터 주소 지정 방식
      연산에 사용할 데이터를 저장한 레지스터
    • 레지스터 간접 주소 지정 방식
      연산에 사용할 데이터를 메모리에 저장하고 주소를 저장한 레지스터

선택 미션: p. 100의 스택과 큐의 개념을 정리하기

  • 스택 (LIFO)
    한쪽 끝이 막혀 있는 저장 공간
    나중에 저장한 데이터를 가장 먼저 빼내는 데이터 관리 방식
    • push로 데이터 저장, pop으로 데이터 꺼냄
  • 큐(FIFO)
    한쪽으로 데이터 저장, 반대로 데이터 빼냄
    가장 먼저 저장된 데이터부터 빼내는 데이터 관리 방식

0개의 댓글