[CS] 컴퓨터와 자료
컴퓨터란?
- 프로그램이 가능한 데이터 처리기 (programmable data processor)
- 특수 목적의 한 종류의 작업을 처리하는 기계가 아니라, 다양한 형태의 작업을 수행할 수 있는 범용의 기계
프로그램
- 컴퓨터가 데이터를 어떻게 처리(조작)할지를 알려주는 일련의 명령어의 집합
- 컴퓨터에서 처리 가능한 작업의 유형과 연산의 집합을 결정
- 프로그래밍 과정의 결과물(알고리즘, 코딩)
컴퓨터 장점(특징)
- 신속한 처리
- 정확성
- 자동(프로그램의 지시에 따라 자동으로 처리)
- 대용량(대용량의 데이터 저장 및 처리)
컴퓨터과학이란?
- 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문 분야
- 컴퓨터, 데이터, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 자료 처리를 위한 제반 기술과 방법들을 제공하기 위한 학문
- 알고리즘과 관련된 이슈를 다루는 학문
- 컴퓨터를 활용한 문제 해결에 대한 학문
컴퓨터과학의 특성
- 비교적 짧은 역사, 빠른 변화와 사회 전반에 대한 엄청난 영향력
- 다른 분야와의 밀접한 연관/융합 → 폭 넓은 연구/응용 범위
컴퓨터공학 vs 컴퓨터과학
- 컴퓨터공학 : 가격 대비 성능 특성이 가장 좋은 컴퓨터 엔진을 만들기 위해 하드웨어와 소프트웨어 요소를 조립하는 방법에 중점
- 컴퓨터과학 : 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책이 효율적이고 실현 가능성에 보다 초점
컴퓨터 시스템
- 컴퓨터 시스템의 4가지 구성요소 : 하드웨어, 소프트웨어, 데이터, 사용자
하드웨어
- 기계를 구성하고 있는 모든 물리적인 기계장치 및 전자장치
- 핵심 장치 : 폰 노이만 모델에서 제시한 4개의 서브시스템(중앙처리장치, 기억장치, 입력장치, 출력장치)
하드웨어의 구성
- 기억장치 (주기억장치, 보조기억장치) : 처리할 입력 데이터, 처리를 담당하는 프로그램, 중간 결과, 출력할 데이터
- 산술논리연산장치 : 산술 연산과 논리 연산의 수행을 통해 직접적인 데이터 처리가 이루어지는 장치
- 제어장치 : 컴퓨터의 기억장치, 산술논리연산장치, 입출력장치의 동작을 제어하는 장치
- 입력장치 : 키보드, 마우스, 마이크, 카메라 등
- 출력장치 : 모니터, 프린터, 스피커 등
소프트웨어
- 모든 종류의 프로그램을 총체적으로 표현하는 언어
소프트웨어 분류
- 시스템 소프트웨어 : 컴퓨터 자체의 작업 관리와 특정 기능의 수행을 통해 컴퓨터 전체적인 운영을 담당하는 프로그램
→ (ex 운영체제, 컴파일러 등)
- 응용 소프트웨어 : 사용자가 요구하는 작업을 직접적으로 수행하는 프로그램
→ (ex 워드프로세서, 그래픽 프로그램, 웹브라우저 등)
데이터
- 모든 데이터는 유형에 관계 없이 비트 패턴 형태로 표현
※ 비트 패턴 : 이진 상태를 나타내는 비트인 0과 1이 나열된 형태
- 폰 노이만 모델에서는 데이터의 표현과 저장 형태에 대해서 정의하지 않음
- 데이터의 입출력을 위해서는 적절한 형태로의 변환 필요
사용자, 오퍼레이터
- 컴퓨터의 설계부터 효율적인 이용에 이르기까지 전반적인 데이터 처리과정에서 유능하고 지식이 풍부한 사람이 필요
폰 노이만 모델
폰 노이만 모델의 주요 개념
내장 프로그램 (stored program)
- "실행될 프로그램은 메모리에 저장되어야 한다."
- 초기 컴퓨터에서는 데이터만 메모리에 저장되고, 프로그램은 컴퓨터 외부에 표현되는 방식
- "프로그램과 데이터가 동일한 형식으로 메모리에 표현된다."는 의미
- 동일한 형식 → "비트 패턴"
"프로그램은 유한 개의 명령어의 나열이다."
→ 미리 정의된 기본 명령어의 유한 개의 조합으로 구성됨
- 제어장치가 메모리에서 한 번에 하나씩 명령어를 가져와서(fetch) 해석하고(decode) 산술논리연산장치가 실행함(excute)
- 명령어의 재사용으로 인해 프로그래밍 작업이 간단해짐