🏫 배움터 💻 정보 🗄️ Ⅱ. 데이터

🗄️ Ⅱ. 데이터

디지털 데이터를 압축·암호화해 안전하게 관리하는 법부터, 빅데이터를 수집·전처리·시각화해 문제를 해결하는 법까지.

2022 개정 교육과정 『정보』 · 2단원 데이터
📄
Ⅱ. 데이터 — 교과서 PDF 원본
전체 42페이지 · 다운로드하여 인쇄하거나 오프라인으로 볼 수 있어요
⬇ 다운로드
📌 참고 · 이 단원은 2022 개정 정보 교과서의 Ⅱ. 데이터를 재구성했습니다. 1단원(컴퓨팅 시스템)도 함께 올라와 있으며, 다른 단원은 순서대로 곧 추가될 예정입니다.
2단원 · 1절

1. 디지털 데이터의 압축Data Compression

사진·영상·통화 기록처럼 우리가 매일 만들어 내는 데이터는 폭발적으로 늘고 있다. 이 많은 데이터를 더 작게, 더 빠르게 주고받기 위한 기술이 데이터 압축이다.

1) 왜 압축이 필요할까?

데이터를 저장·전송하는 데는 공간시간, 그리고 전기가 든다. 전 세계 데이터 센터가 배출하는 이산화탄소량은 2002년 약 7,600만 톤에서 2020년 약 2억 5,900만 톤으로 급증했다 — 우리가 무심코 쓰는 데이터가 실제로 기후 변화에 영향을 준다는 뜻이다. 압축은 이 문제를 줄이는 가장 직접적인 방법이다.

  • 저장 공간을 줄인다 — 같은 서버에 더 많은 정보를 담을 수 있다.
  • 전송 시간을 줄인다 — 스트리밍·업로드가 빨라진다.
  • 보안에도 도움이 된다 — 압축된 데이터는 그대로 봐서는 해독하기 어렵다.
  • 비용과 전력을 줄여 환경적으로도 이득이다.
원본 데이터 압축 압축 데이터 전 세계 데이터센터 CO₂ 배출량 2002년 약 7,600만 톤 2020년 약 2억 5,900만 톤 ≈ 18년 사이 3.4배 증가 압축은 이 부담을 줄이는 직접적 방법
데이터를 압축하면 저장·전송에 드는 자원과 에너지, 즉 탄소 배출까지 함께 줄어든다.
주요 용어 · 데이터 압축, 압축비, 무손실 압축, 손실 압축

💡 잠깐, 그 전에 — 데이터는 결국 2진수다

압축이든 암호화든, 컴퓨터가 다루는 모든 데이터는 결국 0과 1(2진수)로 저장돼 있다. 다만 2진수는 자릿수가 너무 길어서 사람이 읽기 불편하니, 같은 비트를 3개씩 묶어 8진수로, 4개씩 묶어 16진수로 줄여 쓰기도 한다. 묶는 방법만 다를 뿐 같은 데이터이므로, 10진수로 환산한 값은 셋 다 똑같다 — 아래에서 버튼을 눌러 직접 확인해 보자.

🔢 진법의 변환 체험하기 SIMULATION

맨 앞 빨간 버튼은 부호(0=양수, 1=음수)이고, 나머지 15개는 2진수 각 자리다. 버튼을 눌러 0↔1을 바꾸면 아래 8진수·16진수 묶음과 최종 10진수 값이 실시간으로 함께 바뀐다.

2진수 그대로 계산 (자리마다 2의 거듭제곱)
3개씩 묶어 8진수로 계산 — 아래 칸 하나가 위 비트 3칸을 묶은 것
4개씩 묶어 16진수로 계산 (맨 앞은 3비트만 남아 0~7만 가능) — 아래 칸 하나가 위 비트 3~4칸을 묶은 것

2) 무손실 압축 — 원본을 그대로 복원

0과 1의 나열을 손실 없이 더 짧게 표현했다가, 필요할 때 원본과 똑같이 되돌리는 방식이다. 텍스트 파일, 은행 기록처럼 한 글자도 틀리면 안 되는 데이터에 적합하다.

① 런 길이 부호화 (Run Length Encoding)

같은 문자가 몇 번 반복되는지를 기록해 데이터를 짧게 만드는 방식. 단색이 많은 아이콘·로고(BMP 파일 등)에는 효율적이지만, 색이 다양한 사진에는 잘 맞지 않는다.

AAADDBOOOO 원본 (10 bytes) 압축 A3D2B1O4 압축 (8 bytes) 압축비 = 10 / 8 = 1.25 (80%)
▲ 런 길이 부호화: 반복 횟수 + 문자 순서로 표현
🧪 런 길이 부호화 체험하기 SIMULATION

문자열을 입력하면 결과가 바로 갱신돼요. ▶ 압축하기를 누르면 그 순간의 입력값으로 다시 계산해 아래 결과가 잠깐 반짝여요(다시 압축했다는 표시).

위 버튼을 눌러 보세요.

② 사전 압축과 허프만 부호화

압축할 데이터: 문자열 AAADDBOOOO(총 10글자). 컴퓨터에서 한 글자를 8비트(1바이트)로 저장한다고 하면, 압축하기 전 원본 크기는 10글자 × 8비트 = 80비트(10바이트)다. 이 80비트를 어디까지 줄일 수 있는지, 쉬운 방법부터 차근차근 따라가 보자.

1️⃣ 가장 단순한 방법 — 사전 압축(등장 순서대로 번호 붙이기)

문자열에 등장하는 문자를 나온 순서대로 A→D→B→O로 정리하고, 모두 똑같은 길이(3비트)의 번호를 매긴다. (3비트면 000~111, 즉 최대 8종류의 문자를 구분할 수 있다.)

문자등장 순서부호
A1번째로 등장001
D2번째로 등장010
B3번째로 등장011
O4번째로 등장100
A   A   A   D   D   B   O   O   O   O
001 001 001 010 010 011 100 100 100 100
001001001010010011100100100100 (30비트)

문자 10개를 전부 3비트로 바꾸면 10 × 3 = 30비트. 압축비는 80 ÷ 30 ≒ 2.67 (37.5%)이다.

💡 이 방법의 한계 · 4번이나 등장하는 O도, 딱 1번 등장하는 B도 똑같이 3비트씩 차지한다. 자주 나오는 문자 입장에선 손해인 셈이다 — 바로 여기서 허프만 부호화의 아이디어가 시작된다.

2️⃣ 더 똑똑한 방법 — 허프만 부호화(자주 나올수록 짧게)

허프만 부호화(Huffman coding)의 핵심 아이디어는 단 하나다 — 자주 등장하는 문자에는 짧은 부호를, 드물게 등장하는 문자에는 긴 부호를 준다. 5단계를 하나씩 직접 따라가며 트리를 완성해 보자.

[1단계] 문자별 등장 빈도 세기

문자등장 횟수
O4번
A3번
D2번
B1번

빈도가 높은 순서(내림차순)로 미리 정렬해 두었다.

[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을 붙인다.

A:3 D:2 B:1 O:4 내림차순 정렬 O:4 A:3 D:2 B:1 0 1 10 0 1 6 O:4 O → 1 A:3 A → 00 0 1 3 D:2 D → 010 B:1 B → 011 📱 QR로 문제 풀기
▲ [그림Ⅱ-2] 허프만 부호화 방식 — 등장 순서(위)를 내림차순으로 정렬한 뒤(가운데), 아래(D,B)에서 위(뿌리 10)로 트리를 쌓아 올라간다. 왼쪽 가지=0, 오른쪽 가지=1. 오른쪽 QR코드는 교과서에 실린 확인 문제 링크다.
📌 참고 — '트리(tree)'란?
컴퓨터 과학에서 데이터를 계층적으로 정리할 때 쓰는 자료구조다. 나뭇가지가 뿌리에서 위로 뻗어나가는 모양을 닮아서 이런 이름이 붙었다(다만 그림은 보통 뿌리를 맨 위에, 가지 끝을 아래에 그린다). 방금 완성한 허프만 트리에서 쓰는 용어는 다음과 같다.
  • 뿌리(root) — 트리의 맨 위 시작점. 위 그림에서는 값이 10인 노드.
  • 노드(node) — 가지가 갈라지는 지점. 그 아래에 속한 문자들의 빈도수 합을 나타낸다.
  • 리프(leaf) — 더 이상 갈라지지 않는 가지 끝. 실제 문자(A, D, B, O)는 항상 리프에만 있다.
  • 가지(branch/edge) — 노드와 노드(또는 노드와 리프)를 잇는 선. 왼쪽 가지엔 0, 오른쪽 가지엔 1을 붙인다.

[5단계] 뿌리부터 각 문자까지 경로를 이어붙여 부호 완성

뿌리에서 출발해 그 문자에 도착할 때까지 지나온 0과 1을 순서대로 이어붙이면, 그것이 그 문자의 부호가 된다.

문자빈도경로(뿌리→문자)부호
O4뿌리 →(1) O1
A3뿌리 →(0) 노드6 →(0) A00
D2뿌리 →(0) 노드6 →(1) 노드3 →(0) D010
B1뿌리 →(0) 노드6 →(1) 노드3 →(1) B011
❓ 왜 길이가 다른데도 헷갈리지 않고 풀릴까? — 접두어 규칙
허프만 부호는 어떤 문자의 부호도 다른 문자 부호의 맨 앞부분(접두어)이 될 수 없도록 만들어진다. 1(O)로 시작하는 부호는 O 하나뿐이고, 00(A)으로 시작하는 부호도 A뿐이며, 010(D)과 011(B)도 앞 두 자리(01)까지는 같지만 마지막 한 자리에서 서로 갈린다. 그래서 비트를 앞에서부터 읽어 나가다가 이미 정해진 부호와 정확히 맞아떨어지는 순간 거기서 끊어 읽으면, 다음에 어디서부터 새 글자가 시작하는지 헷갈릴 일이 없다. (트리에서 모든 문자가 가지 끝(리프)에만 있고, 가지가 갈라지는 중간 지점엔 문자가 없기 때문에 이 규칙이 자동으로 지켜진다.)

데이터 변환하기 — 최종 압축 결과

문자열 AAADDBOOOO를 완성된 부호표(O=1, A=00, D=010, B=011)에 따라 한 글자씩 바꿔서 이어붙이면 다음과 같다.

A  A  A  D   D   B   O O O O
00 00 00 010 010 011 1 1 1 1
0000000100100111111 (19비트)

원본 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%)
핵심 원리등장 순서로만 번호 부여자주 나올수록 짧은 부호 부여
Tip · 값이 같으면 정렬 순서가 앞선 것에 0을 배정한다. 사전 자체도 공간을 차지하므로, 중복되는 문자가 많을수록 사전/허프만 압축이 더 유리해진다.
클로드 섀넌 (Claude Shannon, 1916~2001)
📌 참고 — 허프만 부호화 뒤에는 클로드 섀넌이 있다
방금 "자주 나오는 문자에는 짧은 부호를, 드물게 나오는 문자에는 긴 부호를 주면 유리하다"는 걸 직접 확인했다. 이 아이디어를 수학적으로 처음 증명한 사람이 클로드 섀넌(Claude Shannon, 1916~2001)이다. '정보이론(Information Theory)의 아버지'로 불리는 미국의 공학자·수학자로, 비트(bit)라는 단위 자체를 세상에 알린 사람이기도 하다.
  • 1948년 논문에서 정보량(엔트로피)을 확률로 정의했다 — 예측하기 쉬운(자주 등장하는) 것일수록 정보량이 작다. 허프만 부호화가 자주 나오는 문자에 짧은 부호를 주는 것은 바로 이 원리를 그대로 따른 것이다.
  • 1937년 석사 논문에서는 불 대수(참/거짓 논리)를 전기 스위치 회로로 구현할 수 있음을 증명했다 — 오늘날 모든 디지털 회로·컴퓨터가 0과 1로 동작하는 이론적 뿌리다.
  • 1949년에는 OTP(일회용 암호)가 이론적으로 절대 뚫리지 않는 "완전 비밀성(perfect secrecy)"을 만족함을 증명했다 — 뒤에 나올 대칭 암호화 단원의 OTP와 연결된다.
  • 요즘 많이 쓰는 AI 챗봇 Claude(클로드)도 바로 이 섀넌에게 헌정하는 의미로 붙인 이름이다 — AI 역시 결국 '정보'를 다루는 기술이기 때문이다.
사진: Tekniska museet(스웨덴 국립기술박물관), Wikimedia Commons · CC BY 2.0

3) 손실 압축 — 사람이 눈치채기 힘든 부분만 버린다

이미지·영상·소리처럼 사람의 눈과 귀가 완벽히 구분하지 못하는 영역의 정보는 과감히 버려서 용량을 획기적으로 줄이는 방식이다. 압축 해제한 데이터는 원본과 정확히 같지 않지만, 체감 품질 차이는 크지 않다.

무손실 압축과 손실 압축
구분
무손실 압축
손실 압축
데이터
손실
손실 없음.
손실 있음.
원본과
비교
거의 같음.
다를 수
있음.
압축률
낮음.
높음.
용량
큰 편
작은 편
파일
형식
ZIP, GIF,
PNG 등
JPEG, MPEG,
MP3 등
💡 궁금해요 — PNG는 무손실인데 왜 용량이 작을 때가 많을까?
위 표의 '용량 큰 편/작은 편'은 같은 이미지를 무손실·손실로 각각 압축했을 때의 비교다. PNG가 실제로 작아 보이는 이유는 두 가지다.
  • PNG는 우리가 배운 사전 압축(반복 패턴 찾기)허프만 부호화(자주 나오는 값에 짧은 부호)를 함께 쓰는 DEFLATE 방식을 쓴다. 게다가 압축 전에 각 픽셀을 바로 옆 픽셀과의 차이값으로 바꿔 저장하는 '필터링'을 거치는데, 색이 단순한 이미지는 이 차이값이 대부분 0에 가까워 허프만 부호화가 아주 짧은 부호를 붙일 수 있다.
  • 그래서 압축률은 무손실이냐 손실이냐보다 이미지 종류가 더 크게 좌우한다. 아이콘·로고·스크린샷·텍스트처럼 색이 단순하고 반복이 많은 이미지는 PNG(무손실)가 오히려 JPEG보다 작을 수도 있다 — JPEG의 8×8 블록 DCT 방식은 이런 날카로운 경계에서 오히려 비효율적이기 때문이다. 반대로 사진처럼 색이 미세하게 계속 바뀌는 이미지는 반복이 거의 없어 무손실 압축의 효과가 작고, 이때는 손실 압축(JPEG)이 압도적으로 작아진다.

① JPEG — 이미지 압축

사람 눈은 색보다 밝기 차이를 더 잘 인식한다는 성질을 이용해, R·G·B 값을 그대로 저장하지 않고 휘도(밝기)와 색 차이 정보 위주로 압축한다. 이미지를 8×8 픽셀 블록으로 나눠 처리한다.

② MPEG — 영상 압축

영상은 JPEG로 압축한 이미지(프레임)가 여러 장 이어진 것이다. MPEG는 연속된 프레임의 유사성을 이용해, 이전 프레임과 달라진 부분만 저장한다 — 배경이 그대로인 장면일수록 압축 효율이 크게 오른다.

③ 소리의 표본화 · 양자화 · 부호화

아날로그 소리를 표본화 → 양자화 → 부호화 순서로 바꿔 디지털 데이터로 만드는 이 과정 전체를 PCM 변환(Pulse Code Modulation)이라 부른다.

  • 표본화: 아날로그 신호를 일정한 시간 간격으로 측정한다.
  • 양자화: 측정값을 정해진 단계 중 가장 가까운 값으로 반올림한다 — 이때 실젯값과 차이(양자화 오차)가 생긴다.
  • 부호화: 변환된 값을 0과 1의 비트로 표현한다.
① 표본화 (Sampling) 일정한 시간 간격으로 신호를 측정 ② 양자화 (Quantization) 7 6 5 4 3 2 1 0 가장 가까운 단계로 반올림 (주황 점=실젯값, 보라 점=양자화값 · 빨간 선=양자화 오차) ③ 부호화 (Encoding) 100 110 111 110 100 010 001 010 단계를 이진수(3비트)로 표현 → 최종 저장되는 값 100 110 111 110 100 010 001 010
▲ 표본화·양자화·부호화(PCM 변환) — 아날로그 소리를 일정 간격으로 측정(①)하고, 가장 가까운 단계로 반올림(②)한 뒤, 이진수로 바꿔(③) 디지털 데이터로 저장한다

예시 — 사람 목소리를 PCM으로 바꾸면?

전화 통화를 예로, 실제 숫자를 따라가며 목소리가 디지털 데이터가 되는 과정을 확인해 보자.

  1. 목소리의 주파수 범위 확인 — 사람 음성이 알아듣기에 충분한 핵심 대역은 약 300Hz~3,400Hz(전화 음성 대역)다. 최고 주파수를 대략 4kHz로 본다.
  2. 표본화 — 나이퀴스트율 적용 — 4kHz까지 왜곡(앨리어싱) 없이 담으려면 나이퀴스트율(2 × 4kHz = 8kHz) 이상으로 표본화해야 한다. 그래서 유선전화·인터넷전화(VoIP)는 실제로 초당 8,000번(8kHz) 목소리를 측정한다.
  3. 양자화 — 측정한 값을 256단계(8비트)로 반올림한다. (국제표준 통화 코덱 G.711의 방식)
  4. 부호화 — 표본 하나하나를 8비트 이진수로 표현한다.
🎙️ 목소리 표본화8,000회/초 양자화256단계(8비트) 부호화8비트 이진수 8,000회/초 × 8비트 = 64,000비트/초 = 64kbps (전화 통화 표준 속도)
▲ 목소리 → 표본화(8kHz) → 양자화(8비트) → 부호화 → 64kbps 디지털 신호. 실제 유선전화 통화의 표준 전송 속도와 정확히 일치한다
Tip · 반면 CD 음질 음악은 44.1kHz · 16비트를 쓴다. 목소리(4kHz)보다 훨씬 넓은 주파수 대역(사람의 가청 범위 최대 20kHz)까지 담아야 하고, 8단계가 아니라 훨씬 세밀한 65,536단계(16비트)로 표현해야 자연스러운 음질이 나오기 때문이다.

④ MP3 — 사람이 못 듣는 소리는 지운다

MP3(MPEG-1 Audio Layer III)는 표본화·양자화·부호화를 거쳐 만들어진 디지털 음원(PCM)을 한 번 더 압축하는 손실 압축 방식이다. 핵심 아이디어는 "사람 귀가 애초에 듣지 못하는 소리는 저장할 필요가 없다"는 심리음향(psychoacoustic) 모델이다.

  • 가청 주파수 한계: 사람은 대략 20Hz~20,000Hz의 소리만 들을 수 있다 — 이 범위 밖 정보는 처음부터 버린다.
  • 주파수 마스킹(동시 마스킹): 큰 소리 옆에 있는 작은 소리는 묻혀서 안 들린다. 예를 들어 시끄러운 콘서트장에서 옆 사람의 속삭임이 안 들리는 것과 같은 원리다.
  • 시간 마스킹: 아주 큰 소리가 난 직후 아주 짧은 순간에는, 원래 들렸을 작은 소리도 잠깐 안 들린다.
주파수 → 크기 마스킹 임계선(이 선 아래 소리는 안 들림) 큰 소리 묻힘 묻힘 들림 → 저장
▲ 큰 소리 근처의 작은 소리(빨강)는 마스킹 임계선 아래로 묻혀 들리지 않으므로 데이터에서 지운다. 임계선 위의 소리(초록)만 남겨 저장한다.

MP3는 이렇게 ① 소리를 여러 주파수 대역으로 나누고 ② 심리음향 모델로 어느 대역이 들리는지/안 들리는지 분석해 ③ 잘 들리는 대역엔 비트를 많이, 안 들리는 대역엔 비트를 적게(또는 아예 0을) 할당한 뒤 ④ 남은 값을 양자화·부호화한다. 이 과정을 거치면 원본 CD 음원(약 1,411kbps)을 1/10 수준(128kbps)까지 줄이면서도 사람 귀에는 거의 같은 소리로 들린다.

비트레이트체감 음질파일 크기
128kbps보통 (음원 스트리밍 최소 수준)작음
192kbps좋음중간
320kbps매우 좋음 (원음과 구분 어려움)
Tip · 비트레이트(bitrate)는 1초 분량 소리를 표현하는 데 쓰는 비트 수다. 마스킹으로 버리는 정보가 적을수록(=비트레이트가 높을수록) 음질은 좋아지지만 압축 효율은 떨어진다.
💡 궁금해요 · 소리도 무손실 압축이 가능할까? 가능하다! 심리음향 마스킹 없이, 손실 압축보다 압축률은 낮지만 고품질 음원을 원본 그대로 저장할 수 있다. 대표 포맷은 FLAC, ALAC.
✅ 성취기준 자가 점검

디지털 데이터 압축의 개념과 필요성, 무손실·손실 압축의 차이를 설명할 수 있나요? 런 길이 부호화·허프만 부호화의 원리를 손으로 계산할 수 있나요? 나이퀴스트율에 따라 표본화 주파수를 정하고, PCM 변환 과정을 예로 들어 설명할 수 있나요? MP3가 청각 마스킹을 이용해 데이터를 줄이는 원리를 설명할 수 있나요?

2단원 · 1절

2. 디지털 데이터의 암호화Encryption

온라인 쇼핑, 민원 서류 발급처럼 인터넷으로 처리하는 일이 많아질수록 비밀번호와 개인정보를 안전하게 지키는 기술이 중요해진다. 그 핵심이 암호화다.

1) 암호화의 기본 개념

평문plaintext 암호화(키) 암호문ciphertext 복호화(키) 평문plaintext
▲ 암호화의 기본 흐름 — 평문 → 암호문 → 평문
  • 암호화(encryption): 원본 데이터(평문)를 읽기 어려운 형태(암호문)로 바꾸는 과정.
  • 복호화(decryption): 암호문을 다시 평문으로 되돌리는 과정.
  • 암호키(encryption key): 암호화·복호화에 필요한 규칙.
암호화의 세 가지 기능 · 기밀성(권한 있는 사람만 볼 수 있음) · 무결성(내용이 임의로 바뀌지 않았는지 확인) · 인증(진짜 사용자인지 식별)
주요 용어 · 암호화, 복호화, 치환형 암호화, 전치형 암호화, 단방향 암호화, 대칭 암호화, 비대칭 암호화

2) 치환형 암호화 — 카이사르 암호

평문의 각 문자를 약속된 다른 문자로 치환하는 방법이다. 로마 황제 율리우스 카이사르가 전쟁 중 군사 정보를 전달하기 위해 고안했다고 전해져 카이사르 암호라 불린다. 알파벳을 정해진 칸수(키)만큼 밀어서 치환하고, 복호화할 때는 반대 방향으로 밀어 되돌린다.

키 3으로 밀어서 치환 — 각 평문 글자를 알파벳에서 3칸 뒤 글자로 바꾼다 평문 암호문 A B C D E F G H I J D E F G H I J K +3
A는 3칸 뒤인 D로, B는 E로 … 항상 같은 규칙으로 밀어서 치환한다.
🔐 카이사르 암호 체험하기 SIMULATION

영문자를 입력하고 키(이동 칸수)를 조절해 보세요. 숫자·공백·한글은 그대로 둡니다.

3
위에서 문장을 입력하고 버튼을 눌러 보세요.

고대에는 문자의 순서를 재배치하는 전치형 암호화도 쓰였다. 그리스 군사들이 사용한 스키테일(scytale)이 대표적인 예로, 정해진 지름의 막대에 종이를 감아 글을 쓰면 풀었을 때 문자가 뒤섞여 보인다 — 같은 지름의 막대를 가진 사람만 다시 감아 해독할 수 있다.

실제 스키테일 복제품 — 막대에 가죽 끈을 나선으로 감아 글자를 새긴 모습
실제 스키테일 복제품 — 막대에 가죽 끈을 나선으로 감고 글자를 새겨 넣었다. 풀면 글자 순서가 뒤섞이고, 같은 굵기의 막대에 다시 감아야만 원래 순서로 읽힌다.
① 막대에 감긴 순서 그대로 1 → 10을 적는다 1 2 3 4 5 6 7 8 9 10 풀면 ② 종이를 풀면 순서가 뒤섞여 보인다 1 3 5 7 9 2 4 6 8 10 막대 없이는 원래 순서(1→10)를 알 수 없다 ③ 같은 굵기의 막대에 다시 감아야만 1→10의 원래 순서로 되돌아온다 막대의 굵기(지름)가 곧 비밀 키다
스키테일 암호 — 문자를 바꾸지 않고 순서만 재배치하는 전치형 암호화
Tip · 예를 들어 COMPUTER를 키 35164827의 순서로 재배치하면 MUCTPROE가 된다. 그러나 전치형 암호화는 컴퓨팅 기술이 발전하며 쉽게 뚫리게 되어, 더 안전한 방법이 필요해졌다.
✅ 성취기준 자가 점검

치환형·전치형 암호화 방법을 설명하고, 그 한계(문자 빈도 분석 등으로 해독 가능)를 말할 수 있나요?

3) 지금 우리가 쓰는 암호화 — 단방향 / 대칭 / 비대칭

① 단방향 암호화

암호화는 되지만 복호화는 불가능한 방식. 같은 평문은 항상 같은 암호문(해시값)을 만들고, 한 글자만 달라져도 완전히 다른 결과가 나온다. 그래서 원문을 노출하지 않고도 일치 여부만 비교할 수 있어 비밀번호 저장, 파일 위·변조 확인, QR코드 신원 인증 등에 쓰인다. 대표 알고리즘은 SHA-256.

이 글은 원본입니다. 이 글은 원본입니다 (마침표 하나 차이) 해시 함수 SHA-256 a1b2...9f3d (고정 64자) 7e4c...02a8 (고정 64자) → 완전히 다른 해시값! (되돌려서 원문을 알아낼 수 없다)
입력이 아무리 길어도 출력은 항상 같은 길이 — 한 글자만 달라져도 해시값 전체가 바뀐다 (눈사태 효과)
💡 궁금해요 · "이 글은 원본입니다."와 "이 글은 원본입니다"(마침표 하나 차이)를 SHA-256으로 변환하면 완전히 다른 해시값이 나온다. 이 성질 덕분에 해시값만 비교해도 데이터가 조금이라도 변조됐는지 알 수 있다.
📌 참고 — 해시 함수와 SHA 계열
해시 함수(hash function)는 길이가 제각각인 데이터를 정해진 길이의 값(해시값)으로 요약하는 함수다. 원문이 한 글자만 달라져도 해시값은 완전히 달라지고(눈사태 효과), 반대로 해시값만 보고 원문으로 되돌릴 수는 없다 — 그래서 '단방향'이라 부른다.

SHA(Secure Hash Algorithm)는 이 해시 함수의 대표 표준 계열이고, 이름 뒤의 숫자는 바로 결과 해시값의 비트(bit) 길이다. (SHA-64·SHA-128 같은 버전은 없고, 실제로는 아래처럼 나뉜다.)
이름해시값 길이비고
SHA-1160비트2017년 실제 충돌(같은 해시값을 갖는 서로 다른 파일) 사례가 발견돼 더 이상 안전하지 않음 — 사용 비권장
SHA-256256비트현재 가장 널리 쓰이는 표준. 비트코인, 인증서, 비밀번호 저장 등에 사용
SHA-512512비트SHA-256보다 해시값이 더 길어 안전성이 높고, 64비트 컴퓨터에서는 오히려 더 빠르게 동작하기도 함
💡 "256비트"인데 왜 화면엔 "64자"로 보일까? · 해시값을 사람이 읽기 편하게 적을 땐 보통 16진수(0~9, a~f)로 바꿔 쓴다. 16진수는 한 자리에 16가지(2⁴)를 표현하므로 한 자리 = 4비트다 — 이건 일반 텍스트 한 글자가 8비트(1바이트)인 것과는 다르다. 그래서 256비트 ÷ 4비트 = 64자가 되는 것이고, 8비트로 착각해 나누면 32자가 나와 계산이 안 맞는다.
숫자가 클수록 가능한 해시값의 경우의 수가 기하급수적으로 늘어나 무작위로 맞히거나 같은 해시값을 갖는 다른 원문(충돌)을 찾기가 훨씬 어려워진다 — 다만 계산에 드는 시간·자원은 조금 더 필요하다.
🔐 단방향 암호화(해시 함수) 체험하기 SIMULATION

61쪽 스스로 해결하기 — 문장을 입력하면 진짜 SHA-256 알고리즘으로 해시값을 계산해요. 아래 두 칸에 원문과, 마침표 하나·띄어쓰기 하나만 바꾼 문장을 각각 넣고 해시값이 어떻게 달라지는지 직접 확인해 보자.

계산 중…
계산 중…

② 대칭 암호화 (비밀키)

송신자와 수신자가 같은 키로 암호화·복호화하는 양방향 방식. 속도가 빠르지만, 사용자마다 키를 개별적으로 안전하게 전달해야 하는 키 배송 문제가 있다 — 사용자가 10만 명이면 키도 10만 개를 관리해야 한다. 인터넷·모바일 뱅킹의 OTP보안카드가 대표 사례다.

대칭 암호화 송신자 수신자 🔑 같은 키로 암호화·복호화
▲ 대칭 암호화 — 송신자와 수신자가 같은 키로 암호화·복호화한다

③ 비대칭 암호화 (공개키 · 개인키)

대칭 암호화의 키 배송 문제를 해결하기 위해 등장했다. 송수신자가 서로 다른 키 쌍(공개키·개인키)을 가지며, 한쪽 키로 암호화한 것은 반드시 짝을 이루는 다른 키로만 풀 수 있다. 처리 속도는 느리지만 키를 안전하게 교환할 필요가 없다. 전자 서명, 공동(공인) 인증서가 대표 사례다.

비대칭 암호화 송신자 수신자 🔑 개인키로 암호화 공개키로 복호화 서로 다른 키 쌍 사용
▲ 비대칭 암호화 — 송신자와 수신자가 서로 다른 키 쌍을 사용한다
구분대칭 암호화비대칭 암호화
키 관계암호화 키 = 복호화 키암호화 키 ≠ 복호화 키
속도빠름느림
키 교환필요 (문제 발생 가능)불필요 (쉬움)
대표 사례OTP, 보안카드공동 인증서, 전자 서명
✅ 성취기준 자가 점검

단방향·대칭·비대칭 암호화의 차이와 각각의 실제 사용 사례를 설명할 수 있나요?

2단원 · 2절

3. 빅데이터의 개념과 수집Big Data & Collection

4차 산업혁명 시대, 우리 주변에는 규모를 가늠할 수 없을 만큼 많은 데이터가 매일 쏟아진다. 이 방대한 데이터를 빅데이터라 하고, 이를 목적에 맞게 다루는 것이 데이터 분석이다.

1) 빅데이터의 3V

빅데이터는 기존 방식으로는 처리하기 어려운 막대한 양의 데이터셋(또는 그 처리 기술)을 말하며, 세 가지 특징 3V로 요약된다.

Volume · TB~PB 속도Velocity · 실시간 생성 다양성Variety · 정형+비정형 빅데이터
▲ 빅데이터의 3V — 양(Volume) · 속도(Velocity) · 다양성(Variety)
  • 양(Volume): 데이터 집합의 크기가 테라바이트(TB, 10¹²byte)에서 페타바이트(PB, 10¹⁵byte)에 이른다.
  • 속도(Velocity): 센서·인터넷·모바일 등 다양한 곳에서 빠르게 생성·수집된다.
  • 다양성(Variety): 데이터베이스 같은 정형 데이터부터 이메일·SNS 게시물 같은 비정형 데이터까지 형태가 다양하다.
💡 궁금해요 · 최근에는 가치(Value)정확성(Veracity)을 더해 4V, 5V라고도 표현해요.
주요 용어 · 빅데이터, 공공 데이터, 민간 데이터, 웹크롤링

2) 내게 필요한 데이터는 어떻게 모을까?

공공 데이터
공공기관 개방 · 높은 신뢰성
민간 데이터
기업·개인 수집 · 실생활 특화
웹크롤링
프로그램이 자동으로 수집
직접 수집
설문·촬영·센서 측정
수집 방법특징
공공 데이터공공 기관이 만든 데이터. 개방성이 가장 큰 특징으로, 개인정보·안보를 침해하지 않으면 누구나 자유롭게 쓸 수 있다. 신뢰성이 높다.공공데이터포털(data.go.kr), 기상자료개방포털
민간 데이터기업·개인이 상업적 목적으로 수집. 더 전문적이고 실생활에 도움이 되는 경우가 많다.캐글(Kaggle), 데이콘(DACON)
웹크롤링웹 크롤러(web crawler)라는 프로그램으로 웹사이트 정보를 자동 수집하는 방법.특정 웹사이트의 실시간 통계 자동 수집
직접 수집필요한 데이터가 없을 때 직접 얻는 방법. 목적에 딱 맞는 데이터를 얻을 수 있다.설문 조사, 카메라 촬영, 센서 측정
Tip · 데이터 수집 방법마다 장단점이 있다. 목적에 알맞은 방법을 고르면 문제 해결에 도움이 되고 비용도 아낄 수 있다.
✅ 성취기준 자가 점검

빅데이터의 개념과 3V 특징을 설명하고, 문제 해결에 필요한 데이터를 수집 방법별로 구분해 고를 수 있나요?

2단원 · 2절

4. 데이터 전처리와 시각화Preprocessing & Visualization

모은 데이터를 그대로 분석에 쓸 수는 없다. 다듬어야(전처리) 하고, 눈에 보이게 그려야(시각화) 비로소 의미를 읽을 수 있다.

1) 데이터 전처리 — 분석 전 손질하기

데이터 전처리는 원시 데이터를 원하는 형식으로 다듬는 작업이다. 적절히 전처리하면 분석과 기계학습의 정확도·신뢰도가 올라간다.

문제 상황
이해하기 데이터
수집하기
데이터
탐색하기
데이터 전처리하기
▲ 데이터 처리 과정 — 문제 상황 이해 → 수집 → 탐색 → 전처리
전처리 작업내용
결측치 제거데이터셋에서 값이 빠진(누락된) 결측치를 채우거나 제거한다.
이상치 제거일반적인 경향에서 크게 벗어난 이상치는 분석 결과를 왜곡할 수 있어 제거한다.
데이터 정리중복 항목 제거, 오류·맞춤법 수정 등.
데이터 통합서로 유사하거나 공통 속성(예: ID)을 가진 데이터를 하나로 합친다.
데이터 정규화속성값을 공통 척도나 일정 범위로 맞춰 분석 일관성을 높인다.
📌 참고 · 교과서 실습에서는 오렌지3(Orange3)라는 무료 데이터 분석 도구로 태양광 발전량 데이터의 결측치·이상치를 제거하고, 칼로리 데이터를 병합하는 과정을 다룬다. 산점도로 이상치를 눈으로 확인한 뒤 조건에 맞는 행만 남기는 방식이 대표적이다.
주요 용어 · 데이터 전처리, 결측치, 이상치

2) 데이터 시각화 — 숫자를 그림으로

데이터 시각화는 수치·통계 데이터를 그래픽으로 표현해 분석 결과를 직관적으로 이해하기 쉽게 만드는 기술이다. 데이터 형태에 따라 알맞은 시각화 방법이 다르다.

막대그래프
수치를 항목별로 비교
선그래프
시간에 따른 변화 추이
원그래프
전체 대비 비율(%)
산점도
두 변수 사이의 상관관계
히스토그램·분포도
구간별 데이터 분포
박스 플롯
통곗값과 이상치
워드 클라우드
단어 등장 빈도(클수록 빈번)
지도(Geo Map)
위도·경도가 있는 지리 정보

정형 데이터(수치·문자·날짜·지리)는 표·그래프로, 비정형 데이터(이미지·텍스트·소리)는 이미지 뷰어·워드 클라우드처럼 형태에 맞는 방법으로 시각화한다.

📊 산점도 & 회귀선 체험하기 SIMULATION

교과서의 ‘운동 시간과 소모 열량’ 예시처럼, 두 변수의 상관관계 강도를 슬라이더로 바꾸면 산점도와 회귀선이 실시간으로 달라져요.

0.80
Tip · 회귀선의 기울기가 1에 가까울수록, 두 변수가 정비례에 가깝게 함께 움직인다는 뜻이에요. 상관관계 강도를 낮춰 보면 점들이 흩어지며 회귀선이 데이터 흐름을 잘 대표하지 못하게 되는 걸 볼 수 있어요.
✅ 성취기준 자가 점검

빅데이터 분석 도구로 데이터를 시각화하고, 그 결과의 의미와 가치를 해석할 수 있나요? 정형·비정형 데이터에 맞는 시각화 방법을 구분할 수 있나요?

단원 정리

5. 데이터 단원 정리Wrap-up

🎯 이 단원의 핵심 질문

  • 데이터를 효율적으로 관리하고 보호하는 방법은? → 압축과 암호화
  • 빅데이터를 목적에 맞게 처리하여 분석하는 방법은? → 수집 → 전처리 → 시각화

🧭 진로 이야기 — 데이터 마이너

광산에서 광물을 캐내는 광부처럼, 방대한 데이터에서 의미 있는 정보를 찾아내는 직업이 데이터 마이너(data miner)다. 쇼핑몰 구매 기록, 검색 기록, SNS 데이터 같은 빅데이터를 분석해 미래에 도움이 될 정보를 만든다. 통계·프로그래밍에 대한 이해와, 세상을 바라보는 안목(도메인 지식)이 함께 필요한 직업이다.

📋 한눈에 정리

주제핵심
데이터 압축무손실(RLE, 허프만) vs 손실(JPEG, MPEG) — 압축비 = 압축 전 용량 ÷ 압축 후 용량
데이터 암호화치환형·전치형(고전) / 단방향·대칭·비대칭(현대)
빅데이터3V(양·속도·다양성), 수집(공공·민간·웹크롤링·직접)
전처리·시각화결측치·이상치 제거, 정규화, 통합 → 막대·산점도·박스플롯·워드클라우드로 시각화

✔️ 역량 체크

컴퓨팅 사고력추상화 · 자동화
디지털 문화 소양디지털 의사소통 · 윤리
인공지능 소양데이터 문해력
📌 참고 · 다음 단원(Ⅲ. 알고리즘과 프로그래밍, Ⅴ. 디지털 문화 등)도 순서대로 추가될 예정입니다. ← Ⅰ. 컴퓨팅 시스템 보러 가기