컴퓨터과학개론
1강
컴퓨터란?
- 컴퓨터는 입력과 출력이다
- 이 일련의 과정을 데이터 처리라고 한다
- 하지만 데이터처리기로만 이해하면 안된다. (이것은 그냥 기능적 측면)
- 그렇다면 계산기가 컴퓨터인가?
- 프로그램이 가능한 데이터 처리기가 바로 컴퓨터다
- 컴퓨터란 특수목적의 기계가 아니라 "다양한 형태" 의 작업을 수행할 수 있는 범용 기계다
다양한 형태의 작업을 수행하기 위해서 기능적인 요소로 "프로그램"을 추가한다.
컴퓨터의 장점
프로그램이란?
- 컴퓨터가 데이터를 어떻게 처리할지를 알려주는 일련의 멍령어 집합
- 프로그래밍 과정의 결과물
- 순서
- 문제의 해결방법과 절차를 찾는다 -> 알고리즘
- 그것을 적절한 프로그래밍 언어를 사용해서 컴퓨터가 이해할 수 있는 형태로 표현한다.
컴퓨터과학이란?
- 여러 정의로 나눌 수 있다.
- 정의 1: 컴퓨터가 프로그램을 통해 입력데이터를 처리,저장,검색,추력 해낼수있는 장치라면 컴퓨터과하긍ㄴ 결국 데이터의 표현, 저장,조작,검색과 밀접한 관계의 학문이다
- 정의 2: 컴퓨터 자체, 데이터, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 데이터 처리를 위한 제발기술과 방법들으 제공하는 분야이다 (데이터 처리를 위한 여러가지 과목들을 알아야 컴퓨터에 대한 통찰력이 생긴다)
- 정의 3: 알고리즘과 관련된 이슈를 다루는 학문
- 정의 4: 컴퓨터를 활용한 문제 해결에 대한 학문
컴퓨터과학 VS 컴퓨터공학
- 컴퓨터공학: 가격 대비 성능 특성이 가장 좋은 컴퓨팅 엔진을 만들기 위해 하드웨어와 소프트웨어 요소를 조립하는 방법에 관심
- 컴퓨터과학: 현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책의 효율성과 실현 가능성에 초점. (그렇기때문에 시스템구현과 관련덴 상세한 내용을 숨기는 추상화를 통해 작업을 수행 -> 훨씬 복잡한 시스템의 구현과 이해가 가능해짐)
컴퓨터 시스템
폰 노이만 모델
- 컴퓨터 내부구조와 처리 과정을 정의한 모델
- 모든 컴퓨터가 폰 노이만 모델에 기반을 두고있다
- 폰 노이만 모델 이전의 컴퓨터는 데이터만 메모리에 저장, 프로그램은 외부에서 표현되는 것이었다.
- 폰 노이만 모델에서 컴퓨터는 4개의 서브시스템인 기억장치, 산술논리연산장치, 제어장치, 입출력장치로 구성된다
- 기억장치 -> 주기억, 보조기억
- 산술논리연산자(사칙연산, 논리연산(AND, OR ...)) + 제어장치 -> CPU
- 입출력장치는 흔히 키보드 마우스 모니터 등 외에도 디스크 같은 보조기억장치도 입출력장치에 포함될 수 있음
- 내장 프로그램 방식 (stored program)
- 프로그램과 데이터가 같은 메모리에 저장된다 -> 결국 프로그램과 데이터는 모두 0과 1의 나열인 비트패턴형식으로 표현된다
- 프로그램은 유한개의 명령어로 구성
- 명령어를 하나씩 가져와서 (fetch) 그것을 해석하고(decode) 해석결과에 따라 산술논리연산장치가 명령어를 실행(execute)한다
- 프로그램을 명령어의 나열 형태로 구성하면 명령어의 재사용으로 인해 프로그래밍 작업이 간단해질 수 있음
소프트웨어
- 컴퓨터를 제대로 이용하기 위해서는 목적에 맞는 적절한 프로그램이 있어야하는데, 이런 모든 종류의 프로그램을 총체적으로 소프트웨어라고 부름
시스템 소프트웨어 VS 응용 소프트웨어
- 시스템: 컴퓨터 자체의 작업관리, 특정기능 수행 등 운영체제, 컴파일러, 각종 유틸리티 등이 해당된다
- 응용: 일반적인 사용자들이 흔히 사용하는 프로그램들이 응용 소프트웨어