[한글화 상식]압축의 개념과 원리에 대해서[한글화 상식]압축의 개념과 원리에 대해서

Posted at 2012. 2. 1. 16:01 | Posted in 이전 카테고리/한글화 강좌 시즌 2
안녕하세요, Hangeru Team.의 MG게이버입니다.~
오늘도 다시 한글화 강의 들어갑니다. ㅎㅎ


 강좌 개요

압축에 대해 간단히 알아봅니다.

 본 강좌

한글화를 하다보면 여러가지 어려움이 있는데 그중에서 가장 많은 분들이 어려움을 느끼시는 압축에 대해 알려드리고자 합니다.

압축.. 많이 들어봤고 실제로도 많이 사용하고 있지만 한글화에서의 압축은 뭔가 생소하실겁니다.

사실 기본적인 개념은 똑같고 범용 프로그램이 있는가 없는가의 차이밖에는 없습니다.. 

범용 프로그램이란 우리가 많이 사용하는 압축 프로그램, winrar, 반디집, 알집 등을 말하는데 이런 범용 프로그램들은 주로 파일을 압축해서 보내거나 보관할 때 사용합니다. 압축을 하게 되면 여러 가지 파일을 한 파일로 묶어서 쉽게 보낼 수 있고 용량도 줄일 수 있기 때문에 일석이조겠지요?

그렇다면 프로그램에서는 어떨까요?

역시 데이터를 보관하고 쉽게 관리하기 위해 사용합니다.
즉 프로그램에서도 데이터를 압축하면 여러개의 데이터를 묶을 수 있고 용량도 줄일 수 있기 때문에 일반인들이 사용하는 것과 거의 같은 목적으로 사용합니다.

다른 점은 무엇이 있을까요?

바로 사용 방식의 차이인데, 일반 파일 압축은 여러 종류의 파일(문서, 음악, 비디오, 실행 파일 등)을 효율적으로 압축할 수 있어야 하며 보관을 위해 압축률을 최대화하고, 분할 압축 등의 기능 지원과 호환성(여러가지 OS에서 풀 수 있도록)을 중요시합니다.
반면 프로그램에서는 빠른 구동을 위한 압축된 데이터를 빨리 풀 수 있어야하며, 여러 종류의 데이터 별로 최적화된 압축루틴을 사용합니다.
또한 라이센스 문제로 자체적으로 압축 루틴을 개발하는 경우도 있지요..

이런 차이 때문에 프로그램 내부의 압축 루틴은 범용 프로그램이 존재하지 않는 경우가 많고, 따로 압축 해제 툴을 개발하여야 합니다.(물론 zip, gz 등의 범용 압축 루틴을 사용하는 프로그램도 많습니다.)

압축의 원리

압축의 원리는 간단합니다.
중복되는 데이터를 방지하고 줄이는 것인데 쉽게 말해서 사과가 든 상자와 바나나가 든 상자, 귤이 든 상자들이 아래처럼 배열되어 있다고 해봅시다.
사과|사과|사과|사과|바나나|바나나|귤|사과|사과|바나나|바나나

이걸 문서로 작성한다고 할때 어떻게 하면 글자 수를 줄일 수 있을까요?

사과x4|바나나x2|귤x1|사과x2|바나나x2

이렇게 쓰면 글자수가 많이 줄어들겠죠?

압축은 위와 같은 원리입니다.
중복된 데이터를 줄이고, 간단한 기호로 작성하는 것이죠.
물론 압축을 하게 되면 사람이 한눈에 알아보기는 힘들어지지만, 컴퓨터가 압축 해제도 처리하기 때문에 상관 없겠지요?

 강좌를 마치며

이번 강좌에서는 압축에 대해 말해보았습니다.
나중에 고급강좌에서는 압축 루틴 등도 직접 살펴보고 해제 툴 제작 방법도 알려드리겠습니다.
궁금한 점이 있으시면 메일 주시기 바랍니다. 
//