brunch

You can make anything
by writing

C.S.Lewis

by 정경문 May 15. 2022

22 데이터를 알면 화성에서도 살아 돌아올 수 있다

데이터의 특징과 표현

# 01. 아날로그와 디지털로 구분되는 데이터의 특징


우리 아기 열 좀 재볼까?


요즘은 어디에 가나 체온을 잴 일이 많아졌습니다. 그때마다 디지털 체온계를 사용하여 귀나 이마, 심지어 걸어가는 사람에 대해 열화상 카메라로 실시간 체온을 측정하고 있습니다.

혹시 아실지 모르겠지만, 예전에는 체온을 측정하는 방식이 조금 달랐습니다.


어린 시절 아파서 소아과에 갔던 기억이 납니다. 수은주가 표시된 온도계를 왼쪽 겨드랑이에 끼고 한참 지나면 간호사 선생님께서 그것을 빼서 열이 몇 도라고 말씀을 해주셨어요.

그 시절 기억하시는 분 계신가요?

텔레비전도 마찬가지로 아날로그 신호에서 디지털 신호로 변환된 시기가 있습니다. 2012년 지상파 아날로그 TV 방송이 56년 만에 완전히 종료되었고 완전한 디지털 TV 방송 시대를 맞이하였습니다.


아날로그는 온도, 빛, 소리 등 시간에 따라 변하는 값을 연속적으로 표현하는 것을 말하고, 디지털은 연속된 값을 끊어서 표현할 수 있는 숫자나 문자로 표현한 것을 말합니다. 아까 본 예로 아날로그 체온계는 수은주의 높이를 읽을 때 36.81234...으로 연속적입니다. 반면에 우리가 사용하는 디지털 체온계는 36.8도까지만 나타낼 수 있죠.


아날로그 데이터는 아날로그로 표현된 데이터, 디지털 데이터의 반대입니다. 이것은 자연 상태에서 나타는 연속적인 값을 데이터로 표현하는 방법입니다. 예를 들면 텔레비전의 빛과 소리의 신호 강도가 끊임없이 변하고, 온도나 압력도 계속해서 변하는 상태의 연속된 데이터 특성을 갖습니다.


반면에 디지털 데이터는 실제값에 가까운 근삿값을 나타내 냅니다. 예를 들어, 체온계에서 누구나 같은 값을 읽을 수 있습니다. 즉 표준화되어 변경이 어렵고 데이터를 더하거나 는 가공이 쉽고, 또 컴퓨터나 디지털 저장소에 효율적으로 저장할 수가 있습니다.



# 02 컴퓨터는 데이터를 어떻게 인식하는가?


그렇다면 컴퓨터는 데이터를 어떻게 저장하고 처리할까요?

"컴퓨터는 0과 1만으로 정보를 표현해야 한다"라는 말을 들어보셨을 거예요

그러면 2와 3과 같은 숫자는 대체 어떻게 표현할까요? 또 우리가 쓰는 한글, 영어와 같은 문자는요?


컴퓨터는 우리가 사용하는 문자, 그림, 숫자 등의 정보를 0과 1로 변환해야지만 이해할 수 있어요. 그리고 전구 하나당 1비트, 전구가 2개 있으면 2비트 라고 자릿수를 세기로 약속합니다.


그리고 이렇게 우리말을 컴퓨터가 알아들을 수 있게 바꿔주는 것은 "인코딩"이라고 합니다. 그러면 반대로 컴퓨터의 언어를 우리의 말로 바꿔주는 것을 "디코딩"이라고 해요. 인코딩과 디코딩의 개념은 이렇게 간단하게만 정리하기로 해요.


인코딩(Encoding) : 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것
디코딩(Decoding) : 복호화 또는 디코딩은 부호화된 정보를 부호화되기 전으로 되돌리는 처리


# 03. 문자 데이터의 표현


혹시 외국사람과 이야기해보셨나요? 저는 중학교 때 영어학원에서 만난 원어민 선생님과의 대화가 그 첫 소통이었는데요. 서로 다른 언어를 쓰는 사람끼리도 의사소통을 하기 위해서는 둘 중 한 사람이 내가 사용하는 언어, 그러니까 한국어를 머릿속에서 대화하는 사람이 알아들을 수 있는 언어로 변환해서 이야기해야 하죠


한국인 →(한국어를 영어로 머릿속에서 생각) → 외국인
인간→(사람의 문자를 컴퓨터 언어로 변환) → 컴퓨터

그런데 아까 제가 컴퓨터는 0과 1만 이해할 수 있다고 했으니까, 0과 1로 표현되는 수 즉 이진수의 형태로 풀어서 알려줘야겠네요. 그런데 다양한 언어와 말들을 변환하려면 뭔가 약속이 필요할 것 같아요. 그래서 이렇게 인간의 문자를 컴퓨터가 알아들을 수 있는 이진수의 형태로 변환할 수 있게 "국제사회의 약속"을 만든 것을 문자 코드라고 합니다.


이 약속은 대표적으로 아스키코드와 유니코드가 있어요.

여러분들께서 데이터를 활용, 분석하다 보면 "어, 선생님 파일이 깨졌어요?!"라고 당황하실 때가 많은데, 이것은 컴퓨터 언어를 사람의 언어로 디코딩(Decoding)할 때 원래 썼던 약속이 아니라 다른 약속을 적용해서 그렇다고 보시면 돼요.


이미지 출처 : https://smorning.tistory.com/269 (향후 변경)



# 04. 아스키코드(ASCII Code)를 아시나요


Are you Receiving me?
(제가 보내는 메시지 받고 있나요?)


출처 : 영화 마션(The Martian)


화성에서 혼자 조난된다면 살아남을 수 있을까?


영화 마션을 보셨나요? 2015년 개봉한 멧 데이먼 주연의 SF영화인데요. 주인공 와트니는 화성 탐사 도중에 사고를 당하고 혼자서 살아남게 됩니다. 지구와 모든 연락수단이 두절되고 남아있는 것은 "지구에서 원격 작동할 수 있는 회전 카메라" 단 하나, 여러분들은 그 상황이라면 지구와 어떻게 구조요청을 하실 수 있을까요?


주인공 와트니는 회전하는 카메라를 가져와 가운데 "제 말이 들리나요?"라는 메시지를 꽂고 "YES", "NO"를 써붙입니다. 그리고 지구에서 이 메시지를 확인하고 카메라를 "YES" 쪽으로 옮기고 와트니는 환호합니다.


그러나 YES와 NO 단 두 개를 가지고는 의사소통에 한계가 있었습니다. 이에 와트니는 죽은 동료의 수첩에서 아스키코드*를 얻게 되고 이것을 이용해서 카메라가 360도 회전이 가능함을 이용해서 숫자 0~9와 문자 A~F를 16진수로 변환하여 원형 팻말을 만들고 결국 구조됩니다. (16진수 → 아스키코드* → 영어 알파벳)


*아스키코드란

미국 정보교환 표준 부호, 또는 줄여서 ASCII는 영문 알파벳을 사용하는 대표적인 컴퓨터 문자 표현방식입니다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 표현방식은 아스키에 기초를 두고 있습니다.


예를 들어  48은 첫째 자릿수 4 ×16진수 + 둘째 자릿수 8을 더해서 64+8 = 72가 됩니다.

이것을 복호화(디코딩)하면 영어 알파벳은 H가 되는 형태입니다.


48 4F 57 41 4C 49 56 45

72 79 87 65 76 73 86 69

H   O   W   A   L    I   V   E
(어떻게 살아있나)
출처 : 영화 마션(The Martian)


대문자, 소문자, 구두점 및 숫자를 포함하여 아스키코드(ASCII)에서 선택할 수 있는 128개의 다른 문자가 있습니다. 이 표를 사용하면 영어로 무엇이든 쓸 수 있습니다. 그리고 우리 한글과 같이 영어 문자를 사용하지 않는 다른 언어를 표현하려면 여러 가지 문자의 문자 코드 변환이 필요하겠죠.


이때 사용하는 코드가 유니코드라는 방식입니다. 유니코드는 문자에 부여되는 값을 모두 통일하여 전 세계 언어와 특수문자를 표현할 수 있도록 만든 국제표준코드라고 보시면 됩니다. 이 유니코드는 32개 자리로 표현되는 32비트 숫자입니다.(한 자리는 1비트 이므로)



# 05. 아이폰과 갤럭시 카메라 비교 '화소'의 의미


아이폰 14
4800만 화소 탑재하나?


스마트 폰을 살 때 고려하는 요소 중에 카메라 해상도를 많이 따져보게 됩니다. 과거에는 100만 화소도 높은 수준이었는지 어느새인가 천만을 넘어 1억 화소 이야기를 하고 있습니다. 그렇다면 이 "화소"라는 의미는 무었을까요?


화소는 영어로 픽셀(Pixel)이라고 말하고, 이것은 사진을 구성하는 최소 단위를 가리킵니다.  해상도란 사진이 선명한 정도를 나타내는 단위로, 사진 전체를 구성하는 픽셀 수가 곧 해상도가 됩니다. 따라서 단위 면적당 픽셀의 수가 많을수록 선명해지는 해상도가 높아지는 것입니다.


예를 들어 가로 10 x 세로 10 픽셀을 가지고 있는 사진의 경우 100 픽셀만큼 해상도를 가지고 있다고 말합니다. 따라서 우리 스마트폰에 들어가는 1200만 화소의 경우 4000 x 3000 픽셀을 가지고 있는 모눈종이라고 이해하면 쉽습니다.

그렇다면 색상은 어떻게 표현된 것일까요?

디지털 사진에 1200개 픽셀이 있다고 해서 1200만 화소라고 얘기했는데요, 이 한 픽셀당 가질 수 있는 비트수(컴퓨터 문자 자릿수)에 따라 표현할 수 있는 색상이 달라져요.

예를 들어 1비트인 경우, 검정(1)과 흰색(0)으로 두 가지 색만 표현이 되고, 우리가 흔히 말하는 256색의 경우, 2비트 그러니까 2의 8 제곱 개수만큼 색상 정보를 가질 수 있습니다. 그리고 오늘날에 24비트는 8비트씩 색상 정보를 가지면서 빛의 3원 색인 빨강, 녹색, 파랑 RGB 각각을 3개 층(채널)으로 섞어서 우리가 보는 색상을 표현해줍니다.



# 06. 실무에서의 디지털 데이터의 중요성


우리는 데이터 활용하는 방법을 익히고 있습니다. 당연한 이야기처럼 들리겠지만 데이터가 없다면 활용할 수가 없습니다. 실제로 현업에서 문제를 정의하고 원인을 분석하면서 데이터에 기반한 원인 분석이나 해결방안을 도출하려고 할 때, 나한테 딱 맞는 데이터가 나오지 않습니다.


이럴 때 사용하는 3가지 방법입니다.


우선 첫 번째는 현재까지 존재하는 데이터를 활용해서 내가 필요한 데이터의 형태로 가공하는 것입니다. 여기서 "가공한다"의 의미는 입맛에 맞게 조작한다는 의미가 아닙니다. 데이터가 가지고 있는 구조, 형태를 변경하는 것을 말합니다. 예를 들어 제품 판매 리스트 덩그러니 있을 때, 나는 고객별 맞춤형 추천 제품 목록을 만들고 싶다면, 제품 판매 리스트에 고객정보, 그리고 제품 정보를 융합하여 하나의 새로운 데이터를 만들 수 있습니다.


두 번째 방법은 "지금부터라도 데이터를 수집한다"입니다. 실제 현업에서는 문제를 먼저 정의하고 데이터로 풀겠다고 각오만 있지 경험해보지 않은 문제들과 장애물이 많습니다. 이럴 때 결국 맞닥드리는 현실은 "데이터가 없다"입니다. 좀 더 명확하게 얘기하자만 "올바른", "정확한" 데이터가 없습니다. 이 방법은 지금 당장 이 문제를 데이터로 해결할 수 없다는 '단점'이 존재합니다.


그리고 세 번째 방법은 아날로그로 존재하는 데이터를 디지털 데이터로 변환하는 것입니다. 아마 이것이 우리들이 파이썬을 배우거나 인공지능을 활용하는 많은 분야가 아닐까 합니다. 오늘 드리는 말씀도 전부 여기에 해당하는 부분입니다. 우리 주변에는 생각보다 아직 디지털화되지 않은 데이터들이 많이 있습니다.

예를 들면 문서에 자필서명을 한다던지, 온도와 습도 관리대장을 수기로 기록한다던지 하는 일들 말입니다. 이러한 아날로그 데이터 들은 최근 기술(광학 문자인식; OCR)로 디지털 데이터로 변환할 수 있습니다. 그럴 때 데이터의 특징 그리고 변환하고자 하는 형태에 맞게 표준화하는 일이 필요합니다.


오늘 배운 아날로그와 디지털 데이터, 문자와 그림의 표현방법을 통해서 데이터 활용에 대한 이해도가 조금 높아지셨다면 좋겠습니다. 감사합니다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari