단원 홈
2단원 · 1차시

더 작게, 더 가볍게
디지털 데이터 압축

3MB 사진이 300KB가 되어도 우리 눈에는 똑같아 보입니다. 데이터를 줄이는 마법 — 그 원리를 직접 실험하며 파헤쳐 봅시다.

성취기준 12정02-01
압축률무손실 압축손실 압축 런 길이 부호화효율성 분석
🎯 학습 목표
  • 디지털 데이터 압축의 개념과 필요성을 설명할 수 있다.
  • 문자·이미지·소리 데이터의 기본적인 압축 원리를 이해하고, 간단한 데이터에 압축 기법을 적용할 수 있다.
  • 원본과 압축 데이터의 용량·품질을 비교하여 압축의 효율성을 분석하고 평가할 수 있다.
🤔

생각 열기 — 같은 사진, 다른 크기

친구에게 사진을 보낼 때를 떠올려 보세요. 메신저 앱은 "원본으로 보낼까요, 일반 화질로 보낼까요?"라고 묻습니다. 원본은 4MB, 일반 화질은 400KB — 10분의 1 크기인데 화면으로 보면 거의 차이가 없어요. 400KB짜리 사진은 어디서 3.6MB를 '덜어낸' 걸까요? 그리고 덜어냈는데 왜 똑같아 보일까요?

💬 함께 생각해 보기

① "aaaaaaaaaa"(a 10개)를 더 짧게 적는 방법이 있을까요? ② 사진에서 사람 눈이 잘 구별하지 못하는 정보가 있다면, 그것을 버려도 될까요? — 이 두 질문 속에 오늘 배울 압축의 두 가지 전략이 모두 들어 있습니다!

1

압축은 왜 필요할까

저장 공간, 시간, 그리고 지구를 위해

데이터 압축(data compression)은 데이터가 담고 있는 정보는 지키면서 표현하는 방법을 바꿔 크기를 줄이는 기술입니다. 이불을 압축팩에 넣으면 부피가 줄지만 이불은 그대로인 것처럼요. 압축이 없다면 어떤 일이 생길까요?

💾

저장 공간 부족

압축 없는 영화 한 편은 수백 GB! 스마트폰에 영화 한 편 넣기도 힘들어요. 압축 덕분에 같은 공간에 수십 배의 데이터를 담아요.

⏱️

전송 시간 증가

1단원에서 배웠듯 데이터는 네트워크로 이동해요. 크기가 10배면 전송 시간도 약 10배 — 영상 통화도, 스트리밍도 불가능해져요.

💸

비용 증가

데이터센터의 저장 장치, 통신망의 용량은 모두 돈이에요. 압축은 전 세계 IT 비용을 아끼는 핵심 기술이죠.

🌱

에너지와 탄소

데이터를 저장·전송할 때마다 전기가 쓰여요. 압축으로 데이터를 줄이면 에너지 절약과 탄소중립에도 기여한답니다.

🕰️ 저장의 역사 — 압축이 없던 시절을 상상하면

초기 컴퓨터의 저장 장치였던 천공카드는 한 장에 고작 80글자(80바이트)를 담았어요. 스마트폰 사진 한 장(약 3.5MB)을 천공카드로 저장하려면 4만 장이 넘는 카드가 필요한 셈! 자기 테이프, 하드디스크로 저장 기술이 발전했지만 데이터는 언제나 더 빠르게 늘어났습니다. 그래서 '더 큰 창고'와 함께 '짐을 줄이는 기술', 즉 압축이 나란히 발전해 온 것이죠.

구멍이 뚫린 포트란 프로그램 천공카드
천공카드 — 구멍 1개가 데이터 1조각출처: Wikimedia Commons
릴이 달린 IBM 메인프레임용 자기 테이프 장치 3대
메인프레임의 자기 테이프 장치 — 지금도 대용량 장기 보관엔 테이프가 쓰인다출처: Wikimedia Commons (CC BY 2.0)
덮개를 연 하드디스크 내부의 플래터와 헤드
하드디스크 — 손바닥 위 수 TB의 시대출처: Wikimedia Commons

압축 효율은 어떻게 잴까 — 압축률

압축이 얼마나 잘 되었는지는 압축률로 평가해요. 이 단원에서는 '압축 후 크기가 원본의 몇 %인가'로 계산합니다.

압축률(%) = 압축 후 데이터 크기원본 데이터 크기 × 100

예를 들어 1,000KB 사진이 250KB가 되었다면 압축률은 25% — 원본의 4분의 1 크기가 된 거예요. 압축률 숫자가 작을수록 더 많이 줄어든 것이죠. (압축률이 100%를 넘으면? 오히려 커졌다는 뜻! 잠시 후 실험에서 직접 확인해요.)

2

무손실 압축 — 한 톨도 잃지 않는다

반복을 찾아 짧게 적기

무손실 압축은 압축을 풀었을 때 원본과 완벽히 똑같이 복원되는 방식이에요. 비밀은 데이터 속의 반복(중복)을 찾아 짧게 표현하는 것! 가장 단순하고 대표적인 방법이 런 길이 부호화(RLE)입니다.

💡 런 길이 부호화(RLE)의 원리

원본: ■■■■■■■■■■□□□■■ (15글자)
압축: ■10□3■2 (7글자) — "■가 10개, □가 3개, ■가 2개"

글자 수가 절반 이하로 줄었어요! 팩스, 아이콘 이미지 등 같은 값이 길게 이어지는 데이터에서 큰 효과를 냅니다. 문자 데이터라면 "aaaa" → "a4"로 줄이는 것과 같은 원리예요.

🎨 픽셀 압축 실험실 (RLE) INTERACTIVE

16×16 캔버스에 마우스로 그림을 그려 보세요 (클릭·드래그). 그릴 때마다 RLE 압축 결과와 압축률이 실시간으로 계산됩니다. 어떤 그림이 잘 압축되고, 어떤 그림이 오히려 커질까요?

원본
256글자
RLE 압축
--

[원리]픽셀을 왼쪽 위부터 한 줄씩 읽으며, 같은 색이 이어지는 구간을 「색+개수」로 적습니다. (■=켜짐, □=꺼짐)
⚠️ 압축이 항상 이득은 아니다!

체커보드 버튼을 눌러 보았나요? 색이 한 칸마다 바뀌면 "■1□1■1□1…"처럼 압축 결과가 원본보다 커집니다 (압축률 100% 초과). 반복이 없는 데이터엔 RLE가 통하지 않아요. 그래서 압축 알고리즘을 고를 때는 데이터의 특성을 분석하는 것이 먼저랍니다 — 이것이 바로 '효율성 분석'이에요.

3

손실 압축 — 티 안 나게 버린다

사람의 감각이 눈치채지 못하는 정보를 덜어내기

손실 압축은 과감한 전략을 씁니다 — 사람이 눈치채기 어려운 정보를 아예 버리는 것이죠. 사람의 눈은 미세한 색 변화에 둔감하고, 귀는 아주 높거나 작은 소리를 잘 듣지 못해요. 이 감각의 한계를 이용합니다.

형식대상무엇을 버릴까
JPEG사진눈이 둔감한 미세한 색 변화를 뭉뚱그려 표현
MP3·AAC소리사람이 못 듣는 주파수, 큰 소리에 가려지는 작은 소리 제거
MP4(H.264 등)동영상각 장면을 JPEG처럼 눈에 둔감한 정보를 버려 압축하고, 이전 화면과 똑같은 부분은 다시 저장하지 않음

소리는 무엇을 버릴까 — 귀의 한계를 이용하는 MP3

사람의 귀는 대략 20Hz~20,000Hz(20kHz) 사이의 소리만 들을 수 있고, 나이가 들수록 높은 음역부터 듣지 못하게 돼요. 또 큰 소리가 나는 순간 그 곁의 작은 소리는 묻혀서 들리지 않습니다(마스킹 효과). MP3 같은 소리 압축은 이 두 가지 귀의 한계를 이용해 어차피 들리지 않는 소리를 골라 버려요. 그 결과 CD 음질의 3분짜리 곡(약 30MB)이 음질 차이를 느끼기 어려운 3~4MB의 MP3가 됩니다 — 압축률 약 10%!

👂 가청 한계 체험 — 나는 몇 Hz까지 들릴까? INTERACTIVE

버튼을 눌러 1초씩 소리를 들어 보세요(이어폰 권장, 볼륨은 낮게!). 높은 주파수로 갈수록 어느 순간 '아무것도 안 들리는' 지점이 옵니다 — MP3는 바로 그 영역의 데이터를 과감히 버려요.

[안내]10대의 귀는 보통 17~19kHz까지 들리지만, 성인은 15kHz 근처에서 멈추는 경우가 많아요. 선생님과 비교해 보세요! (스피커 성능에 따라 재생이 안 될 수도 있어요)
📷 사진 화질 실험실 (JPEG 손실 압축) INTERACTIVE

품질 슬라이더를 움직이면 실제 JPEG 압축이 일어납니다(브라우저가 진짜로 압축해요!). 품질을 낮추면 용량이 얼마나 줄고, 화질이 언제부터 눈에 띄게 나빠지는지 찾아보세요.

원본 (무손실)
--
JPEG 압축 결과
JPEG 압축된 이미지 --
[관찰]품질 슬라이더를 천천히 내리며 하늘의 그라데이션과 경계선을 관찰해 보세요.

무손실 vs 손실 — 언제 무엇을 쓸까

🔒 무손실 압축

  • 복원하면 원본과 100% 동일
  • 압축 효과는 상대적으로 작음
  • 한 글자도 달라지면 안 되는 데이터에 필수
  • 예: 문서·프로그램(ZIP), 그림·아이콘(PNG), 의료 영상
VS

✂️ 손실 압축

  • 원본의 일부 정보를 영구히 버림
  • 크기를 크게 줄일 수 있음 (1/10 이하도 가능)
  • 사람의 감각이 대상일 때 효과적
  • 예: 사진(JPEG), 음악(MP3), 동영상(MP4)
🕹️ 활동 1 — 무손실? 손실?

각 데이터에 더 알맞은 압축 방식을 골라 보세요. 카드를 누른 뒤, 알맞은 바구니를 클릭!

🔒 무손실 — 1비트도 잃으면 안 돼요
✂️ 손실 — 작게 만드는 게 더 중요해요

💡 판단 기준: 원본이 1비트라도 달라지면 큰일 나는가? 아니면 사람이 보고 듣기에 충분하면 되는가?

4

압축의 효율성 분석·평가하기

숫자로 비교하고, 목적에 비추어 판단한다

압축 방법의 효율성을 평가할 때는 두 가지를 함께 봐야 해요 — ① 용량이 얼마나 줄었나(압축률)② 품질·정보가 얼마나 보존되었나. 많이 줄었어도 품질이 크게 망가지면 좋은 압축이 아니고, 품질이 완벽해도 거의 안 줄었다면 효율적이지 않죠. 목적에 따라 균형점이 달라진다는 것이 핵심입니다.

🧮

압축률 계산 연습

계산기 없이 도전! · 즉시 채점

12,000KB 파일을 압축했더니 500KB가 되었다. 압축률은?

2300MB 동영상을 A 방식은 60MB로, B 방식은 90MB로 압축했다. 용량만 보면 어느 쪽이 더 효율적인가?

🛠️ 활동 2 — 압축 효율성 평가 보고서

위의 사진 화질 실험실로 돌아가서, 품질을 100 → 80 → 50 → 20 → 5로 바꾸며 표를 채워 보세요.

  1. 각 품질에서 용량(KB)과 압축률(%)을 기록한다.
  2. 화질이 "눈에 띄게 나빠지기 시작하는" 품질 값을 찾는다.
  3. 다음 두 상황에 알맞은 품질 값을 각각 정하고 근거를 쓴다: ㉠ 프로필 사진 인쇄용 / ㉡ 단체 채팅방 공유용
  4. 모둠 친구와 결과를 비교한다 — 사람마다 '눈에 띄는' 기준이 다르다는 것도 중요한 발견!

[도전] 픽셀 압축 실험실에서 압축률이 가장 낮은(=가장 잘 압축되는) 그림과 가장 높은(=압축이 손해인) 그림을 직접 그려서 캡처해 보세요. 어떤 특징이 압축률을 결정하나요?

확인 문제

바로바로 채점! 해설까지 꼭 읽어 보세요.

📝

1차시 확인 문제

5문항 · 즉시 채점

1데이터 압축에 대한 설명으로 가장 적절한 것은?

2런 길이 부호화(RLE)로 「■■■□□■」를 압축한 결과는?

3손실 압축에 대한 설명으로 옳지 않은 것은?

4MP3 소리 압축이 버리는 정보로 가장 알맞은 것은?

5압축 방식의 선택이 가장 적절하지 않은 것은?

🚀

더 알아보기

교육과정 너머, 궁금한 만큼 깊이!

심화자주 나오는 글자에 짧은 옷을 — 허프만 부호화

RLE 말고도 무손실 압축의 강력한 무기가 있어요. 허프만 부호화(Huffman coding)자주 나오는 값에는 짧은 코드를, 드문 값에는 긴 코드를 배정합니다.

예를 들어 "AAAABBC"라는 문자열에서 — 모든 글자에 똑같이 2비트씩 쓰면 7글자 × 2비트 = 14비트. 하지만 가장 흔한 A에 1비트(0), B에 2비트(10), C에 2비트(11)를 주면 4×1 + 2×2 + 1×2 = 10비트로 줄어요!

모스 부호에서 가장 흔한 알파벳 E가 가장 짧은 부호(·)인 것과 같은 지혜죠. ZIP, PNG, JPEG, MP3 — 오늘날 거의 모든 압축 형식의 내부에서 허프만 부호화가 일하고 있답니다.

⌨️ 직접 실험 — 짧은 영어 문장을 넣으면 글자 빈도를 세어 허프만 코드를 즉시 만들어 드려요.

글자횟수허프만 코드길이
고정 길이
허프만

심화확장자의 비밀 — ZIP, PNG, JPEG는 뭐가 다를까
  • ZIP — 어떤 파일이든 무손실로 묶어 압축하는 만능 보관함. 반복 패턴 찾기(LZ77) + 허프만 부호화의 합작품이에요.
  • PNG — 그림용 무손실 형식. 로고, 아이콘, 스크린샷처럼 또렷한 경계가 있는 이미지에 강해요.
  • JPEG — 사진용 손실 형식. 사진처럼 색이 부드럽게 변하는 이미지를 1/10 크기로 줄여요. 대신 글자나 선이 많은 이미지에선 경계가 지저분해져요(실험실에서 봤죠?).
  • WebP·AVIF — 웹을 위해 태어난 차세대 형식. 같은 화질을 JPEG보다 30~50% 작게 담아, 여러분이 보는 웹사이트들을 더 빠르게 만들고 있어요.
형식방식이런 데이터에 강해요이런 데이터엔 약해요줄이는 힘
ZIP무손실문서·프로그램 등 모든 파일이미 압축된 파일(JPEG 등)보통
PNG무손실로고·아이콘·스크린샷색이 풍부한 사진보통
JPEG손실색이 부드럽게 변하는 사진글자·선이 또렷한 그림강력 (약 1/10)
WebP·AVIF둘 다 지원웹 이미지 전반아주 오래된 기기·브라우저더 강력

같은 사진을 PNG와 JPEG로 저장해 용량을 비교해 보세요 — 데이터 특성과 형식의 궁합을 직접 확인할 수 있어요.

융합압축이 지구를 식힌다 — 스트리밍과 탄소중립

동영상 스트리밍은 전 세계 인터넷 트래픽의 절반 이상을 차지해요. 데이터가 데이터센터에서 우리 화면까지 오는 동안 서버, 네트워크 장비, 기지국이 쉼 없이 전기를 씁니다.

만약 압축 기술 없이 트래픽이 몇 배로 불어났다면, 이를 감당하기 위해 서버와 네트워크 장비를 훨씬 많이 늘려야 했을 것이고 그만큼 에너지 부담도 커졌을 거예요. 실제로 새 압축 표준(H.265, AV1 등)이 보급될 때마다 같은 영상을 더 적은 데이터로 보낼 수 있게 되어 인프라의 부담이 줄어듭니다. 압축 알고리즘 연구자는 알고 보면 기후 위기와 싸우는 사람들이기도 한 셈이죠.

우리가 할 수 있는 실천도 있어요 — 필요 이상의 초고화질 스트리밍 줄이기, 클라우드의 중복 사진 정리하기. 데이터 다이어트가 곧 탄소 다이어트랍니다. 🌍

📊 영상 1시간 스트리밍이 쓰는 데이터 (추정)

480p (SD)
약 1GB
1080p (FHD)
약 3GB
4K (UHD)
약 7GB

같은 1시간이라도 화질에 따라 데이터가 약 7배 차이! 스마트폰 화면에서는 1080p로도 차이를 느끼기 어려운 경우가 많아요 — 화질 한 단계 낮추기가 곧 데이터·에너지 다이어트.

코딩파이썬으로 만드는 나만의 RLE 압축기

픽셀 압축 실험실의 원리를 파이썬 코드로 옮기면 이렇습니다. (3단원에서 프로그래밍을 본격적으로 배워요!)

def rle_compress(data):
    result = ""
    count = 1
    for i in range(1, len(data) + 1):
        if i < len(data) and data[i] == data[i - 1]:
            count += 1            # 같은 글자가 이어지면 세기
        else:
            result += data[i - 1] + str(count)  # "글자+개수" 기록
            count = 1
    return result

original = "aaaabbbcccccd"
compressed = rle_compress(original)
print(compressed)                  # a4b3c5d1
print(len(original), "→", len(compressed), "글자")

🔍 코드 따라가기 — rle_compress("aab")의 반복문 한 바퀴

i검사 (data[i] vs data[i−1])countresult
시작1(빈 문자열)
1a = a → 같다, 계속 세기2(빈 문자열)
2b ≠ a → 다르다! "a2" 기록1a2
3문자열 끝 → 마지막 "b1" 기록a2b1

직접 실행해 보고, 압축이 손해가 되는 입력("abcdef" 같은)도 넣어 보세요. 복원하는 rle_decompress 함수도 만들어 본다면 완벽한 도전!

📌

한눈에 정리

  • 압축 = 정보는 지키고 표현 방법을 바꿔 크기를 줄이는 기술 — 저장·전송·비용·에너지를 아낀다
  • 압축률(%) = 압축 후 ÷ 원본 × 100 — 숫자가 작을수록 많이 줄어든 것
  • 무손실 압축(RLE, ZIP, PNG): 반복을 짧게 적어 100% 복원 — 문서·프로그램·의료 영상
  • 손실 압축(JPEG, MP3, MP4): 감각이 둔감한 정보를 버려 크게 줄임 — 사진·음악·영상
  • 효율성 평가 = 압축률 + 품질 보존 + 목적 적합성을 함께 따지는 것