자료와 정보

 

[자료] 사전적 의미로 연구나 조사 등 어떤 일의 바탕이 되는 재료

 

[정보] 사실을 문자, 소리, 이미지, 영상 등의 기호로 표현한 것.
        수집한 자료를 특정한 목적을 위해 활용할 수 있게 만든 결과물 또는 지식

 

[추상화] 주어진 문제에서 특정한 목적과 관련된 필수적인 정보만을 추출하고 기타 정보는 감추는 과정

 


 

정보의 특징

  1. [무형성] 정보 자체로는 어떤 형태를 가지지 못하기 때문에 저장 매체 또는 전달 매체에 의존적이다.

  2. [독점성] 정보의 가치를 최대한 높이기 위해서는 비공개적으로 빠르게 수집 및 생산하여 독점해야 한다.
            그러나 때로는 공개적인 자료가 그 자체로 정보의 특징이 되기도 한다.

  3. [적시성] 정보는 수요자가 원하는 시점에 바로 전달되어야 하며, 그렇지 않은 경우 가치가 떨어진다.

  4. [비소모성] 타인에게 전달이 되어도 소모되지 않고 계속 남아 있기 때문에 하나의 정보를 여러 사람이 이용할 수 있다.

  5. [상대성] 같은 정보도 사용자가 어떤 목적으로 이용하는가에 따라 상대적으로 다른 가치를 지닌다.

 


 

자료 구조

 

자료의 추상화를 통해 자료의 논리적 관계를 구조화한 것

 

 

목적

  1. [메모리의 절약]

  2. [프로그램 실행 시간 단축]

  3. [프로그램의 구현 용이]

 

분류

 

자료의 표현 단위

<물리적 단위>
비트(bit) 정보 표현의 최소 단위로, 2진수 0 또는 1을 나타낸다.
니블(nibble) 1/2바이트를 의미하며, 1니블은 4비트이다.
바이트(byte) 컴퓨터에서 사용되는 자료의 기본 저장 단위로,
1바이트는 2니블을 의미하며,
1바이트는 8비트이다.
워드(word) 컴퓨터에서 CPU가 한 번에 처리하는 명령어의 기본 단위이다.
1워드는 4바이트 또는 full word라고 하고, 1/2워드는 2바이트로 half word라고 한다.
(단, 1워드가 항상 4바이트는 아니다. 2바이트 또는 8바이트를 1워드로 하는 시스템도 있다.)
1워드 = 4바이트 = 32비트
<논리적 단위>
필드(field) 파일 구성의 최소 단위로 항목(item)을 의미한다.
레코드(record) 하나 이상의 필드들이 모여 구성된 자료 처리 단위이다.
파일(file) 여러 개의 레코드가 모여 구성되며, 디스크의 저장 단위이다.
데이터베이스 자료를 편리하고 효율적으로 사용할 수 있도록 저장한 파일 형태의 집합이다.

 


 

정수형 데이터의 표현

 

고정 소수점 표현 방식

소수점을 포함하지 않는 정수를 표현한다.

대개 2바이트로 구성된 half word와 4바이트로 구성된 full word로 표현한다.

-2,147,483,648~+2,147,483,647까지의 정수를 표현할 수 있다.

 

진수 변환법

 

1. 부호와 절대치 표현법
    최상위 1비트부호 비트로, 양수는 0, 음수는 1로 표시한다.

10진수 +5-5를 표시할 경우(16비트)
+5 0000 0000 0000 0101
-5 1000 0000 0000 0101

 

2. 부호와 1의 보수 표현법
    최상위 1비트부호 비트로, 양수는 0, 음수는 1로 표시하고,
    음수일 경우 나머지 비트에는 절댓값의 1의 보수(0↔1)를 표시한다.
    부호 비트보수의 영향을 받지 않는다.

10진수 +5-5를 표시할 경우(16비트)
+5 0000 0000 0000 0101
-5 1111 1111 1111 1010

3. 부호와 2의 보수 표현법
    최상위 1비트부호 비트로, 양수는 0, 음수는 1로 표시하고,
    음수일 경우 나머지 비트에는 절댓값의 2의 보수(1의 보수에 1을 더함)를 표시한다.
    부호 비트보수의 영향을 받지 않는다.

10진수 +5-5를 표시할 경우(16비트)
+5 0000 0000 0000 0101
-5 1111 1111 1111 1011

 


 

문자 데이터의 표현

 

유니코드(unicode)

모든 문자를 통일된 부호 체계로 표현하도록 지원하는 국제 표준 코드다.
하나의 문자를 표현하는 데 2바이트를 사용한다.
모든 문자를 16비트로 표현하므로 최대 65,536자를 표현할 수 있다.
모든 글자를 표현할 수 있지만, 프로그램의 용량이 커진다.

 

ASCII(American Standard Code for Information Interchange) 코드

ASCII 코드는 한 문자를 표현하는 데 7비트(존: 3비트, 숫자: 4비트)로 구성된다.
128개의 문자를 표현할 수 있고, 대·소문자의 구분이 가능하다.
미국 표준 코드이며, 데이터 통신 및 개인용 컴퓨터에서 문자 표현 코드로 사용된다.

ASCII 코드 형식(American Standard Code for Information Interchange) / 한 문자에 7비트로 구성된다.
                                                                               
Zone bit Digit Bit

 

BCD 코드 형식(Binary Coded Decimal) / 한 문자에 6비트로 구성된다. 2진화 10진 코드다.
                                                                       
Zone Bit Digit Bit

 

EBCDIC 코드 형식(Extended Binary Coded Decimal Interchange) / 한 문자에 8비트로 구성된다. 확장 2진화 10진 코드다.
                                                                                               
Zone Bit Digit Bit

 

한글 코드

[완성형 코드] 하나의 음절에 코드를 부여하여 2바이트에 표현한다.
    총 2,350자만 표현할 수 있어 모든 글자를 나타낼 수 없다. 

[조합형 코드] 한글의 초성, 중성, 종성 각각에 5비트를 조합하여 표현한다.
    최상위 1비트는 영문자와 구별하기 위하여 사용한다.
    모든 한글을 표현할 수 있으나 국제 표준화 기구의 정보 교환용 확장법에 위배되어 표준으로 쓰기에는 부적합하다.

 


 

선형 구조는 비슷한 형태의 자료들을 연속적인 공간순서대로 저장하는 자료 구조를 말한다.
선형 구조로 저장된 자료들은 이웃하는 각 한 개의 원소와만 연결되기 때문에 각 자료들은 1:1 대응 관계를 형성한다.
선형 구조의 종류에는 배열, 스택, 큐, 리스트 등이 있다.

 


 

배열(array)

동일한 성격의 자료들을 연속된 공간에 저장하는 선형 구조다.
주로 반복적이고 많은 자료를 처리할 때 사용한다.

배열에서 각 자료는 연속적인 메모리 공간에 저장된다.
논리적인 구조와 실제로 하드디스크에 저장되는 물리적 위치가 동일하다.
배열에 첫 원소의 위치크기를 알면 자료의 위치를 쉽게 찾아낼 수 있다.
배열은 원하는 자료를 쉽게 찾고, 많은 양의 자료를 하나의 이름으로 저장해 공간을 효율적으로 사용할 수 있다.
배열은 첨자의 개수에 따라 1차원 배열, 2차원 배열, 3차원 배열로 구분한다.

 

  • 배열의 크기(3) < 자료의 개수(5) = 저장 공간 부족
  • 배열의 크기(5) > 자료의 개수(3) = 저장 공간 낭비
  • 배열은 선언된 후 크기를 수정할 수 없으므로 잘 고려해야 저장 공간의 부족이나 메모리의 낭비를 방지할 수 있다.

 

  • 배열 중간에 새로운 자료를 추가하면 먼저 저장된 자료를 오른쪽으로 한 칸씩 이동하고 데이터를 추가한다.
  • 배열 중간에 자료를 삭제하면 삭제된 자료의 오른쪽 자료부터 한 칸씩 앞으로 이동해야 한다. 
  • 배열 중간에 자료를 수정하면 기존의 자료도 옮겨야 하기에 비효율적이다.

 


 

2차원 이상의 배열을 다차원 배열이라고 한다.
다차원 배열은 2개 이상의 인덱스를 사용하여 자료를 저장하며, 실제로 저장되는 메모리에는 1차원으로 저장된다.

2차원 배열(논리적 구조)
  국어 수학 역사 과학
1학기 80 96 83 100
2학기 88 100 96 98

 

2차원 배열(물리적 구조)
80 96 83 100 88 100 96 98

 

2차원 배열을 표현하는 방법에는 행 우선 순서와 열 우선 순서가 있다.
행 우선 순서는 첫 번째 행의 인덱스 번호를 먼저 쓰고 열 번호를 1씩 증가시킨다.
열 우선 순서는 첫 번째 열의 인덱스 번호를 먼저 쓰고 행 번호를 1씩 증가시킨다.

 


 

스택(stack)

모든 자료의 삽입과 삭제가 한쪽 끝에서만 수행되는 제한적 개념의 선형 구조다.
마지막 자료가 먼저 출력되기 때문에 후입 선출(LIFO, last in first out) 구조라고 한다.
중간에 자료를 삽입(push)하거나 삭제(pop)할 수가 없기 때문에 자료의 입출력이 비교적 제한적이며,
스택의 톱(top) 위치에서만 자료의 삽입과 삭제가 이루어진다.

 

  • 스택에서 톱(top)의 초깃값은 -1이다.
  • 톱(top)은 자료가 삽입될 때마다 1씩 증가한다.
  • 톱(top)은 자료가 삭제될 때마다 1씩 감소한다.
  • 자료가 가득 찬 상태에서 새로운 자료를 추가할 수 없다. 오버플로(overflow)가 발생한다.
  • 자료가 없는 상태에서 자료를 삭제할 수 없다. 언더플로(underflow)가 발생한다.

 


 

큐(queue)

저장 공간 안에 먼저 입력된 데이터부터 순서대로 출력되는 구조다.
첫 자료가 먼저 출력되기 때문에 선입 선출(FIFO, first in first out) 구조라고 한다.

front 포인터는 자료가 출력되는 지점, rear 포인터는 자료가 입력되는 지점이다.

 

  • 큐에서 front와 rear의 초깃값은 -1이다.
  • rear은 자료가 삽입될 때마다 1씩 증가하며 한 칸씩 뒤로 이동한다.
  • front은 자료가 삭제될 때마다 1씩 감소한다.
  • rear와 큐의 크기가 같아지면 자료를 추가할 수 없다. 오버플로(overflow)가 발생한다.
  • front와 rear의 값이 같아지면 자료를 삭제할 수 없다. 언더플로(underflow)가 발생한다.

'----------고2---------- > 자료 구조' 카테고리의 다른 글

[고2 자료구조] 1학기 2차  (0) 2024.06.13