전공과목 정리/IT개론

[IT개론🗃️] 컴퓨터과학 도입부

최연재 2022. 1. 28. 23:16

내용 출처  : 소프트웨어 세상을 여는 컴퓨터과학

 

-------

개발 블로그를 티스토리로 옮기며 기존의 네이버 블로그에 작성한 내용을 그대로 옮겼습니다.

https://blog.naver.com/0yeonjae2/222599657553

-------

1. 컴퓨터의 개요

1) 컴퓨터의 기능과 구성

(1) 컴퓨터의 기능

- 입력 기능 : 처리할 데이터를 컴퓨터로 입력

- 기억 기능 : 입력 데이터, 처리 결과, 프로그램 등을 기억

- 연산 기능 : 사칙 연산, 논리 연산 등을 수행

- 제어 가능 : 명령을 해독하고 각 장치를 통제

- 출력 기능 : 처리 결과를 사람이 원하는 형태로 출력

 

(2) 컴퓨터의 구성

- 하드웨어 : 컴퓨터를 구성하는 기계 장치로, 소프트웨어가 지시한 일을 수행

- 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 역할을 하는 프로그램과 프로그램에 필요한 데이터

== 프로그램과 데이터의 집합

 

 

2) 하드웨어

(1) 하드웨어의 구성

① 중앙처리장치 : 명령어를 해독하고 실행하는 장치

- 중앙처리장치의 구성

제어장치 : 중앙처리장치에서 일어나는 모든 작업을 통제하고 관리

연산장치 : 제어장치의 신호에 따라 산술 연산과 논리 연산 수행

레지스터 집합 : 중앙처리장치에서 명령어를 수행하는 동안 필요한 모든 정보 저장

 

② 기억장치 : 실행 중인 프로그램과 프로그램에 필요한 데이터를 저장하는 장치

- 만족스러운 기억장치의 조건 : 낮은 비용, 큰 용량, 빠른 속도

- 기억장치의 계층구조

중앙처리장치가 당장 필요로 하는 프로그램과 데이터는 빠른 속도로 기억장치에 저장하고 중앙처리장치가 현재 필요로 하지 않는 많은 양의 프로그램과 데이터는 보조기억장치에 저장

- 용량 크기 : 보조기억장치 > 주기억장치 > 캐시기억장치 > 레지스터

- 속도와 가격 : 레지스터 > 캐시기억장치 > 주기억장치 > 보조기억장치

- 주기억장치

실행 중인 프로그램과 실행에 필요한 데이터를 저장한다.

램(RAM, random access memory) : 실행 중인 프로그램과 실행에 필요한 데이터를 일시적으로 저장한다.

롬(ROM, read only memory) : 부팅할 때 동작하는 바이오스(BIOS, basic input output system) 프로그램을 저장한다.

- 캐시기억장치

중앙처리장치가 자주 필요로 하는 프로그램의 일부와 데이터를 저장한다.

주기억장치와 중앙처리장치 간 속도 차이로 발생하는 성능이 저하하는데, 캐시기억장치를 이용해 속도를 개선할 수 있다.

 

③ 입력장치

- 문자, 그림, 소리, 동영상 등과 같은 외부의 데이터를 컴퓨터로 읽어 들임

- 키보드, 마우스, 태블릿, 스캐너, 조이스틱 등

 

④ 출력장치

- 컴퓨터에서 처리한 결과를 사람이 이해할 수 있는 형태로 저장한다.

- 모니터, 프린터, 스피커, 플로터 등

 

3) 소프트웨어

(1) 시스템 소프트웨어

- 운영체제

: 하드웨어의 각 장치를 관리하고 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다.

ex) 윈도우, 리눅스, 유닉스 등

- 언어 번역 프로그램

: 사람이 이해하기 쉬운 형태로 작성된 프로그램을 컴퓨터가 이해할 수 있는 형식으로 번역한다.

ex) 어셈블러, 컴파일러, 인터프리터 등

- 유틸리티 프로그램

: 운영체제의 기능을 보완해서 사용자가 컴퓨터를 편리하게 사용할 수 있도록 도와준다.

ex) 시스템 관리 프로그램, 텍스트 편집기, 백신 프로그램

 

(2) 응용 소프트웨어

워드프로세서 : 문서 작성이 가능하다.

스프레드시트 : 복잡한 계산을 쉽게 할 수 있다.

웹 브라우저 : 필요한 정보를 검색할 수 있다.

프레젠테이션 : 발표 자료를 만들 수 있다.

멀티미디어 재생 및 저작 : 음악도 듣고 열화를 볼 수 있다

 

 

2. 컴퓨터 과학

: 컴퓨터 과학은 컴퓨터를 개발하고 사용하는 데 기반이 되는 이론, 실험, 기술 등을 연구하는 학문 분야를 말하고 컴퓨터 과학을 실생활에 적용한 모든 응용 기술을 컴퓨터 과학 기술이라 한다.

 

* 클라우드 컴퓨팅

- 인터넷으로 연결된 다른 컴퓨터에 프로그램과 자료를 저장하고 필요할 때마다 자신의 컴퓨터로 불러와 사용하는 기술

- 개인용 컴퓨터뿐만 아니라 다양한 유형의 기기에서 이용 가능

- 여러 사용자가 시스템 자원을 공유할 수 있어 편리함.

 

* 사물 인터넷(IoT : internet of things)

- 센서와 통신 기능을 내장한 사물과 사물을 인터넷으로 연결한 기술

- 각 사물은 수집한 자료를 처리 및 분석하여 다른 사물 또는 사람에게 제공함으로써 상호 소통한다.

 

1) 컴퓨터과학의 역사

(1) 초기의 계산기

파스칼린 : 덧셈, 뺄셈이 가능하고 톱니바퀴를 이용한다.

라이프니츠 계산기 : 덧셈, 뺄셈, 나눗셈, 곱셈이 가능하고 톱니바퀴를 이용한다.

천공카드 시스템

 

(2) 마크원과 에니악

마크원 : 배비지의 해석 기관을 구현했다.

에니악 : 세계 최초의 범용 컴퓨터

 

(3) 초기의 개인용 컴퓨터

-알테어 8800

: 세계 최초의 상업용 조립식 개인용 컴퓨터로 소프트웨어가 따로 없고 전면의 토글 스위치로 코드를 입력한다.

-애플 1

1976년에 지금의 애플이 출시한 개인용 컴퓨터로 스티브 워즈니악이 설계하고 수공으로 제작했다.

-IBM PC

: 1981년 IBM사가 선보인 컴퓨터, 현재 IBM PC 호환 기종의 모체

 

2) 컴퓨터의 발전과 시대적 배경

(1) 주판 : 동양(기원전 26세기), 서양(기원전 3~4세기)

 

(2) 프랑스 파스칼(Pascal)의 덧셈기(1642년) : 톱니바퀴의 원리, 덧셈과 뺄셈

 

(3) 라이프니츠(Leibniz)의 계산기(1671년) : 곱셈, 나눗셈, 제곱근

 

(4) 찰스 배비지(Charlse Babbage, 1792~1871)의 분석 엔진(analytic engine) (1833년)

: 찰스 배비지는 컴퓨터의 아버지라 불리는 인물이며, 미분 엔진(Difference Engine)을 발전시켜 분석 엔진을 만들었다. 분석엔진은 모든 범용 컴퓨터의 모체로 제어, 연산, 저장, 입출력장치를 포함한다.

하지만 당시의 기술로는 구현하지 못했다.

 

(5) 오거스타 에이다 (1815-1852)

- 유명 귀족 집안에서 태어난 백작부인이며, 수학에 천재적인 재능을 가지고 있고, 지적 욕구가 높고 상상력이 풍부한 형이상학자이다.

- 배비지가 이해한 기계를 이해했다.

: 분석 엔진의 계산과정을 기술하는 프로그램을 만들어 컴퓨터의 시조가 되는 데 공헌하였고 1842년 배비지의 분석 엔진에 대한 고찰(Observations on Mr.Babbage's Analytical Engine)을 출간했다.

- 프로그래밍언어 에이다

: 1979년 미국 국방성에서는 그녀의 업적을 기념하여 새로 개발한 프로그래밍 언어를 그녀의 이름을 따 'ADA'라고 명명했다.

 

(6) 홀러리스의 천공카드기계(PCS : PunchCard System)

- 기차표에 착안하여 설계한 최초의 전기-기계식 컴퓨터

- 자료를 천공카드 상태로 표현하여 구멍의 유무를 전기적인 신호로 검출하여 사용한다.

- 1911년 홀러리스를 회사를 설립한다. -> 현재의 IBM으로 발전한다.

 

(7) 영국의 수학자 엘런 튜링의 튜링 머신(1936)

- 런던 수학 회보에 '계산 가능한 수에 관한 연구:결정 문제의 적용과 관련하여'라는 연구 논문에서 튜링 머신 이론을 발표

- 알고리즘을 수학적이고 기계적인 절차들로 분해하여 동작할 수 있는 컴퓨터의 실행과 저장에 관한 추상적인 모델이다.

 

(8) 헝가리인 폰노이만(1942)

- "프로그램 내장 방식" 컴퓨터(Stored-Programming Computer)의 개념을 제시한다.

- 명령어와 데이터를 2진수로 코드화하여 계산 순서를 미리 기계 내부의 메모리에 저장해 두고 실행할 때 컴퓨터가 순차적으로 그 기억내용을 꺼내 해독하여 자동으로 처리하는 방식

 

(9) Havard Mark 1 (1944)

- 하버드 대학의 Aiken교수와 IBM이 합작하여 제작했다.

- 최초의 전자 디지털 컴퓨터이며, 배비지의 해석기관을 구현했다.

 

(10) ENIAC (1946)

- 펜실베니아 대학 모클리(Mauchly)와 에커트(Eckert)가 개발

- 세계 최초의 범용 컴퓨터

- 유연성이 부족해 새로운 문제를 시행할 때마다 배선을 다시 해야 한다.

- 길이 30m, 높이 3m, 무게 30톤, 18000개의 진공관이 있다.

 

(11) EDSAC (1949)

- 영국 케임브리지 대학의 윌크스

- 세계 최초의 프로그램 내장 방식의 범용 컴퓨터

 

(12) EDVAC (1950)

- 미국 펜실베니아 대학과 프린스턴대 연구소에서 모클리와 에커트가 에니악을 개조하여 개발했다.

- 프로그램 내장 방식

 

(13) UNIVAC 1 (1951)

- 에커트-모클리 사에서 에드박을 개선하여 개발

- 세계 최초의 상업용 컴퓨터

 

(14) 제1세대 컴퓨터

- 진공관

- 주기억장치 : 자기코어

- 입출력장치 : 천공카드

- 프로그램 : 기계어로 작성

 

(15) 제2세대 컴퓨터

- 트랜지스터

- 크기 대폭 축소, 전력 소모량 감소, 계산속도 증가, 신뢰성 증가

- 활용분야 : 비즈니스, 산업계, 항공사, 대학교 등

- 프로그램 : FORTRAN, COBOL

 

(16) 제3세대 컴퓨터

- IC칩

- IC칩 하나가 수 백 개의 전자소자 포함

- 컴퓨터 크기가 획기적으로 축소, 신뢰도 향상, 전력 소모량 향상

- 메인프레임, IBM System 360

- 미니컴퓨터

 

(17) 제4세대 컴퓨터

- LSI(large scale integrated), VLSI(very large scale intergrated), ULSI(ultra scale integrated)

- 마이크로 컴퓨터

- 1980년대, 퍼스널 컴퓨터(pc)

Apple, Apple 1(1977)/ IBM-PC(1981) : Intel 8088칩 기반

- 그래픽 사용자 인터페이스(GUI) : Lisa, 맥킨토스 등

- 노트북 컴퓨터 : 휴대성

- 모바일 컴퓨터의 유용성 : 스마트폰, 태블릿 pc

 

3) 컴퓨터 활용의 시대적 변화

(1) 기관 위주의 컴퓨팅 시대 (1950년대 시작) : 메인프레임 위주, 대기업, 정부기관, 대학 등

(2) 개인 컴퓨팅 시대 (1975년대 시작) : 사무자동화 분야

(3) 사람 간의 컴퓨팅 시대 (1995년 시작) : WAN, LAN, 웹 서비스(1989~), 전자상거래, 온라인 게임 등

(4) 임베디드 및 사물인터넷 시대 : 디지털 가전제품, 웨어러블 기기, 자동차 등

 

4) 컴퓨터과학 분야

컴퓨터과학 : 컴퓨터구조, 프로그래밍, 자료구조, 알고리즘, 데이터베이스, 네트워크, 운영체제