디지털 데이터를 압축·암호화해 안전하게 관리하는 법부터, 빅데이터를 수집·전처리·시각화해 문제를 해결하는 법까지.
사진·영상·통화 기록처럼 우리가 매일 만들어 내는 데이터는 폭발적으로 늘고 있다. 이 많은 데이터를 더 작게, 더 빠르게 주고받기 위한 기술이 데이터 압축이다.
데이터를 저장·전송하는 데는 공간과 시간, 그리고 전기가 든다. 전 세계 데이터 센터가 배출하는 이산화탄소량은 2002년 약 7,600만 톤에서 2020년 약 2억 5,900만 톤으로 급증했다 — 우리가 무심코 쓰는 데이터가 실제로 기후 변화에 영향을 준다는 뜻이다. 압축은 이 문제를 줄이는 가장 직접적인 방법이다.
압축이든 암호화든, 컴퓨터가 다루는 모든 데이터는 결국 0과 1(2진수)로 저장돼 있다. 다만 2진수는 자릿수가 너무 길어서 사람이 읽기 불편하니, 같은 비트를 3개씩 묶어 8진수로, 4개씩 묶어 16진수로 줄여 쓰기도 한다. 묶는 방법만 다를 뿐 같은 데이터이므로, 10진수로 환산한 값은 셋 다 똑같다 — 아래에서 버튼을 눌러 직접 확인해 보자.
맨 앞 빨간 버튼은 부호(0=양수, 1=음수)이고, 나머지 15개는 2진수 각 자리다. 버튼을 눌러 0↔1을 바꾸면 아래 8진수·16진수 묶음과 최종 10진수 값이 실시간으로 함께 바뀐다.
0과 1의 나열을 손실 없이 더 짧게 표현했다가, 필요할 때 원본과 똑같이 되돌리는 방식이다. 텍스트 파일, 은행 기록처럼 한 글자도 틀리면 안 되는 데이터에 적합하다.
같은 문자가 몇 번 반복되는지를 기록해 데이터를 짧게 만드는 방식. 단색이 많은 아이콘·로고(BMP 파일 등)에는 효율적이지만, 색이 다양한 사진에는 잘 맞지 않는다.
문자열을 입력하면 결과가 바로 갱신돼요. ▶ 압축하기를 누르면 그 순간의 입력값으로 다시 계산해 아래 결과가 잠깐 반짝여요(다시 압축했다는 표시).
압축할 데이터: 문자열 AAADDBOOOO(총 10글자). 컴퓨터에서 한 글자를 8비트(1바이트)로 저장한다고 하면, 압축하기 전 원본 크기는 10글자 × 8비트 = 80비트(10바이트)다. 이 80비트를 어디까지 줄일 수 있는지, 쉬운 방법부터 차근차근 따라가 보자.
1️⃣ 가장 단순한 방법 — 사전 압축(등장 순서대로 번호 붙이기)
문자열에 등장하는 문자를 나온 순서대로 A→D→B→O로 정리하고, 모두 똑같은 길이(3비트)의 번호를 매긴다. (3비트면 000~111, 즉 최대 8종류의 문자를 구분할 수 있다.)
| 문자 | 등장 순서 | 부호 |
|---|---|---|
| A | 1번째로 등장 | 001 |
| D | 2번째로 등장 | 010 |
| B | 3번째로 등장 | 011 |
| O | 4번째로 등장 | 100 |
문자 10개를 전부 3비트로 바꾸면 10 × 3 = 30비트. 압축비는 80 ÷ 30 ≒ 2.67 (37.5%)이다.
2️⃣ 더 똑똑한 방법 — 허프만 부호화(자주 나올수록 짧게)
허프만 부호화(Huffman coding)의 핵심 아이디어는 단 하나다 — 자주 등장하는 문자에는 짧은 부호를, 드물게 등장하는 문자에는 긴 부호를 준다. 5단계를 하나씩 직접 따라가며 트리를 완성해 보자.
[1단계] 문자별 등장 빈도 세기
| 문자 | 등장 횟수 |
|---|---|
| O | 4번 |
| A | 3번 |
| D | 2번 |
| B | 1번 |
빈도가 높은 순서(내림차순)로 미리 정렬해 두었다.
[2단계] 가장 작은 두 값을 하나로 묶는다
지금 가장 작은 두 값은 D(2)와 B(1)이다. 둘을 묶어 합계 3짜리 새 노드를 만들고, 먼저 나열된 쪽(D)에 0, 나중 쪽(B)에 1을 붙인다.
[3단계] 다시 가장 작은 두 값을 찾아 묶는다
이제 후보는 O(4), A(3), 방금 만든 노드(3) — 세 개다. 가장 작은 두 값은 A(3)와 노드(3)인데, 값이 같으면 정렬 순서가 앞선 쪽을 먼저 처리하므로 A와 [D,B]노드를 묶는다. 합계는 6이고, A에 0, [D,B]노드에 1을 붙인다.
[4단계] 마지막 두 값을 묶어 트리를 완성한다
이제 남은 건 O(4)와 방금 만든 노드(6)뿐이다. 이 둘을 묶으면 전체 합계 10인 맨 위(뿌리, root)가 완성된다. 노드(6)에 0, O에 1을 붙인다.
[5단계] 뿌리부터 각 문자까지 경로를 이어붙여 부호 완성
뿌리에서 출발해 그 문자에 도착할 때까지 지나온 0과 1을 순서대로 이어붙이면, 그것이 그 문자의 부호가 된다.
| 문자 | 빈도 | 경로(뿌리→문자) | 부호 |
|---|---|---|---|
| O | 4 | 뿌리 →(1) O | 1 |
| A | 3 | 뿌리 →(0) 노드6 →(0) A | 00 |
| D | 2 | 뿌리 →(0) 노드6 →(1) 노드3 →(0) D | 010 |
| B | 1 | 뿌리 →(0) 노드6 →(1) 노드3 →(1) B | 011 |
1(O)로 시작하는 부호는 O 하나뿐이고, 00(A)으로 시작하는 부호도 A뿐이며, 010(D)과 011(B)도 앞 두 자리(01)까지는 같지만 마지막 한 자리에서 서로 갈린다. 그래서 비트를 앞에서부터 읽어 나가다가 이미 정해진 부호와 정확히 맞아떨어지는 순간 거기서 끊어 읽으면, 다음에 어디서부터 새 글자가 시작하는지 헷갈릴 일이 없다. (트리에서 모든 문자가 가지 끝(리프)에만 있고, 가지가 갈라지는 중간 지점엔 문자가 없기 때문에 이 규칙이 자동으로 지켜진다.)데이터 변환하기 — 최종 압축 결과
문자열 AAADDBOOOO를 완성된 부호표(O=1, A=00, D=010, B=011)에 따라 한 글자씩 바꿔서 이어붙이면 다음과 같다.
원본 80비트가 19비트로 줄었다. 압축비는 80 ÷ 19 ≒ 4.21 (23.8%)이다.
3️⃣ 두 방법 비교 — 왜 허프만이 더 효율적일까?
| 구분 | 사전 압축(고정 길이) | 허프만 부호화(가변 길이) |
|---|---|---|
| 부호 길이 | 모든 문자 3비트로 동일 | 문자마다 다름 (1~3비트) |
| 압축 후 크기 | 30비트 | 19비트 |
| 압축비 | 80 / 30 ≒ 2.67 (37.5%) | 80 / 19 ≒ 4.21 (23.8%) |
| 핵심 원리 | 등장 순서로만 번호 부여 | 자주 나올수록 짧은 부호 부여 |
이미지·영상·소리처럼 사람의 눈과 귀가 완벽히 구분하지 못하는 영역의 정보는 과감히 버려서 용량을 획기적으로 줄이는 방식이다. 압축 해제한 데이터는 원본과 정확히 같지 않지만, 체감 품질 차이는 크지 않다.
DEFLATE 방식을 쓴다. 게다가 압축 전에 각 픽셀을 바로 옆 픽셀과의 차이값으로 바꿔 저장하는 '필터링'을 거치는데, 색이 단순한 이미지는 이 차이값이 대부분 0에 가까워 허프만 부호화가 아주 짧은 부호를 붙일 수 있다.사람 눈은 색보다 밝기 차이를 더 잘 인식한다는 성질을 이용해, R·G·B 값을 그대로 저장하지 않고 휘도(밝기)와 색 차이 정보 위주로 압축한다. 이미지를 8×8 픽셀 블록으로 나눠 처리한다.
영상은 JPEG로 압축한 이미지(프레임)가 여러 장 이어진 것이다. MPEG는 연속된 프레임의 유사성을 이용해, 이전 프레임과 달라진 부분만 저장한다 — 배경이 그대로인 장면일수록 압축 효율이 크게 오른다.
아날로그 소리를 표본화 → 양자화 → 부호화 순서로 바꿔 디지털 데이터로 만드는 이 과정 전체를 PCM 변환(Pulse Code Modulation)이라 부른다.
전화 통화를 예로, 실제 숫자를 따라가며 목소리가 디지털 데이터가 되는 과정을 확인해 보자.
G.711의 방식)MP3(MPEG-1 Audio Layer III)는 표본화·양자화·부호화를 거쳐 만들어진 디지털 음원(PCM)을 한 번 더 압축하는 손실 압축 방식이다. 핵심 아이디어는 "사람 귀가 애초에 듣지 못하는 소리는 저장할 필요가 없다"는 심리음향(psychoacoustic) 모델이다.
MP3는 이렇게 ① 소리를 여러 주파수 대역으로 나누고 ② 심리음향 모델로 어느 대역이 들리는지/안 들리는지 분석해 ③ 잘 들리는 대역엔 비트를 많이, 안 들리는 대역엔 비트를 적게(또는 아예 0을) 할당한 뒤 ④ 남은 값을 양자화·부호화한다. 이 과정을 거치면 원본 CD 음원(약 1,411kbps)을 1/10 수준(128kbps)까지 줄이면서도 사람 귀에는 거의 같은 소리로 들린다.
| 비트레이트 | 체감 음질 | 파일 크기 |
|---|---|---|
| 128kbps | 보통 (음원 스트리밍 최소 수준) | 작음 |
| 192kbps | 좋음 | 중간 |
| 320kbps | 매우 좋음 (원음과 구분 어려움) | 큼 |
FLAC, ALAC.디지털 데이터 압축의 개념과 필요성, 무손실·손실 압축의 차이를 설명할 수 있나요? 런 길이 부호화·허프만 부호화의 원리를 손으로 계산할 수 있나요? 나이퀴스트율에 따라 표본화 주파수를 정하고, PCM 변환 과정을 예로 들어 설명할 수 있나요? MP3가 청각 마스킹을 이용해 데이터를 줄이는 원리를 설명할 수 있나요?
온라인 쇼핑, 민원 서류 발급처럼 인터넷으로 처리하는 일이 많아질수록 비밀번호와 개인정보를 안전하게 지키는 기술이 중요해진다. 그 핵심이 암호화다.
평문의 각 문자를 약속된 다른 문자로 치환하는 방법이다. 로마 황제 율리우스 카이사르가 전쟁 중 군사 정보를 전달하기 위해 고안했다고 전해져 카이사르 암호라 불린다. 알파벳을 정해진 칸수(키)만큼 밀어서 치환하고, 복호화할 때는 반대 방향으로 밀어 되돌린다.
영문자를 입력하고 키(이동 칸수)를 조절해 보세요. 숫자·공백·한글은 그대로 둡니다.
고대에는 문자의 순서를 재배치하는 전치형 암호화도 쓰였다. 그리스 군사들이 사용한 스키테일(scytale)이 대표적인 예로, 정해진 지름의 막대에 종이를 감아 글을 쓰면 풀었을 때 문자가 뒤섞여 보인다 — 같은 지름의 막대를 가진 사람만 다시 감아 해독할 수 있다.
COMPUTER를 키 35164827의 순서로 재배치하면 MUCTPROE가 된다. 그러나 전치형 암호화는 컴퓨팅 기술이 발전하며 쉽게 뚫리게 되어, 더 안전한 방법이 필요해졌다.치환형·전치형 암호화 방법을 설명하고, 그 한계(문자 빈도 분석 등으로 해독 가능)를 말할 수 있나요?
암호화는 되지만 복호화는 불가능한 방식. 같은 평문은 항상 같은 암호문(해시값)을 만들고, 한 글자만 달라져도 완전히 다른 결과가 나온다. 그래서 원문을 노출하지 않고도 일치 여부만 비교할 수 있어 비밀번호 저장, 파일 위·변조 확인, QR코드 신원 인증 등에 쓰인다. 대표 알고리즘은 SHA-256.
| 이름 | 해시값 길이 | 비고 |
|---|---|---|
| SHA-1 | 160비트 | 2017년 실제 충돌(같은 해시값을 갖는 서로 다른 파일) 사례가 발견돼 더 이상 안전하지 않음 — 사용 비권장 |
| SHA-256 | 256비트 | 현재 가장 널리 쓰이는 표준. 비트코인, 인증서, 비밀번호 저장 등에 사용 |
| SHA-512 | 512비트 | SHA-256보다 해시값이 더 길어 안전성이 높고, 64비트 컴퓨터에서는 오히려 더 빠르게 동작하기도 함 |
61쪽 스스로 해결하기 — 문장을 입력하면 진짜 SHA-256 알고리즘으로 해시값을 계산해요. 아래 두 칸에 원문과, 마침표 하나·띄어쓰기 하나만 바꾼 문장을 각각 넣고 해시값이 어떻게 달라지는지 직접 확인해 보자.
송신자와 수신자가 같은 키로 암호화·복호화하는 양방향 방식. 속도가 빠르지만, 사용자마다 키를 개별적으로 안전하게 전달해야 하는 키 배송 문제가 있다 — 사용자가 10만 명이면 키도 10만 개를 관리해야 한다. 인터넷·모바일 뱅킹의 OTP와 보안카드가 대표 사례다.
대칭 암호화의 키 배송 문제를 해결하기 위해 등장했다. 송수신자가 서로 다른 키 쌍(공개키·개인키)을 가지며, 한쪽 키로 암호화한 것은 반드시 짝을 이루는 다른 키로만 풀 수 있다. 처리 속도는 느리지만 키를 안전하게 교환할 필요가 없다. 전자 서명, 공동(공인) 인증서가 대표 사례다.
| 구분 | 대칭 암호화 | 비대칭 암호화 |
|---|---|---|
| 키 관계 | 암호화 키 = 복호화 키 | 암호화 키 ≠ 복호화 키 |
| 속도 | 빠름 | 느림 |
| 키 교환 | 필요 (문제 발생 가능) | 불필요 (쉬움) |
| 대표 사례 | OTP, 보안카드 | 공동 인증서, 전자 서명 |
단방향·대칭·비대칭 암호화의 차이와 각각의 실제 사용 사례를 설명할 수 있나요?
4차 산업혁명 시대, 우리 주변에는 규모를 가늠할 수 없을 만큼 많은 데이터가 매일 쏟아진다. 이 방대한 데이터를 빅데이터라 하고, 이를 목적에 맞게 다루는 것이 데이터 분석이다.
빅데이터는 기존 방식으로는 처리하기 어려운 막대한 양의 데이터셋(또는 그 처리 기술)을 말하며, 세 가지 특징 3V로 요약된다.
| 수집 방법 | 특징 | 예 |
|---|---|---|
| 공공 데이터 | 공공 기관이 만든 데이터. 개방성이 가장 큰 특징으로, 개인정보·안보를 침해하지 않으면 누구나 자유롭게 쓸 수 있다. 신뢰성이 높다. | 공공데이터포털(data.go.kr), 기상자료개방포털 |
| 민간 데이터 | 기업·개인이 상업적 목적으로 수집. 더 전문적이고 실생활에 도움이 되는 경우가 많다. | 캐글(Kaggle), 데이콘(DACON) |
| 웹크롤링 | 웹 크롤러(web crawler)라는 프로그램으로 웹사이트 정보를 자동 수집하는 방법. | 특정 웹사이트의 실시간 통계 자동 수집 |
| 직접 수집 | 필요한 데이터가 없을 때 직접 얻는 방법. 목적에 딱 맞는 데이터를 얻을 수 있다. | 설문 조사, 카메라 촬영, 센서 측정 |
빅데이터의 개념과 3V 특징을 설명하고, 문제 해결에 필요한 데이터를 수집 방법별로 구분해 고를 수 있나요?
모은 데이터를 그대로 분석에 쓸 수는 없다. 다듬어야(전처리) 하고, 눈에 보이게 그려야(시각화) 비로소 의미를 읽을 수 있다.
데이터 전처리는 원시 데이터를 원하는 형식으로 다듬는 작업이다. 적절히 전처리하면 분석과 기계학습의 정확도·신뢰도가 올라간다.
| 전처리 작업 | 내용 |
|---|---|
| 결측치 제거 | 데이터셋에서 값이 빠진(누락된) 결측치를 채우거나 제거한다. |
| 이상치 제거 | 일반적인 경향에서 크게 벗어난 이상치는 분석 결과를 왜곡할 수 있어 제거한다. |
| 데이터 정리 | 중복 항목 제거, 오류·맞춤법 수정 등. |
| 데이터 통합 | 서로 유사하거나 공통 속성(예: ID)을 가진 데이터를 하나로 합친다. |
| 데이터 정규화 | 속성값을 공통 척도나 일정 범위로 맞춰 분석 일관성을 높인다. |
데이터 시각화는 수치·통계 데이터를 그래픽으로 표현해 분석 결과를 직관적으로 이해하기 쉽게 만드는 기술이다. 데이터 형태에 따라 알맞은 시각화 방법이 다르다.
정형 데이터(수치·문자·날짜·지리)는 표·그래프로, 비정형 데이터(이미지·텍스트·소리)는 이미지 뷰어·워드 클라우드처럼 형태에 맞는 방법으로 시각화한다.
교과서의 ‘운동 시간과 소모 열량’ 예시처럼, 두 변수의 상관관계 강도를 슬라이더로 바꾸면 산점도와 회귀선이 실시간으로 달라져요.
빅데이터 분석 도구로 데이터를 시각화하고, 그 결과의 의미와 가치를 해석할 수 있나요? 정형·비정형 데이터에 맞는 시각화 방법을 구분할 수 있나요?
광산에서 광물을 캐내는 광부처럼, 방대한 데이터에서 의미 있는 정보를 찾아내는 직업이 데이터 마이너(data miner)다. 쇼핑몰 구매 기록, 검색 기록, SNS 데이터 같은 빅데이터를 분석해 미래에 도움이 될 정보를 만든다. 통계·프로그래밍에 대한 이해와, 세상을 바라보는 안목(도메인 지식)이 함께 필요한 직업이다.
| 주제 | 핵심 |
|---|---|
| 데이터 압축 | 무손실(RLE, 허프만) vs 손실(JPEG, MPEG) — 압축비 = 압축 전 용량 ÷ 압축 후 용량 |
| 데이터 암호화 | 치환형·전치형(고전) / 단방향·대칭·비대칭(현대) |
| 빅데이터 | 3V(양·속도·다양성), 수집(공공·민간·웹크롤링·직접) |
| 전처리·시각화 | 결측치·이상치 제거, 정규화, 통합 → 막대·산점도·박스플롯·워드클라우드로 시각화 |