컴퓨터와 데이터
컴퓨터
- 프로그램이 가능한 데이터 처리기 programmable data processor
- 프로그램을 통해서 데이터를 입력하여 처리, 저장 검색, 출력하는 전자적 장치
- 프로그램
- 컴퓨터가 데이터를 어떻게 처리할지를 알려주는 일련의 명령어 집합
- 처리 가능한 작업의 유형과 연산의 집합을 결정
→ 특수 목적의 작업을 처리하는 기계가 아니라, 다양한 형태의 작업을 수행할 수 있는 범용의 기계 - 프로그래밍 과정의 결과물
- 주어진 문제의 해결 방법과 절차를 찾는다. → 알고리즘
- 적절한 프로그래밍 언어를 사용해서 컴퓨터가 이해할 수 있는 형태로 표현
컴퓨터의 장점
- 신속한 처리
- 처리 결과의 정확성: 유효한 입력과 프로그램이 주어지면 항상 정확한 결과 생성
- 자동: 프로그램 지시에 따라 자동으로 처리 → 사람의 개입이 불필요
- 대용량: 대용량의 데이터 저장 및 처리
컴퓨터과학
- 데이터의 표현, 저장, 조작, 검색과 밀접히 관련된 분야
→ 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 분야 - 컴퓨터, 데이터, 프로그램, 알고리즘에 대한 분야
- 알고리즘(주어진 문제를 해결하기 위한 처리 과정을 절차적으로 나열한 명령어들의 집합)과 관련된 이슈(한계, 분석, 개발, 통신, 표현, 실행)를 다루는 학문
컴퓨터과학의 특성
- 비교적 짧은 역사, 빠른 변화 및 엄청난 영향력
- 다른 분야와의 밀접한 연관 → 폭 넓은 연구/응용 범위
컴퓨터 시스템
하드웨어
- 기계를 구성하고 있는 모든 물리적인 기계장치/전자장치
- 핵심 장치: 폰 노이만 모델에서 제시한 4개의 서브시스템
- 폰 노이만 모델
- 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
- 모든 컴퓨터는 폰 노이만 모델에 기반을 둠
폰 노이만 모델에 의한 시스템
- 기억장치(주기억장치, 보조기억장치): 처리할 입력 데이터, 처리를 담당하는 프로그램, 중간 결과, 출력할 데이터
- 산술논리연산장치: 산술 연산과 논리 연산의 수행을 통해 직접적인 데이터 처리가 이루어지는 장치
- 제어 장치: 컴퓨터의 기억장치, ALU, 입출력장치의 동작을 제어하는 장치
- 입력장치(보조기억장치)
- 출력장치(보조기억장치)
하드웨어 요소 간의 통신
폰 노이만 모델의 주요 개념
- 내장 프로그램
- 실행될 프로그램은 메모리에 저장되어야 한다.
- 초기 컴퓨터에서는 데이터만 메모리에 저장되고, 프로그램은 컴퓨터 외부에 표현
- 프로그램과 데이터가 동일한 형식(비트 패턴)으로 메모리에 표현된다는 의미를 내포
- 프로그램은 유한 개의 명령어의 나열이다
- 미리 정의된 기본 명령어의 유한 개의 조합으로 구성된다.
- 메모리에서 한 번에 하나씩 명령어를 가져와서 해석하고, 실행한다.
- 명령어의 재사용 → 프로그래밍 작업이 간단해짐
소프트웨어
모든 종류의 프로그램을 총체적으로 표현하는 용어
- 컴퓨터가 데이터를 어떻게 처리할 것인가를 규정하는 명령어들의 나열
- 컴퓨터가 이해할 수 있도록 표현된 알고리즘
소프트웨어의 분류
- 시스템 소프트웨어: 컴퓨터 자체의 작업 관리와 특정 기능의 수행을 통해 컴퓨터의 전체적인 운영을 담당 (운영체제, 컴파일러 등)
- 응용 소프트웨어: 사용자가 요구하는 작억을 직업적으로 수행하는 프로그램
데이터
- 모든 데이터는 유형에 관계 없이 비트 패턴으로 표현
→ 비트 패턴: 이진 상태를 나타내는 비트인 0과 1이 나열된 형태 (폰 노이만 모델에서는 데이터의 표현 및 저장 형태에 대해서는 정의하지 않음) - 데이터의 입출력을 위해서는 적절한 형태로의 변환이 필요
사용자
컴퓨터의 설계부터 효율적인 이용에 이르기까지 전반적인 데이터 처리 과정에서 유능하고 지식이 풍부한 사람의 적극적인 개입이 필요
데이터와 정보
데이터와 정보의 관계
I = P(D): 데이터 처리, 정보 처리
- 데이터: 현실 세계로부터 관찰이나 측정을 통해 단순히 얻어지는 값/사실
- 정보: 어떤 상황에 대해 적절한 의사결정을 수행할 수 있게 하는 지식
데이터의 표현 형태
데이터의 유형과 무관하게 일관된 표현 방식
- 문자, 정수/실수, 이미지, 오디오 비디오 등
- 비트 패턴
- 메모리에 저장된 데이터 유형에 맞는 해석과 처리가 필요
→ 입출력 장치나 프로그램의 책임
데이터의 표현 단위
- 비트(binary digit)
- 바이트(byte): bit * 8
- KB, MB, GB, TB, PB, EB, ZB, YB
- 워드(word): 컴퓨터 연산의 기본 단위가 되는 정보의 양 → 32비트, 64비트
진법
- 수를 세는 방법 또는 단위
- r진수 → 0, 1, …, (r-1)까지의 숫자만을 사용해서 표현한 수
- 각 위치에 따른 서로 다른 가중치(자릿값)가 존재
- 10진수 → r진수: 정수 부분과 소수 부분을 구분하여 각각 처리한 후, 각 결과를 단순히 연결해서 나열
- 2진수 → 8진수: 3자리씩 묶어서 표현
- 2진수 → 16진수: 4자리씩 묶어서 표현
정수 표현
부호 없는 정수
- 부호(+, -) 비트가 없음
- n비트 → 0 ~ 2^n-1
부호 있는 정수
최상위 비트 ⇒ 부호 비트(0: 양수, 1: 음수)
- 부호화 크기: 절대값으로 표현
- 1의 보수: 양수에 대한 보수로서 표현
- 2의 보수: (1의 보수 +1) 로 음수 표현
실수 표현
과학적 표기법을 활용한 부동소수점 방식으로 표현
초과표기법
부동소수점 방식의 지수 부분만을 표현하기 위한 방법
→ 매직 넘버: m 비트 → 2^m-1 또는 (2^m-1) -1문자 표현
정규화
가수를 표현할 때 표준화된 형식이 필요
IEEE 부동소수점 방식의 표준 형식
- 단정도: 4바이트
- 배정도: 8바이트
문자 표현
키보드를 통해 입력되는 문자도 2진수로 표현되어 처리
- 각 문자마다 유일한 값으로써 코드를 할당할 수 있는 약속된 문자 체계가 필요
- ASCII, 유니코드
ASCII(American Standard Code for Information Interchange)
- 미국표준협회(ANSI)
- 7비트 코드
- 128(2^7)의 서로 다른 문자 표현
- 확장된 아스키(1비트+7비트): 패러티(parity) 비트 → 짝수 패러티 / 홀수 패러티
유니코드
세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표전
- 1990) 애플 컴퓨터, IBM, MS 등의 컨소시엄으로 설립한 유니코드가 첫 버전 발표
- 1995) 국제 표준으로 제정 → 공식명칭: ISO/IC 10646-1
- 사용중인 플랫폼, 프로그램 언어에 무관
- 16비트 코드 체계 → 65,636개(2^16)의 서로 다른 문자 표현
EBCDIC(Extended Binary Coded Decimal Interchange Code)
IBM 개발 8비트 코드 → 실제 사용되는 문자 코드는 127개로 IBM 메인프레임에서만 사용
BCD(Binary Coded Decimal)
4비트로 구성된 열 개의 코드로 10진수를 표현 → 8421 코드
'CS' 카테고리의 다른 글
[프로그래밍 언어론] 구문론과 의미론 (1) | 2023.11.22 |
---|---|
[프로그래밍 언어론] 프로그래밍 언어 패러다임 (1) | 2023.11.22 |
[프로그래밍 언어론] 프로그래밍 언어의 발전 및 동작원리 (0) | 2023.11.22 |
[프로그래밍 언어론] 프로그래밍 언어 소개 (1) | 2023.11.22 |
[컴퓨터과학개론] 자료구조 (1) | 2023.11.19 |