학습 개요
- 컴퓨터 과학의 주요 분야에 대한 본격적인 학습에 앞서 전체적인 관점에서 기본적인 몇 가지의 개념을 살펴봄
- 컴퓨터, 컴퓨터 과학이라는 것이 무엇인지를 살펴보고, 컴퓨터 시스템을 구성하는 요소에 대해서 학습함
학습 목표
- 컴퓨터의 정의와 특징을 이해하고 설명할 수 있음
- 다양한 관점에서의 컴퓨터 과학의 정의를 이해하고 설명할 수 있음
- 하나의 완전한 컴퓨터 시스템의 구성 요소를 이해하고 설명할 수 있음
강의록
컴퓨터
데이터 처리기(data processor)
- 컴퓨터의 기능적 측면(입력→ 처리 → 출력)만 정의
너무 포괄적
어떤 형태의 작업을 처리할 수 있는지 불명확함
프로그램이 가능한 데이터 처리기(programmable data processor)
프로그램
- 컴퓨터가 데이터를 어떻게 처리할 지를 알려주는 일련의 명령어 집합
- 처리 가능한 작업의 유형과 연산의 집합을 결정
- 컴퓨터
- 특수 목적의 작업을 처리하는 기계가 아니라 다양한 형태의 작업을 수행할 수 있는 범용의 기계
- 컴퓨터
- 프로그래밍 과정의 결과물
- 주어진 문제의 해결 방법과 절차(알고리즘)를 찾음
- 그것을 적절한 프로그래밍 언어를 사용해 컴퓨터가 이해할 수 있는 형태로 표현
컴퓨터의 장점
- 신속한 처리
- ms(10^-3초), μs(10^-6초), ns(10^-9초), ps(10^-12초)
- 처리 결과의 정확성
- 유효한 입력/프로그램이 주어지면 항상 정확한 결과 생성
- 자동
- 프로그램 지시에 따라 자동으로 처리 → 사람의 개입이 불필요
- 대용량
- 대용량의 데이터 저장 및 처리
컴퓨터 과학
데이터의 표현, 저장, 조작, 검색과 밀접히 관련된 분야
- 컴퓨터
- 프로그램을 통해서 데이터를 입력하여 처리, 저장, 검색, 출력하는 전자적 장치
- 데이터의 획득(acquisition), 표현(representation), 처리(processing), 저장(storage), 통신(communication), 접근(access)을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련 된 내용을 다루는 분야
컴퓨터, 데이터, 프로그램 알고리즘에 대한 분야
알고리즘과 관련된 이슈를 다루는 분야
주어진 문제를 해결하기 위한 처리 과정을 절차적으로 나열한 명령어들의 집합
알고리즘의 존재 여부 = 문제의 해결 여부 → 컴퓨터의 한계
컴퓨터 과학의 특성
- 비교적 짧은 역사, 빠른 변화 및 엄청난 영향력
- 다른 분야와의 밀접한 연관
- 폭 넓은 연구/응용 범위
- 수학, 공학, 심리학, 생물학, 언어학, 경영 과학, 물리학, 철학, …
- 폭 넓은 연구/응용 범위
- 컴퓨터 공학 vs 컴퓨터 과학
- 컴퓨터 공학
- 가격 대비 성능 특성이 좋은 컴퓨팅 엔진을 만들기 위해 하드웨어와 소프트웨어 요소의 조립에 중점
- 컴퓨터 과학
- 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책의 효율성과 실현 가능성에 보다 중점
- 컴퓨터를 활용한 문제 해결에 대한 학문
- 컴퓨터 공학
컴퓨터 과학은 퍼즐을 푸는 것과 같아서
- 멋진 해결 방법을 찾으려는 열정
- 해결 방법을 평가하기 위해 수학적 분석과 논리 정연함을 사용할 수 있는 능력
- 추상화를 통해 복잡한 문제의 모델링 과정에서 발휘할 수 있는 창의성
- 상세한 내용에 숨겨진 가정에 대해 주의를 기울일 수 있는 능력
- 동일한 문제라도 다른 환경에서의 차이점을 인지할 수 있는 능력
- 잘 알려진 효율적 해결 방법을 새로운 환경의 문제에 적용할 수 있는 능력
컴퓨터 시스템
컴퓨터 시스템의 구성 요소
데이터, 하드웨어, 소프트웨어, 사용자
- 시스템
- 특정한 목적을 달성하기 위해 여러가지 구성 요소들이 상호작용하고 유기적으로 이루어진 것
- 시스템
하드웨어
- 컴퓨터라는 기계를 구성하고 있는 모든 물리적인 기계 장치/전자 장치
- 핵심 장치
- 폰 노이만 모델에서 제시한 4개의 서브 시스템
- 폰 노이만(John von Neumann) 모델
- 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
- 모든 컴퓨터는 폰 노이만 모델에 기반을 두고 있음
- 중앙 처리 장치(CPU: Central Processing Unit)
- 제어 장치(CU: Control Unit)
- 산술 논리 연산 장치(ALU: Arithmetic and Logic Unit)
- 기억 장치
- 주 기억 장치, 보조 기억 장치
- 처리할 입력 데이터, 처리를 담당하는 프로그램, 중간 결과, 출력할 데이터
- 주 기억 장치, 보조 기억 장치
- 산술 논리 연산 장치
- 산술 연산과 논리 연산의 수행을 통해 직접적인 데이터 처리가 이루어지는 장치
- 제어 장치
- 컴퓨터의 기억 장치, 산술 논리 연산 장치, 입 출력 장치의 동작을 제어하는 장치
- 입력 장치
- 키보드, 마우스, 마이크 등
- 보조 기억 장치(디스크,..)
- 출력 장치
- 모니터, 프린터, 스피커 등
- 보조 기억 장치(디스크,..)
하드웨어 요소 간의 통신
폰 노이만 모델의 주요 개념
- 내장 프로그램(stored program)
- 실행될 프로그램은 메모리에 저장되어야 한다.
- 초기 컴퓨터에서는 데이터만 메모리에 저장되고, 프로그램은 컴퓨터 외부에 표현되는 방식
- 프로그램과 데이터가 동일한 형식으로 메모리에 표현된다는 의미
- 동일한 형식 → 비트 패턴
- 실행될 프로그램은 메모리에 저장되어야 한다.
- 프로그램은 유한 개의 명령어의 나열이다.
- 미리 정의된 기본 명령어의 유한 개의 조합으로 구성됨
- 제어 장치가 메모리에서 한 번에 하나씩 명령어를 가져와서(fetch) 해석하고(decode) 산술 논리 연산 장치가 실행함(execute)
- 명령어의 재 사용으로 인해 프로그래밍 작업이 간단해짐
소프트웨어
- 모든 종류의 프로그램을 총체적으로 표현하는 용어
- 컴퓨터가 데이터를 어떻게 처리할 것인 가를 규정하는 명령어들의 나열
- 컴퓨터가 이해할 수 있도록 표현된 알고리즘
하드웨어와 소프트웨어의 관계
- 분류
- 시스템 소프트웨어
- 컴퓨터 자체의 작업 관리와 특정 기능의 수행을 통해 컴퓨터의 전체적인 운영을 담당하는 프로그램
- 운영체제, 컴파일러 등
- 응용 소프트웨어
- 사용자가 요구하는 작업을 직접적으로 수행하는 프로그램
- 워드프로세서, 그래픽 프로그램, 웹 브라우저 등
- 시스템 소프트웨어
데이터
- 모든 데이터는 유형에 관계 없이 비트 패턴으로 표현
- 비트 패턴
- 이진 상태를 나타내는 비트 0, 1이 나열 된 형태
- 폰 노이만 모델에서는 데이터의 표현 및 저장 형태에 대해서 정의하지 않음
- 이진 상태를 나타내는 비트 0, 1이 나열 된 형태
데이터의 입출력을 위해서는 적절한 형태로의 변환 필요
- 비트 패턴
사용자
- 사용자, 오퍼레이터
- 컴퓨터의 설계부터 효율적인 이용에 이르기까지 전반적인 데이터 처리 과정에서 유능하고 지식이 풍부한 사람의 적극적인 개입 필요
정리 하기
- 컴퓨터
- 프로그램이 가능한 데이터 처리기
- 장점
- 신속, 정확, 자동, 대용량
- 컴퓨터 과학
- 데이터의 획득, 표현, 처리, 저장, 통신, 접근과 관련 된 학문
- 컴퓨터, 데이터, 프로그램, 알고리즘에 대한 학문
- 알고리즘과 관련 된 이슈를 다루는 학문
- 컴퓨터를 활용한 문제 해결에 대한 학문
- 컴퓨터 시스템
- 구성 요소
- 하드웨어, 소프트웨어, 데이터, 사용자
- 핵심 하드 웨어
- CPU(산술 논리 연산 장치, 제어 장치), 기억 장치, 입출력 장치
- 폰 노이만 모델
- 내장 프로그램, 프로그램은 유한 개의 명령어 나열
- 구성 요소
연습 문제
컴퓨터를 데이터 처리기라는 관점으로 정의하려고 한다. 이때 처리 가능한 작업의 유형과 연산의 집합을 결정하는 것은 무엇인가?
a. 프로그램
- 컴퓨터 → 프로그램이 가능한 데이터 처리기(programmable data processor)
- 데이터 처리기의 기본 기능
- 데이터의 입력(input) → 처리(process) → 결과 출력(output)
- 프로그램은 컴퓨터에서 처리 가능한 작업의 유형과 연산의 집합을 결정하며, 이를 통해 컴퓨터는 다양한 형태의 작업을 처리할 수 있는 범용의 기계가 됨
컴퓨터 과학은 데이터 처리 관점에 필요한 다음과 같은 4가지 요소를 통해서 정의할 수 있다. 빈칸에 들어갈 내용으로 적절하지 못한 것은?
1
컴퓨터 과학은 ( ), ( ), ( ), ( ) 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법을 제공한다.
a. 정보
- 다양한 관점에서의 컴퓨터 과학의 정의
- 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문 분야
- 컴퓨터, 데이터, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법들을 제공하기 위한 학문
- 알고리즘과 관련된 이슈를 다루는 학문 → 컴퓨터 과학의 모든 관련 분야를 “알고리즘” 중심으로 이해 가능
- 컴퓨터를 활용한 문제 해결에 대한 학문
- 다양한 관점에서의 컴퓨터 과학의 정의
하나의 완전한 컴퓨터 시스템을 구성하는 4가지 요소로서 거리가 먼 것은?
a. 인터넷
- 완전한 컴퓨터 시스템을 구성하는 4가지 요소
- 하드웨어, 소프트웨어, 데이터, 사용자
- 완전한 컴퓨터 시스템을 구성하는 4가지 요소
폰 노이만 모델과 관련된 설명 중 올바르지 못한 것은?
a. 데이터는 비트 패턴으로 저장되어야 함을 정의하고 있다.
- 폰 노이만 모델
- 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
- 4개의 서브 시스템(기억 장치, 산술 논리 연산 장치, 제어 장치, 입출력 장치)으로 구성
- 기존 프로그래밍의 개념을 완전히 바꿔 놓은 주요 개념
- 내장 프로그램
- 데이터와 함께 실행될 프로그램은 메모리에 저장되어야 함
- 데이터와 프로그램이 같은 메모리에 저장된다는 것은 같은 형식(“비트 패턴”)으로 저장된다는 의미를 내포
- 하지만 실제로 데이터가 컴퓨터에 어떻게 저장되어야 하는 지에 대해서는 정의하고 있지 않음
- 프로그램은 명령어의 나열임
- 기본 명령어들을 미리 정의하고, 이들의 유한 개의 조합으로 원하는 프로그램을 작성할 수 있음
- 명령어들의 재 사용성으로 인해 프로그래밍 작업이 간단해질 수 있음
- 폰 노이만 모델과 관련 된 설명은?
- 컴퓨터의 내부 구조와 처리 과정을 정의한 모델임
- 내장 프로그램(stored-program) 방식을 제안하고 있음
- 데이터와 함께 실행될 프로그램도 메모리에 저장되어야 함
- 폰 노이만 모델
정리 하기
- 컴퓨터
- 컴퓨터
- 프로그램이 가능한 데이터 처리기
- 프로그램
- 컴퓨터가 데이터를 어떻게 처리(조작)할 지를 알려주는 일련의 명령어의 집합으로, 컴퓨터에서 처리 가능한 작업의 유형과 연산의 집합을 결정
- 컴퓨터 장점(특징)
- 신속, 정확, 자동, 대용량
- 컴퓨터
- 컴퓨터 과학
- 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문 분야
- 컴퓨터, 데이터, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법들을 제공하기 위한 학문
- 알고리즘과 관련된 이슈를 다루는 학문
- 컴퓨터를 활용한 문제 해결에 대한 학문
- 컴퓨터 공학 vs 컴퓨터 과학
- 컴퓨터 공학
- 가격 대비 성능 특성이 가장 좋은 컴퓨터 엔진을 만들기 위해 하드웨어와 소프트웨어 요소를 조립하는 방법에 중점을 둠
- 컴퓨터 과학
- 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책이 효율적이고 실현 가능하도록 하는데 초점을 맞춤
- 컴퓨터 공학
- 컴퓨터 시스템
- 하나의 완전한 컴퓨터 시스템을 구성하는 4가지 요소
- 하드웨어, 소프트웨어, 데이터, 사용자
- 하드웨어
- 기계를 구성하고 있는 모든 물리적 기계 장치 및 전자 장치
- 핵심 장치
- 중앙 처리 장치(산술 논리 연산 장치, 제어 장치)
- 기억 장치(주 기억 장치, 보조 기억 장치)
- 입력 장치
- 출력 장치
- 소프트웨어
- 모든 프로그램을 총체적으로 표현하는 것
- 시스템 소프트웨어와 응용 소프트웨어로 구분
- 데이터
- 컴퓨터가 처리하는 대상으로 컴퓨터 내부에서 비트 패턴으로 변환되어 처리되며, 우리가 알아볼 수 있도록 적절한 변환 과정을 다시 거쳐 출력 됨
- 사용자
- 컴퓨터가 데이터를 처리하는 전반적인 과정에 다양하고 적극적인 형태로 사람의 개입이 필요
- 폰 노이만 모델
- 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
- 모든 컴퓨터는 폰 노이만 모델에 기반을 둠
- 4개의 서브 시스템(산술 논리 연산 장치, 제어 장치, 기억 장치, 입출력 장치)으로 구성
- 내장 프로그램 방식
- 데이터와 함께 실행될 프로그램은 메모리에 저장되어야 함
- 데이터와 프로그램이 같은 메모리에 저장된다는 것은 같은 형식(“비트 패턴”)으로 저장된다는 의미를 내포
- 프로그램은 명령어의 나열임
- 기본 명령어들을 미리 정의하고, 이들의 유한 개의 조합으로 원하는 프로그램이 구성 됨
- 하나의 완전한 컴퓨터 시스템을 구성하는 4가지 요소