자료와 정보의 이해
- 자료와 정보의 차이?
사전적 의미로 자료(data)는 연구나 조사 등 어떤 일의 바탕이 되는 재료이다. 자료를 의미 있게 정리한다면 정보(information)가 된다. 정보는 수집한 자료를 특정한 목표를 위하여 가공 처리하여 의사 결정이나 문제를 해결하는데 활용할 수 있다.
"삶이 당신에게 레몬을 준다면, 그것으로 레모네이드를 만들어라"는 철학적인 명언으로 자료와 정보에 비유한다면, 레몬이 자료라고 볼 수 있고, 레모네이드가 레몬(자료)을 가공하여 만들어진 정보라고 볼 수 있을 것이다.
- 추상화의 개념
크게 두 가지로 나눌 수 있는데 첫 번째는 필수적인 정보만을 추출하고 나머지 정보는 감추는 과정이다. 두 번째는 공통적인 개념을 이용하여 같은 종류의 다양한 객체를 정의하는 것이기도 하다.
두 번째의 경우에는 본인의 MBTI에 따라 추상화 결과가 많이 달라질 수 있을 것 같다. '사과'라는 공통 개념을 내놓았을 때 MBTI가 '_N__'이신 분들은 '스티브 잡스', '아이폰', '혁신'을, '_S__'이신 분들은 '빨갛다', '달다'를 떠올릴 수 있을 것 같다.
소프트웨어에서는 개발의 복잡성을 줄이기 위한 방법의 하나로 사용된다고 한다.
- 정보의 특징
앞에서 알아본 정보는 다양한 분류로 나눌 수 있다. 무형성, 독점성, 적시성, 비소모성, 상대성의 특징을 가지며, 이외에도 누적 가치성, 자기 조직성, 결과 지향성, 무한재생산성의 특징을 가진다. 각각 하나씩 알아보자.
- 무형성
정보 자체는 형태가 없기 때문에 저장 매체 또는 전달 매체에 의존적이다. 대표적인 예시로는 인터넷 신문을 예로 들 수 있을 것이다. - 독점성
정보는 공개되는 순간 가치가 급격히 떨어지기에 정보의 가치를 높이기 위해서 빠르게 수집 및 생산하여 독점한다. 대표적인 예시로는 빅테크 기업들의 고객 정보가 있을 것이다. 우리가 쓰는 이 티스토리 블로그도 카카오가 고객 정보를 독점하고 있지 않던가? - 적시성
정보는 수요자가 원하는 시점에 바로 전달하여야 하며, 때에 따라 전달되지 않는다면 정보로서의 가치는 떨어진다. 대표적인 예시로는 학교의 가정통신문을 떠올릴 수 있겠다. 오늘 나간 가정통신문이 일주일 뒤에 나간다면 정보로서의 가치가 있을까? - 비소모성
정보는 소유의 개념이 아니라 사용의 개념을 가진다. 타인에게 전달되어도 소모되지 않고 남아 있기 때문에 여러 사람이 이용할 수 있다. 대표적인 예시로는 개발자들의 티스토리 블로그를 떠올릴 수 있을 것 같다. 코딩하다 보면, 서버를 구축하다 보면 오류가 생기기 마련인데 이럴 때는 구글링을 통해서 10년 전에 어떤 개발자가 써놓은 티스토리 블로그 글을 정독하면 해결되는 경우가 있다. - 상대성
같은 정보여도 사용자가 어떻게 이용하느냐에 따라 상대적으로 다른 가치를 가진다. 대표적인 예시로 같은 내용의 글이어도 사람들은 각자의 생각이 있어 다르게 생각하는 경향이 있기에 느끼는 가치도 다를 수밖에 없을 것이다. - 누적 가치성
정보는 생산되고 축적될 수록 가치는 커진다. 대표적인 예시로 구글 검색엔진을 떠올릴 수 있을 것이다. - 자기 조직성
자료가 어떻게 구성되고 정리되는지를 나타내며, 효율적인 정보 전달을 한다. 대표적인 예시로는 학생들의 성적 정보를 저장하는 프로그램으로 볼 수 있겠다. - 결과 지향성
수신자의 행동이나 의사결정에 영향을 미치는 자료이다. 즉, 정보는 결과를 초래하거나 변화시킬 수 있다. 대표적인 예시로 온라인 쇼핑이 있겠다. - 무한재생산성
대부분의 정보는 매우 낮은 비용으로 무한히 재생산될 수 있다. 즉, 정보의 가치를 무한히 확장시킬 수 있다는 것이다. 대표적인 예시로는 SNS 게시물을 볼 수 있겠다.
자료 구조
자료 구조 (Data Structure)는 컴퓨터에서 데이터를 효율적으로 저장하고 조작하기 위한 방식을 의미한다. 이는 메모리 관리와 프로그램 실행 시간 단축에 중요한 역할을 한다.
- 자료 구조의 목적
(1) 메모리 절약
프로그램의 목적에 맞게 필요한 정보만 저장하여 저장 공간을 효율적으로 활용한다.
(2) 프로그램 실행 시간 단축
효율적인 알고리즘을 구현하기 위해 효율적인 자료 구조를 사용하여 프로그램의 실행 시간을 단축할 수 있다.
(3) 프로그램의 구현 용이
프로그램의 목적에 맞게 설계된 자료 구조를 이용하여 프로그램 구현을 쉽게 해 준다.
- 자료 구조의 분류
자료를 저장하는 방식이나 형태에 따라 크게 선형 구조와 비선형 구조로 분류한다. 선형 구조는 배열, 스택, 큐, 리스트가 있으며 비선형 구조는 트리와 그래프가 있다. (이와 관련된 건 후술 하겠다)
수치 데이터의 표현
컴퓨터 내부에서 사용하는 물리적 단위는 8개로 물리적 단위인 비트, 니블, 바이트, 워드와 논리적 단위인 필드, 레코드, 파일, 데이터베이스로 구분한다. 다음은 크기순으로 정렬한 자료의 표현 단위이다.
- 비트(bit) :
캡슐세제가 아니다.컴퓨터 세상 속에서 정보 표현의 최소 단위로, 2 진수. 즉, 0 또는 1을 나타낸다. - 니블(nibble) : 1/2바이트를 의미하며, 1 니블은 4비트이다.
- 바이트(byte) : 컴퓨터에서 사용되는 자료의 기본 저장 단위로, 1바이트는 2 니블을 의미하며, 1바이트는 8비트이다.
- 워드(word) : CPU가 한 번에 처리하는 명령어의 기본 단위이다.
- 필드(field) : 파일 구성의 최소 단위로 항목(item)을 의미한다.
- 레코드(recode) : 하나 이상의 필드들이 모여 구성된 자료 처리 단위이다.
- 파일(file) : 여러 개의 레코드가 모여 구성되며, 디스크의 저장 단위이다.
- 데이터베이스 : 자료를 편리하고 효율적으로 사용할 수 있도록 저장한 파일 형태의 집합이다.
위 표현 단위 중 집중해서 볼 내용은 필드와 레코드이다.
- 필드
자료 구성의 최소 단위로 "항목"이라고 한다. 파일이나 데이터베이스 내에서 각각의 데이터 항목을 나타낸다. 예를 들어, 학생 정보 데이터베이스가 있다면 각 학생의 이름, 학번, 전공, 성적 등은 각각 하나의 필드라고 볼 수 있겠다.
필드는 고정 길이 필드와 가변 길이 필드로 나뉜다. 고정 길이 필드는 데이터 유형이 이미 결정되어 필드의 길이가 임의로 달라질 수 없는 고정된 길이의 데이터 필드이고, 가변 길이 필드는 각 레코드에 포함되는 문자 수가 가변적인 데이터 형식을 의미한다. 각 필드의 길이가 일정하게 정해져 있지 않다. - 레코드
간단히 말하면, 레코드는 관련된 정보를 묶어 하나의 항목으로 표현하는 데이터 구성의 기본 단위라고 볼 수 있다. 레코드는 데이터베이스나 파일에서 하나 이상의 관련된 필드가 모여 구성된 단위이다.
레코드도 고정 길이 레코드와 가변 길이 레코드로 나뉜다. 고정 길이 레코드는 블록 내에 일정한 크기의 레코드만 담는 방식이며 가변 길이 레코드는 블록 내에 레코드보다 작은 공간이 생길 경우 레코드를 크기에 맞춰 쪼개어 저장하는 방식이다. 두 가지 레코드 형식은 상황에 따라 다르게 사용된다.
문자 데이터의 표현
컴퓨터 세상 속에서 문자 데이터를 표현하는 방법은 여러 방법이 있다. 고등학교 자료구조 책에서는 크게 3개로 분류하고 있다. 가장 먼저 알아보려고 하는 표현 방법은 유니코드이다.
유니코드는 전 세계의 모든 문자를 통일된 부호 체계로 다루도록 설계된 전산 처리 방식이다. 문자 하나당 2바이트를 사용하며 모든 글자를 표현할 수 있다는 장점이 있다.
다음은 ASCII 코드이다. ASCII 코드는 C언어나 프로그래밍을 접한 사람이라면 많이들 들어보았을 것이다. 한 문자를 표현하는 데 사용되며, 대·소문자 구분이 가능하다. 미국의 표준 코드이다.
마지막으로 한글 코드는 말 그대로 한글을 표현한다. 한글 코드에는 완성형과 조합형 코드가 있다. 완성형 코드는 가나다 순서로 완성된 하나의 음절에 코드를 부여하여 2바이트에 표현한다. 조합형 코드는 한글의 초성, 중성, 종성 각각에 5비트를 조합하여 표현한다.
이미지 데이터의 표현
이미지 데이터의 표현은 크게 2가지로 나눌 수 있다. 바로 비트맵(Bitmap) 이미지와 벡터(Vector) 이미지이다.
- 비트맵은 픽셀 단위로 구성된다.
비트맵은 모든 정보를 픽셀단위로 저장한다. 대표적인 비트맵 이미지로 BMP, GIF, JPEG, TIFF, PNG 등의 파일 형식이 있다. 화면에 보여주는 속도가 빠르고 미세한 색의 표현도 가능하다는 장점이 있다.
- 벡터는 수식 형태의 명령으로 구성된다.
벡터 이미지는 수학적 표현을 통해 그림 정보를 수식 형태의 명령으로 저장한다. 점의 위치와 같이 색상, 두께 등의 정보를 기억하기 때문에 아무리 확대하고 축소해도 화질 저하가 거의 없다. 대표적인 파일 형식은 WMF, AI, SVG가 있다.
번외) 인공지능은 어떤 원리로 그림을 그리는가?
인공지능이 그림을 그리는 방법은 방법론에 따라 다르다. 대표적인 방법론은 이미지를 생성하는 유명한 알고리즘인 GAN이 있다고 볼 수 있겠다. GAN은 적대적 생성 신경망이라고 번역되는 AI기술 중 하나이다. 실제로 가까운 이미지나 사람들이 쓴 것 같은 글 등 가짜 데이터를 생성하는 모델이기도 하다.
소리 데이터의 표현
소리 데이터를 저장하는 방식에는 압축 방식과 비압축 방식이 있다. 대부분의 오디오 파일은 용량이 크기 때문에 압축 기술을 사용한다. 압축에도 손실 압축과 비손실 압축이 존재한다.
- 오디오 파일의 종류
MP3: 현재 가장 널리 쓰이는 오디오 파일 포맷으로 손실 압축 포맷을 이용한다.
WAV: 윈도 PC 계열에 주로 쓰이는 표준 오디오 파일로, 비압축 방식의 CD급 품질의 오디오 파일을 저장하기 위해 사용한다.
AU: 선 마이크로 시스템즈, 유닉스, 자바 등에서 사용되는 표준 오디오 파일 포맷이다.
WMA: MS가 개발한 윈도우 미디어 오디오 포맷이다.
RA: 스트리밍 서비스를 제공하여 실시간으로 음악을 감상할 수 있게 개발된 포맷이다.
AAC: MP3와 동일한 손실 압축 포맷을 사용한다. MP3에 비하여 압축 파일의 크기를 반으로 줄일 수 있다.
동영상 데이터의 표현
동영상 데이터는 정지 영상을 연속해서 보여 주어 움직이는 것처럼 보이는 원리이다. 정지 영상을 프레임이라고 하는데, 초당 프레임 수가 많을수록 자연스러운 영상을 얻을 수 있다. 동영상 파일 형식의 종류는 다음과 같다.
AVI: MS에서 개발한 동영상 파일 형식으로 전 세계적으로 널리 쓰인다.
MP4: MPEG에서 내놓은 동영상 파일 형식으로 MPEG-4의 일부로 규정된 파일 포맷이다. 인터넷을 통한 스트리밍 기술을 제공한다.
MOV: Apple사의 표준 동영상 파일 형식으로 퀵 타임 프로그램을 통하여 제공한다.
ASF: 인텔이 만든 멀티미디어 콘텐츠를 송수신하기 위하여 사용하는 데이터 포맷으로 스트리밍 기술을 지원한다.
RM: 리얼 플레이어에서 사용되는 멀티미디어 스트리밍 데이터 파일이다. 인터넷에서 실시간으로 고품질의 동영상, TV, 라디오 등을 시청할 수 있다.
'자료구조' 카테고리의 다른 글
| 선형 구조 [자료구조 정리②] (0) | 2024.06.18 |
|---|---|
| 원형큐 삽입/삭제 (0) | 2024.06.09 |
| 하노이의 탑 (0) | 2024.06.09 |
| C언어 스택 PUSH, POP 과정 (0) | 2024.04.23 |
| 좋아~ 빠르게 (배열 선언하러) 가! (0) | 2024.04.23 |