1. 컴퓨터
1) 컴퓨터란 무엇인가
▶ 데이터 처리기 data processer
- 현대 컴퓨터의 기능적 측면("입력-처리-출력")만 정의
- 너무 포괄적
- 어떤 형태의 작업을 처리할 수 있는지 불분명
▶ 프로그램이 가능한 데이터 처리기 programmable data processer
▶ 프로그램
- 컴퓨터가 데이터를 어떻게 처리할지를 알려주는 일련의 명령어 집합
- 처리 가능한 작업의 유형과 연산의 집합을 결정
컴퓨터 → 특수 목적의 작업을 처리하는 기계가 아니라, "다양한 형태의 작업을 수행할 수 있는 범용의 기계"
- 프로그래밍 과정의 결과물
① 주어진 문제의 해결 방법과 절차를 찾는다.
② 그것을 적절한 프로그래밍 언어를 사용해서 컴퓨터가 이해할 수 있는 형태로 표현한다.
→ "알고리즘"
2) 컴퓨터의 장점
- 신속한 처리
ms(10의 -3승 초)
us(10의 -6승 초)
ns(10의 -9승 초)
ps(10의 -12승 초)
- 처리 결과의 정확성
유효한 입력과 프로그램이 주어지면 항상 정확한 결과 생성
- 자동
프로그램 지시에 따라 자동으로 처리 → 사람의 개입이 불필요
- 대용량
대용량의 데이터 저장 및 처리
2. 컴퓨터과학
1) 컴퓨터과학이란 무엇인가?
- 데이터의 표현, 저장, 조작, 검색과 밀접히 관련된 분야
컴퓨터 → 프로그램을 통해서 데이터를 입력하여 처리, 저장, 검색, 출력하는 전자적 장치
→ 데이터의 획득acquisition, 표현representation, 처리processing, 저장storage, 통신communication, 접근access을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 분야
- 컴퓨터, 데이터, 프로그램, 알고리즘에 대한 분야
- 알고리즘과 관련된 이슈를 다루는 학문
알고리즘: 주어진 문제를 해결하기 위한 처리 과정을 절차적으로 나열한 명령어들의 집합
알고리즘의 존재 여부 → "컴퓨터의 한계"
2) 컴퓨터과학의 특성
- 비교적 짧은 역사, 빠른 변화 및 엄청난 영향력
- 다른 분야와의 밀접한 연관 → 폭 넓은 연구/응용 범위
컴퓨터공학: 가격 대비 성능 특성이 좋은 컴퓨팅 엔진을 만들기 위해 하드웨어와 소프트웨어 요소의 조립에 중점
컴퓨터과학: 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책의 효율성과 실현 가능성에 보다 중점 → "컴퓨터를 활용한 문제 해결에 대한 학문"
3) 좋은 컴퓨터과학 연구자가 되려면
컴퓨터과학은 퍼즐을 푸는 것과 타아서
- 멋진 해결 방법을 찾으려는 열정
- 해결 방법을 평가하기 위해 수학적 분석과 논리 정연함을 사용할 수 있는 능력
- 추상화를 통해 복잡한 문제의 모델링 과정에서 발휘할 수 있는 창의성
- 상세한 내용에 숨겨진 가정에 대해 주의를 기울일 수 있는 능력
- 동일한 문제라도 다른 환경에서의 차이점을 인지할 수 있는 능력
- 잘 알려진 효율적 해결 방법을 새로운 환경의 문제에 적용할 수 있는 능력
3. 컴퓨터 시스템
1) 컴퓨터 시스템의 구성요소
- 하드웨어
- 소프트웨어
- 데이터
- 사용자
2) 하드웨어
- 기계를 구성하고 있는 모든 물리적인 기계장치/전자장치
- 핵심장치: 폰 노이만 모델에서 제시한 4개의 서브시스템이 해당
- 폰 노이만 모델
컴퓨터의 내부 구조와 처리 과정을 정의한 모델
모든 컴퓨터는 폰 노이만 모델에 기반을 둠
- 중앙처리장치(CPU: Central Processing Unit)
제어장치(CU: Control Unit) + 산술논리연산장치(ALU: Arithmetic and Logic Unit)
- 기억장치 → 주기억장치, 보조기억장치
처리할 입력 데이터, 처리를 담당하는 프로그램, 중간 결과, 출력할 데이터
- 산술논리연산장치
산술 연산과 논리 연산의 수행을 통해 직접적인 데이터 처리가 이루어지는 장치
- 제어장치
컴퓨터의 기억장치, ALU, 입출력장치의 동작을 제어하는 장치
- 입력장치
- 출력장치
폰 노이만 모델의 주요 개념
- 내장 프로그램 stored program
실행될 프로그램은 메모리에 저장되어야 한다.
초기 컴퓨터에서는 데이터만 메모리에 저장되고, 프로그램은 컴퓨터 외부에 표현
"프로그램과 데이터가 동일한 형식(비트 패턴)으로 메모리에 표현된다"는 의미를 내포
- 프로그램은 유한개의 명령어의 나열이다.
미리 정의된 기본 명령어의 유한개의 조합으로 구성된다.
메모리에서 한 번에 하나씩 명령어를 가져와서 해석하고, 실행한다.
명령어의 재사용 → 프로그래밍 작업이 간단해짐
3) 소프트웨어
- 모든 종류의 프로그램을 총체적으로 표현하는 언어
컴퓨터가 데이터를 어떻게 처리할 것인가를 규정하는 명령어들의 나열
컴퓨터가 이해할 수 있도록 표현된 알고리즘
소프트웨어 분류
- 시스템 소프트웨어
컴퓨터 작업 자체의 관리와 특정 기능의 수행을 통해 컴퓨터의 전체적인 운영을 담당
→ 운영체제, 컴파일러
- 응용 소프트웨어
사용자가 요구하는 작업을 직접적으로 수행하는 프로그램
4) 데이터
모든 데이터는 유형과 관계 없이 비트 패턴으로 표현
비트 패턴 → 이진 상태를 나타내는 비트인 0과 1이 나열된 형태
폰 노이만 모델에서는 데이터의 표현 및 저장 형태에 대해서 정이하지 않음
데이터의 입출력을 위해서는 적절한 형태로의 변환이 필요
5) 사용자
컴퓨터의 설계부터 효율적인 이용에 이르기까지 전반적인 데이터 처리 과정에서 유능하고 지식이 풍부한 사람의 적극적인 개입이 필