파일 압축

agnusdei·2025년 7월 27일
0

ICT

목록 보기
30/90

📘 1. 파일 압축의 정의 및 목적

**파일 압축(File Compression)**은 데이터를 저장하거나 전송할 때 데이터의 중복을 제거하거나 패턴을 분석하여 파일의 용량을 줄이는 과정입니다.

📌 주요 목적:

  • 저장 공간 절감
  • 전송 시간 단축
  • 네트워크 비용 절감
  • 백업 효율성 향상
  • 암호화 및 보안과의 통합 가능성

🔍 2. 압축 방식의 분류 (기술사 수준 분류 체계)

A. ✅ 손실 압축(Lossy Compression)

  • 원본 데이터 일부를 제거하여 압축률을 극대화
  • 복원 시 원본과 완전히 동일하지 않음
  • 주로 멀티미디어 (이미지, 오디오, 비디오)에서 사용

📌 대표 알고리즘 및 포맷:

알고리즘설명사용 예시
JPEG (Joint Photographic Experts Group)DCT (Discrete Cosine Transform) 기반 이미지 압축이미지
MP3 (MPEG-1 Audio Layer III)심리음향 모델 기반 오디오 압축오디오
H.264 / AVC블록 기반 동영상 압축, 고효율영상 스트리밍

B. ✅ 무손실 압축(Lossless Compression)

  • 데이터 손실 없이 완전 복원 가능
  • 텍스트, 실행 파일, 데이터베이스 백업 등 정확성 보장이 필요한 영역에 사용

📌 대표 알고리즘 및 포맷:

알고리즘설명대표 포맷
Huffman Coding빈도 기반 트리 압축, 고전적 방식ZIP, GZIP
LZ77 / LZ78 (Lempel-Ziv)Sliding Window 및 Dictionary 기반 압축ZIP, PNG
DEFLATELZ77 + Huffman 혼합 알고리즘GZIP, PNG, HTTP 압축
BWT (Burrows-Wheeler Transform)문자열 재배치 후 RLE (Run-Length Encoding) 사용bzip2
LZMA (Lempel-Ziv-Markov chain algorithm)고압축률, 사전 크기 큼7z
Zstandard (Zstd)Facebook 개발, 빠르고 압축률 높음현대 백업 시스템

⚙️ 3. 압축 프로세스 구성 요소

1. 모델링(Modeling)

데이터에서 패턴이나 중복성을 분석 (예: 사전, 빈도 분석)

2. 코딩(Coding)

분석된 데이터를 효율적으로 이진 코드로 표현 (예: 허프만 코딩, 산술 코딩)

3. 사전(Dictionary)

LZ 계열에서 사용하는 과거 데이터를 저장하는 메커니즘 (Sliding Window 등)

4. 후처리(Post-processing)

Run-Length Encoding, Move-to-Front, CRC 체크섬 등 부가적 처리


🧠 4. 알고리즘 비교

알고리즘압축률속도특징
ZIP (DEFLATE)보통빠름범용성 좋음
bzip2 (BWT 기반)높음느림텍스트에 유리
LZMA (7z)매우 높음느림큰 사전, 높은 CPU 사용
Zstd좋음매우 빠름백업 시스템, 클라우드 사용 증가
GZIP중간빠름유닉스/리눅스 기본 압축 도구

🧩 5. 응용 구조 및 시스템 아키텍처 상 고려사항

✅ 사용 위치별 압축 전략:

위치설명예시
저장소(Storage)파일 시스템 압축, 백업 압축NTFS 압축, ZFS
전송(Transmission)네트워크 대역폭 절약HTTP GZIP, QUIC Zstd
DB / 로그압축 백업, 아카이빙PostgreSQL TOAST, Oracle RMAN
파일 포맷문서 및 패키징DOCX (ZIP + XML), APK (ZIP 기반)

🔐 6. 보안과 압축의 상관관계

  • 압축 후 암호화가 일반적 순서
  • 압축 → 암호화: 패턴 제거 및 보안성 증가
  • 암호화 → 압축: 잘 압축되지 않음 (암호화된 데이터는 무작위성 큼)

🧾 7. 정리 요약 (기술사 포맷)

구분손실 압축무손실 압축
목적멀티미디어 용량 최소화데이터 정확성 유지
복원 가능성일부 손실완전 복원
주요 알고리즘JPEG, MP3, H.264Huffman, LZ77, DEFLATE, BWT
사용 예이미지, 오디오, 영상로그, DB 백업, 소스코드

✅ 결론 및 실무 적용 포인트

  • 압축 알고리즘 선택은 압축률, 속도, 데이터 특성, 실시간성, CPU 자원을 고려해야 함
  • 현대 시스템에서는 압축률보다는 속도 중심의 압축(Zstd, Snappy 등)이 대세
  • 클라우드 환경이나 데이터 레이크 등에서는 압축이 보안, 비용 절감, 성능 최적화에 직결됨

profile
DevSecOps ⚙️ + Pentest 🚩

0개의 댓글