1. 정보와 프로그램
데이터
관찰이나 실험, 조사로 얻은 사실, 이론을 세우는데 기초가되는 사실 또는 바탕이 되는 자료
➡ 관찰이나 측정을 통해 얻은 수치, 문자 형태로 표현할수 있는 질적 혹은 양적인 값
정보 (information)
데이터나 소식을 통하여 얻은 지식이나 상태의 종량
관찰이나 측정을 통해 수집한 자료를 문제해결에 도움이 될수 있도록 정리한 지식
➡ 관찰과 측정을 통해 얻은 데이터를 처리(정렬, 합산, 군집화)하여 실제 문제 해결에 도움이 되는 데이터 또는 결과물
1) 정보처리의 과정
데이터 : 현상에 대한 관찰과 측정으로 생성(직접 문제해결에 도움 X),처리와 가공을 통해 정보로 변환
측정된 데이터 (연속적 데이터, 범주적 데이터)
관찰 : 사물 또는 현상을 파악하는 행위
측정 : 절대적인 기준을 맞춰 현상을 수치로 나타내는 과정 (연속적 데이터, 범주적 데이터)
처리와 가공 : 수집된 데이터를 집합으로 정렬, 군집화, 계산 또는 표현방법 변경 등의 데이터를 변환하여 정보를 생산하는 과정
2) 컴퓨터: 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계
비트 (bit, binary digit) : 두가지 상태값을 표현하는 기본 단위를 여러개 중첩시켜 데이터를 표현 또는 처리
바이트(byte) : 8개의 bit를 겹쳐서 표현
컴퓨터와 2진법 : 트랜지스터를 통해 2진법 숫자로 데이터를 표현하여 저장 및 처리
- emitter, base, collector이용 0과 1의 두가지 상태를 표현
emitter에 전류가 흐르나 collector에서는 흐르지 않으면 0,
emitter에 전류가 흐를때 base에 특정 이상의 전압 인가, collector에 전류 흐름(1)
아날로그(analog) : 사물이나 개념을 연속적 물리량 값으로 표현, 질적 데이터 또는 양적데이터표현
디지털(digital) : 사물이나 개념을 이산적인 값으로 근사하여 표현, 양적 데이터로 표현
숫자데이터 표현, 진법 변환 : 10, 12진수 ↔ 2진법
문자데이터 표현, 인코딩 체계 : 0100001 → A ex) ASCII ( 7비트 문자표현, 1비트 패리티)
-> 컴퓨터는 숫자와 문자를 처리하는 방법이 다름, 숫자/문자 구별을 위한 정보를 별도공간에 저장
3) 프로그램
컴퓨터 : 처리방법과 과정이 정의된 프로그램 사용
( 정보를 처리하기 위한 방법과 과정을 자의적으로 결정불가능 )
- 프로그램이란 어떠한 작업을 자동으로 처리할수 있도록
처리방법 및 순서를 컴퓨터가 이해할수 있는 언어형태로 기술한것
- 유사한 유형의 여러 문제를 추상화시킨 알고리즘(algorithm)을 구현한 결과물
알고리즘 : 문제를 풀기 위한 단계별 절차를 체게적 명령의 형태로 기술한것
주어진 명령어를 처리하는 컴퓨터에게 문제를 해결하도록 만드는 정형화된 절차
프로그래밍 언어 : 사람과 컴퓨터 사이의 의사소통 도구, 프로그래머가 컴퓨터가 이해할 수 있는
언어를 사용하여 프로그램을 작성 (작업처리 지시)
1세대 언어 : 기계어 (0과 1, 컴퓨터는 사용하기 편하나 사람이 이해하기 어려움) 저급언어(low level)
2세대 언어 : 어셈블리어 (명령어 영어 대체, low level)
3세대 언어 : 자연어와 유사 (Python, Java, C, Rust), 고급언어 (High level)
4세대 언어 : 자동화 (Visual Basic, 프로그램 자체로의 효율성 낮음, High level)
프로그램의 실행 : 고급언어로 작성된 프로그램은 기계어밖에 인식할수 없는 컴퓨터에 의해 실행불가
➡ 컴파일러, 인터프리터 (시스템 소프트웨어)
2. 컴퓨터의 구성
- 하드웨어 : 컴퓨터를 구성하고 있는 물리적 부품
- 소프트웨어 : 다양한 장치들을 동작시켜 특정 작업을 해결하는 프로그램
1) 하드웨어
- 기능에 따라 입력장치, 기억.저장장치, 제어장치, 연산장치, 출력장치로 구분
- 사람의 문제 해결과정과 유사 ( 입력 - 기억 - 저장 - 제어 - 연산 - 출력)
▣ 폰노이만 구조 (현대 컴퓨터의 기본 구조로 범용적 컴퓨터에 기여한 구조)
하드웨어의 구성
입력장치 : 명령과 데이터를 컴퓨터에 전달하는 장치, 컴퓨터가 처리할수 있는 2진수 형태로 변환
키보드, 마우스 , 스캐너, 터치 스크린
동작인식장치 마이오 - 팔찌형태, 팔근육 움직임을 인식하여 입력
립모션(Leap Motion) - 손동작 인식 (양손가능, 다양한 전용 소프트웨어)
출력장치 : 정보처리 결과를 인간이 인식가능한 형태의 데이터로 내보내는 장치,
2진수 형태의 데이터를 문자, 숫자, 도형, 음성, 영상등의 형태로 변환
모니터, 스피커, 프린터, 초지향성 스피커 (특정 방향으로 소리전달), 3D 프린터
HUD (Head-Up Display) 현실의 정보와 가상정보 혼합, AR(Augmented Reality)
자동차 유리에 주행관련 각종 정보표시
HMD (Head-Mounted Display) 가상 세계의 정보 표시, VR(Virtual Reality, 가상 전시회 등)
기억장치 : 명령과 데이터를 기억(저장)하는 하드웨어, 역할에 따라 주기억장치와 보조기억장치로 구분
주기억 장치 : 접근속도 빠르며, 비싸고, 용량이 작고, 전원 차단시 ROM:기억내용보존/RAM: 초기화
보조기억장치(저장장치) : 접근속도 느리며, 저렴하고, 용량은 크며, 전원 차단시에도 내용 보존,
플로피 디스크, 자기디스크, 광학디스크, 플래시 드라이브
특수기억장치 : SSD(Solid State Drive, RAM을 이용한 저장장치)
빠른 속도, 외부충격에 강함, 전력소모 적음
제어장치와 연산장치 (CPU내) : 명령어와 데이터를 읽고 데이터를 연산 또는 처리하는 장치
레지스터 : CPU내부에서 초고속으로 데이터를 저장하거나 읽어냄 (대략 8Kbyte정도의 크기)
연산논리유닛(ALU) : 제어유닛에서 내린 명령수행 후 레지스터에 저장
제어유닛 (Control Unit) : 레지스터에서 명령을 읽어 ALU가 수행하도록 함
2) 소프트웨어
유한 기능을 수행하는 하드웨어가 언제 어떻게 동작하여 문제를 해결할수
있는지 절차를 지시하는 명령어 집합
- 시스템 소프트웨어 : 하드웨어를 제어.관리하여 응용소프트웨어를 실행할수 있는 환경제공
- 응용 소프트웨어 : 사용자 업무나 목적의 문제 해결을 위한 처리절차를 표현한 명령어 집합
시스템 소프트웨어
다양한 장치들을 서로 유기적으로 동작시켜 특정 작업을 수행할수 있는 환경을 조성하는 프로그램
- 운영체제(커널) : 사용자가 컴퓨터를 효율적으로 운영/관리/사용할수 있도록 하드웨어를 제어
- 유틸리티 : 부가적인 기능을 제공하여 컴퓨터를 효율/편리하게 사용할수 있도록 지원
- 컴파일러 : 소스코드를 컴퓨터가 이해할수 있는 기계어로 번역
운영체제 : 시스템 환경관리 (시스템관리 , 장치제어)
사용자 작업을 처리하기 위해 컴퓨터 자원(하드웨어)를 효율적으로 관리,
응용 프로그램에 자원할당
- 사용자 인터페이스 컴퓨터와 사용자를 매개하여 상호작용하는 방법제공
CLI(Command Line Interface), GUI(Graphic User Interface)
- 프로세스 관리 ( 프로세스 : 현재 실행되고 있는 프로그램 )
여러 프로그램 실행이 요청시 한정된 자원(기억장치 등)을 효과적으로 사용하도록 조율
- 네트워크 인터페이스 (컴퓨터는 네트워크를 통해 상호 데이터 교환)
응용 프로그램이 통신할수 있는 환경 제공, 통신장치(하드웨어)관리
- 기억. 저장장치 관리
주기억장치의 크기는 보조기억장치에 비해 매우 작으므로 효율적인 관리 필요
컴퓨터의 프로그램은 실행되기 위해 보조기억장치에서 주기억장치로 적재
- 입출력장치 관리
'스터디 > Python' 카테고리의 다른 글
6. 실습 - 게임구현 (0) | 2024.05.04 |
---|---|
5. 모듈과 파일 (0) | 2024.05.03 |
4. 함수와 객체 (0) | 2024.05.02 |
3. 구조와 제어 (0) | 2024.04.21 |
2. 파이썬 Basic (0) | 2024.04.20 |