ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터과학 기초
    CS(ComputerScience) 2020. 11. 5. 11:20

    안녕하세요. 그린입니다!

    이번 포스팅에서는 CS 즉 ComputerScience == 컴퓨터과학을 뜻하죠. 이 컴퓨터과학에 대해 알아보겠습니다.

    컴퓨터를 전공하였다면 전공과목으로 수강하였던 부분이기도 하지만 이번 CS카테고리에서는 이 부분을 아주아주 기초부터

    심화된 내용까지 다뤄보도록 하겠습니다.

    우리가 프로그래밍을 한다하더라도 컴퓨터에 대해 원초적으로 잘 알고 코딩을 한다면 더 좋은 성과가 있겠죠??

    부담없이 쭉 일어보고 아는것을 다진다라는 생각으로 구독해주시면 감사하겠습니다~!

    1. CS 기초 용어

    -. 프로그래머 : 컴퓨터 프로그램을 만드는 사람

    -. 프로그래밍 : 컴퓨터 프로그램을 만드는 일

    -. 프로그램 : 컴퓨터에 의해 실행될 수 있는 일련의 기능 모음 (집합체)

    2. 컴퓨터의 발전과 역사

    -. 컴퓨터는 예전부터 그 뿌리를 찾는다면 전자계산기로부터 시작하였다.

       (초기 컴퓨터의 모습은 십진법보다 이진법이 효율적으로 생각하여 이진법으로 출발하였다.)

    -. 최초 다용도 디지털 컴퓨터 - ENIAC

    ENIAC

    -. 최초 프로그램 내장 방식 컴퓨터 - EDSAC

    EDSAC

    -. 제 1세대 컴퓨터 -> 진공관 활용

    -. 제 2세대 컴퓨터 -> 트랜지스터

    트랜지스터

    -. 제 3세대 컴퓨터 (현재) -> 직접회로

    3. 컴퓨터의 구성

    -. 하드웨어와 소프트웨어로 구성

    -. 하드웨어 : 컴퓨터와 그 주변을 구성하는 물리적 장치 (입력장치,출력장치,기억장치,제어장치,연산장치)

    -. 기억장치

     1) 주기억장치 (램)

      : 빠르고 전원이 꺼지면 데이터가 지워짐

    주기억장치라 불리는 이유 : CPU 입장에서 데이터를 직접 읽고 쓸 수 있기때문 아닐까?? (CPU가 동작하기 위해 필수적인 요소기도함)

    -> 보조 기억장치는 데이터를 직접 읽고 쓸 수 없어 전달을 통함

     2) 보조기억장치 (하드디스크)

      : 매우 느리지만 전원이 꺼져도 데이터 보존

    -. 제어/연산장치

     : 중앙처리장치 (CPU - Central Processing Unit)

    -. 소프트웨어 : 프로그램-> 명령어의 집합

     1) 운영체제 / 로드 / 장치드라이버 / 컴파일러 / 어셈블러 / 링커 / 유틸리티 구성

     2) 응용 소프트웨어 : 애플리케이션으로 불림 (워드 / 게임 등)

    4. 컴퓨터의 구조

     1) 하버드 구조

     : 메모리가 2개로 명령어 메모리와 데이터 메모리

       -> 메모리 2개 구조로 속도가 빠르지만 구성에 비용이 많이 들며 복잡함 (비쌈)

     2) 폰 노이만 구조

     : 메모리가 1개로 명령어+데이터 메모리를 한곳에서 처리

      -> 메모리 1개 구조로 속도가 하버드 구조보다는 느리고 메모리 속박 및 버스 병목 문제를 가짐

     3) 하버드 + 폰 노이만 구조

     : 현대에는 두가지를 병합한 메모리를 사용한다

      -> CPU 내부 : 하버드(L1,L2캐시)  / CPU 외부 : 폰 노이만

    5. 32/64Bit 아키텍처

     -. 0과 1을 한번에 처리할 수 있는 개수 (32/64개)

     -. 정수타입은 꼭 4byte가 아님. (32비트일 시) // 아키텍처에 따라 달라짐 (스위프트에서는 8byte)

     -. 2^32 bit == 4GB (32비트로 표현할 수 있는 최대)

    6. IPv4 / IPv6

     -. IPv4 : 32bit (현재 포화상태로 전세계에서 아이피 돌려막기중)

     -. IPv6 : 128bit

    7. 데이터 표현방식

     -. 정수 : 0과 1로 표현 (10진수/8진수/16진수)

     -. 실수 : IEEE754 방식으로 부호/지수/가수 3부분으로 나누어 표현

     -. 문자 : 문자표에 의해 숫자를 매칭 (ASCII,Unicode,UTF-8 등...)

     -. 인코딩(Encoding) : 데이터를 코드화

    8. 컴퓨터의 연산

     -. 컴퓨터는 덧셈만 가능 (가산기와 반가산기로 구성)

     -. 뺄셈 : -부호를 붙여 덧셈(보수 이용) / 나눗셈 : 뺄셈으로 덧셈 / 곱셈 : 덧셈

     -. 연산은 꼭 프로그래밍할때 필요함으로 자세하게 알아두는것이 좋다.

     

    [추가사항]

    -. 커널 : 운영체제의 핵심으로 응용 소프트웨어 등이 돌아가게 하는 기능

     

    이상으로 컴퓨터 기초에 대해 간략하게 알아보았습니다.

    원래 알고있는 내용을 아주아주 간단하게 정리한것으로 쉽게 느껴질 수 있지만 보다 더 자세하게 목차들에 대해

    조사해보며 찾아본다면 폭 넓은 학습이 될것입니다.

    다음 포스팅에서는 좀 더 심화된 컴퓨터과학 학습을 해보겠습니다.

    감사합니다!

     

    'CS(ComputerScience)' 카테고리의 다른 글

    Cache  (0) 2021.02.04
    HTTP & TCP/IP  (0) 2021.01.18
    OS와 Process  (0) 2021.01.05
    자료구조와 알고리즘  (0) 2020.12.08
    SOLID  (0) 2020.12.03
Designed by Tistory.