Home [컴퓨터과학 개론] 1강 - 컴퓨터와 자료
Post
Cancel

[컴퓨터과학 개론] 1강 - 컴퓨터와 자료

💡해당 게시글은 방송통신대학교 이관용, 정광식 교수님의 '컴퓨터과학 개론' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 컴퓨터 과학의 주요 분야에 대한 본격적인 학습에 앞서 전체적인 관점에서 기본적인 몇 가지의 개념을 살펴봄
  • 컴퓨터, 컴퓨터 과학이라는 것이 무엇인지를 살펴보고, 컴퓨터 시스템을 구성하는 요소에 대해서 학습함



학습 목표


  • 컴퓨터의 정의와 특징을 이해하고 설명할 수 있음
  • 다양한 관점에서의 컴퓨터 과학의 정의를 이해하고 설명할 수 있음
  • 하나의 완전한 컴퓨터 시스템의 구성 요소를 이해하고 설명할 수 있음



강의록


컴퓨터

데이터 처리기(data processor)

image.png

  • 컴퓨터의 기능적 측면(입력→ 처리 → 출력)만 정의
    • 너무 포괄적

      image.png

    • 어떤 형태의 작업을 처리할 수 있는지 불명확함

프로그램이 가능한 데이터 처리기(programmable data processor)

image.png

프로그램

  • 컴퓨터가 데이터를 어떻게 처리할 지를 알려주는 일련의 명령어 집합
  • 처리 가능한 작업의 유형과 연산의 집합을 결정
    • 컴퓨터
      • 특수 목적의 작업을 처리하는 기계가 아니라 다양한 형태의 작업을 수행할 수 있는 범용의 기계
  • 프로그래밍 과정의 결과물
    1. 주어진 문제의 해결 방법과 절차(알고리즘)를 찾음
    2. 그것을 적절한 프로그래밍 언어를 사용해 컴퓨터가 이해할 수 있는 형태로 표현

컴퓨터의 장점

  • 신속한 처리
    • ms(10^-3초), μs(10^-6초), ns(10^-9초), ps(10^-12초)
  • 처리 결과의 정확
    • 유효한 입력/프로그램이 주어지면 항상 정확한 결과 생성
  • 자동
    • 프로그램 지시에 따라 자동으로 처리 → 사람의 개입이 불필요
  • 대용량
    • 대용량의 데이터 저장 및 처리

컴퓨터 과학

데이터의 표현, 저장, 조작, 검색과 밀접히 관련된 분야

  • 컴퓨터
    • 프로그램을 통해서 데이터를 입력하여 처리, 저장, 검색, 출력하는 전자적 장치
  • 데이터의 획득(acquisition), 표현(representation), 처리(processing), 저장(storage), 통신(communication), 접근(access)을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련 된 내용을 다루는 분야

컴퓨터, 데이터, 프로그램 알고리즘에 대한 분야

image.png

알고리즘과 관련된 이슈를 다루는 분야

  • 주어진 문제를 해결하기 위한 처리 과정을 절차적으로 나열한 명령어들의 집합

    image.png

  • 알고리즘의 존재 여부 = 문제의 해결 여부 → 컴퓨터의 한계

컴퓨터 과학의 특성

  • 비교적 짧은 역사, 빠른 변화 및 엄청난 영향력
  • 다른 분야와의 밀접한 연관
    • 폭 넓은 연구/응용 범위
      • 수학, 공학, 심리학, 생물학, 언어학, 경영 과학, 물리학, 철학, …
  • 컴퓨터 공학 vs 컴퓨터 과학
    • 컴퓨터 공학
      • 가격 대비 성능 특성이 좋은 컴퓨팅 엔진을 만들기 위해 하드웨어와 소프트웨어 요소의 조립에 중점
    • 컴퓨터 과학
      • 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책의 효율성과 실현 가능성에 보다 중점
      • 컴퓨터를 활용한 문제 해결에 대한 학문

컴퓨터 과학은 퍼즐을 푸는 것과 같아서

  • 멋진 해결 방법을 찾으려는 열정
  • 해결 방법을 평가하기 위해 수학적 분석과 논리 정연함을 사용할 수 있는 능력
  • 추상화를 통해 복잡한 문제의 모델링 과정에서 발휘할 수 있는 창의성
  • 상세한 내용에 숨겨진 가정에 대해 주의를 기울일 수 있는 능력
  • 동일한 문제라도 다른 환경에서의 차이점을 인지할 수 있는 능력
  • 잘 알려진 효율적 해결 방법을 새로운 환경의 문제에 적용할 수 있는 능력

컴퓨터 시스템

컴퓨터 시스템의 구성 요소

  • 데이터, 하드웨어, 소프트웨어, 사용자

    image.png

    • 시스템
      • 특정한 목적을 달성하기 위해 여러가지 구성 요소들이 상호작용하고 유기적으로 이루어진 것

하드웨어

  • 컴퓨터라는 기계를 구성하고 있는 모든 물리적인 기계 장치/전자 장치
  • 핵심 장치
    • 폰 노이만 모델에서 제시한 4개의 서브 시스템
  • 폰 노이만(John von Neumann) 모델
    • 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
    • 모든 컴퓨터는 폰 노이만 모델에 기반을 두고 있음

    image.png

    • 중앙 처리 장치(CPU: Central Processing Unit)
      • 제어 장치(CU: Control Unit)
      • 산술 논리 연산 장치(ALU: Arithmetic and Logic Unit)
  • 기억 장치
    • 주 기억 장치, 보조 기억 장치
      • 처리할 입력 데이터, 처리를 담당하는 프로그램, 중간 결과, 출력할 데이터
  • 산술 논리 연산 장치
    • 산술 연산과 논리 연산의 수행을 통해 직접적인 데이터 처리가 이루어지는 장치
  • 제어 장치
    • 컴퓨터의 기억 장치, 산술 논리 연산 장치, 입 출력 장치의 동작을 제어하는 장치
  • 입력 장치
    • 키보드, 마우스, 마이크 등
    • 보조 기억 장치(디스크,..)
  • 출력 장치
    • 모니터, 프린터, 스피커 등
    • 보조 기억 장치(디스크,..)

하드웨어 요소 간의 통신

image.png

폰 노이만 모델의 주요 개념

  • 내장 프로그램(stored program)
    • 실행될 프로그램은 메모리에 저장되어야 한다.
      • 초기 컴퓨터에서는 데이터만 메모리에 저장되고, 프로그램은 컴퓨터 외부에 표현되는 방식
    • 프로그램과 데이터가 동일한 형식으로 메모리에 표현된다는 의미
      • 동일한 형식 → 비트 패턴
  • 프로그램은 유한 개의 명령어의 나열이다.
    • 미리 정의된 기본 명령어의 유한 개의 조합으로 구성됨
    • 제어 장치가 메모리에서 한 번에 하나씩 명령어를 가져와서(fetch) 해석하고(decode) 산술 논리 연산 장치가 실행함(execute)
    • 명령어의 재 사용으로 인해 프로그래밍 작업이 간단해짐

소프트웨어

  • 모든 종류의 프로그램을 총체적으로 표현하는 용어
    • 컴퓨터가 데이터를 어떻게 처리할 것인 가를 규정하는 명령어들의 나열
    • 컴퓨터가 이해할 수 있도록 표현된 알고리즘
  • 하드웨어와 소프트웨어의 관계

    image.png

  • 분류
    • 시스템 소프트웨어
      • 컴퓨터 자체의 작업 관리와 특정 기능의 수행을 통해 컴퓨터의 전체적인 운영을 담당하는 프로그램
      • 운영체제, 컴파일러 등
    • 응용 소프트웨어
      • 사용자가 요구하는 작업을 직접적으로 수행하는 프로그램
      • 워드프로세서, 그래픽 프로그램, 웹 브라우저 등

데이터

  • 모든 데이터는 유형에 관계 없이 비트 패턴으로 표현
    • 비트 패턴
      • 이진 상태를 나타내는 비트 0, 1나열 된 형태
        • 폰 노이만 모델에서는 데이터의 표현 및 저장 형태에 대해서 정의하지 않음
    • 데이터의 입출력을 위해서는 적절한 형태로의 변환 필요

      image.png

사용자

  • 사용자, 오퍼레이터
    • 컴퓨터의 설계부터 효율적인 이용에 이르기까지 전반적인 데이터 처리 과정에서 유능하고 지식이 풍부한 사람의 적극적인 개입 필요

정리 하기

  • 컴퓨터
    • 프로그램이 가능한 데이터 처리기
    • 장점
      • 신속, 정확, 자동, 대용량
  • 컴퓨터 과학
    • 데이터의 획득, 표현, 처리, 저장, 통신, 접근과 관련 된 학문
    • 컴퓨터, 데이터, 프로그램, 알고리즘에 대한 학문
    • 알고리즘과 관련 된 이슈를 다루는 학문
    • 컴퓨터를 활용한 문제 해결에 대한 학문
  • 컴퓨터 시스템
    • 구성 요소
      • 하드웨어, 소프트웨어, 데이터, 사용자
    • 핵심 하드 웨어
      • CPU(산술 논리 연산 장치, 제어 장치), 기억 장치, 입출력 장치
    • 폰 노이만 모델
      • 내장 프로그램, 프로그램은 유한 개의 명령어 나열



연습 문제


  1. 컴퓨터를 데이터 처리기라는 관점으로 정의하려고 한다. 이때 처리 가능한 작업의 유형과 연산의 집합을 결정하는 것은 무엇인가?

    a. 프로그램

    • 컴퓨터 → 프로그램이 가능한 데이터 처리기(programmable data processor)
    • 데이터 처리기의 기본 기능
      • 데이터의 입력(input) → 처리(process) → 결과 출력(output)
    • 프로그램은 컴퓨터에서 처리 가능한 작업의 유형과 연산의 집합을 결정하며, 이를 통해 컴퓨터는 다양한 형태의 작업을 처리할 수 있는 범용의 기계가 됨
  2. 컴퓨터 과학은 데이터 처리 관점에 필요한 다음과 같은 4가지 요소를 통해서 정의할 수 있다. 빈칸에 들어갈 내용으로 적절하지 못한 것은?

    1
    
     컴퓨터 과학은 (  ), (  ), (  ), (  ) 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법을 제공한다.
    

    a. 정보

    • 다양한 관점에서의 컴퓨터 과학의 정의
      • 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문 분야
      • 컴퓨터, 데이터, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법들을 제공하기 위한 학문
      • 알고리즘과 관련된 이슈를 다루는 학문 → 컴퓨터 과학의 모든 관련 분야를 “알고리즘” 중심으로 이해 가능
      • 컴퓨터를 활용한 문제 해결에 대한 학문
  3. 하나의 완전한 컴퓨터 시스템을 구성하는 4가지 요소로서 거리가 먼 것은?

    a. 인터넷

    • 완전한 컴퓨터 시스템을 구성하는 4가지 요소
      • 하드웨어, 소프트웨어, 데이터, 사용자
  4. 폰 노이만 모델과 관련된 설명 중 올바르지 못한 것은?

    a. 데이터는 비트 패턴으로 저장되어야 함을 정의하고 있다.

    • 폰 노이만 모델
      • 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
      • 4개의 서브 시스템(기억 장치, 산술 논리 연산 장치, 제어 장치, 입출력 장치)으로 구성
      • 기존 프로그래밍의 개념을 완전히 바꿔 놓은 주요 개념
      • 내장 프로그램
        • 데이터와 함께 실행될 프로그램은 메모리에 저장되어야 함
        • 데이터와 프로그램이 같은 메모리에 저장된다는 것은 같은 형식(“비트 패턴”)으로 저장된다는 의미를 내포
          • 하지만 실제로 데이터가 컴퓨터에 어떻게 저장되어야 하는 지에 대해서는 정의하고 있지 않음
        • 프로그램은 명령어의 나열임
          • 기본 명령어들을 미리 정의하고, 이들의 유한 개의 조합으로 원하는 프로그램을 작성할 수 있음
          • 명령어들의 재 사용성으로 인해 프로그래밍 작업이 간단해질 수 있음
    • 폰 노이만 모델과 관련 된 설명은?
      • 컴퓨터의 내부 구조와 처리 과정을 정의한 모델임
      • 내장 프로그램(stored-program) 방식을 제안하고 있음
      • 데이터와 함께 실행될 프로그램도 메모리에 저장되어야 함



정리 하기


  • 컴퓨터
    • 컴퓨터
      • 프로그램이 가능한 데이터 처리기
    • 프로그램
      • 컴퓨터가 데이터를 어떻게 처리(조작)할 지를 알려주는 일련의 명령어의 집합으로, 컴퓨터에서 처리 가능한 작업의 유형과 연산의 집합을 결정
    • 컴퓨터 장점(특징)
      • 신속, 정확, 자동, 대용량
  • 컴퓨터 과학
    • 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문 분야
    • 컴퓨터, 데이터, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법들을 제공하기 위한 학문
    • 알고리즘과 관련된 이슈를 다루는 학문
    • 컴퓨터를 활용한 문제 해결에 대한 학문
    • 컴퓨터 공학 vs 컴퓨터 과학
      • 컴퓨터 공학
        • 가격 대비 성능 특성이 가장 좋은 컴퓨터 엔진을 만들기 위해 하드웨어와 소프트웨어 요소를 조립하는 방법에 중점을 둠
      • 컴퓨터 과학
        • 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책이 효율적이고 실현 가능하도록 하는데 초점을 맞춤
  • 컴퓨터 시스템
    • 하나의 완전한 컴퓨터 시스템을 구성하는 4가지 요소
      • 하드웨어, 소프트웨어, 데이터, 사용자
    • 하드웨어
      • 기계를 구성하고 있는 모든 물리적 기계 장치 및 전자 장치
      • 핵심 장치
        • 중앙 처리 장치(산술 논리 연산 장치, 제어 장치)
        • 기억 장치(주 기억 장치, 보조 기억 장치)
        • 입력 장치
        • 출력 장치
    • 소프트웨어
      • 모든 프로그램을 총체적으로 표현하는 것
      • 시스템 소프트웨어와 응용 소프트웨어로 구분
    • 데이터
      • 컴퓨터가 처리하는 대상으로 컴퓨터 내부에서 비트 패턴으로 변환되어 처리되며, 우리가 알아볼 수 있도록 적절한 변환 과정을 다시 거쳐 출력 됨
    • 사용자
      • 컴퓨터가 데이터를 처리하는 전반적인 과정에 다양하고 적극적인 형태로 사람의 개입이 필요
    • 폰 노이만 모델
      • 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
      • 모든 컴퓨터는 폰 노이만 모델에 기반을 둠
      • 4개의 서브 시스템(산술 논리 연산 장치, 제어 장치, 기억 장치, 입출력 장치)으로 구성
      • 내장 프로그램 방식
        • 데이터와 함께 실행될 프로그램은 메모리에 저장되어야 함
        • 데이터와 프로그램이 같은 메모리에 저장된다는 것은 같은 형식(“비트 패턴”)으로 저장된다는 의미를 내포
      • 프로그램은 명령어의 나열임
        • 기본 명령어들을 미리 정의하고, 이들의 유한 개의 조합으로 원하는 프로그램이 구성 됨

[C++ 프로그래밍] 15강 - 예외 처리

-