본 발명은 상기 목적을 달성하기 위하여 다음과 같은 구성을 가진다.
본 발명에 의한 첨부 파일 압축 기능을 구비한 전자메일 시스템은, 네트워크로 연결되어 전자메일을 송/수신하는 송/수신 로컬 단말기와 송/수신 서버를 포함하는 전자메일을 송/수신하는 전자메일 시스템에 있어서, 상기 송/수신 단말기에 포함되는 클라이언트 어플리케이션 프로그램은, 상기 메일에 파일 첨부 명령이 입력되면, 상기 파일로부터 소정의 이미지 데이터 및/또는 첨부하는 상기 파일의 정보를 추출하여, 상기 이미지 데이터의 존재유무를 나타내는 미리보기 데이터 flag; 상기 이미지 데이터와 상기 파일정보를 포함하는 미리보기 데이터; 버전, 파일명, 압축을 풀 수 있는 이진정보를 가지고 있는 압축파일 정보; 및 실제 압축된 데이터 부분으로 구성된 압축데이터;를 포함하는 압축 포맷으로 상기 파일을 압축하는 것을 특징으로 한다.
한편, 본 발명에 따른 첨부 파일 압축 기능을 구비한 전자메일 시스템 컨트롤 방법은, 네트워크로 연결되어 전자메일을 송/수신하는 송/수신 로컬 단말기와 송/수신 서버를 포함하는 전자메일을 송/수신하는 전자메일 시스템에 있어서, 상기 송신 로컬 단말기에서 상기 전자메일에 파일을 첨부하라는 명령이 입력되면때 상기 파일에서 소정의 이미지 데이터와 상기 파일의 정보를 추출하여, 상기 이미지 데이터의 존재유무를 나타내는 미리보기 데이터 flag; 상기 이미지 데이터와 상기 파일정보를 포함하는 미리보기 데이터; 버전, 파일명, 압축을 풀 수 있는 이진정보를 가지고 있는 압축파일 정보; 및 실제 압축된 데이터 부분으로 구성된 압축데이터;를 포함하는 압축 포맷으로 상기 파일을 압축하여 상기 메일에 첨부하는 단계; 상기 송신 로컬 단말기에서 상기 네트워크를 통해 상기 송신서버를 거쳐 수신서버로 상기 단계에서 압축된 파일이 첨부된 메일 전송하는 단계; 상기 수신 서버에 송신된 상기 메일과 함께 첨부된 메일을 상기 수신 로컬 단말기로 다운로드하는 단계; 다운로드된 상기 파일을 열면 상기 압축파일정보에 포함된 상기 이진정보를 이용하여 압축된 상기 파일에 대한 압축풀기가 실행되어 복호화된 원본 파일만 저장하고 전송용 상기 압축파일을 삭제하는 첨부파일 열기 단계; 및 상기 복호화된 원본 파일을 상기 수신 로컬 단말기에 저장하는 저장 단계;를 포함하는 것을 특징으로 한다.
이하, 상기한 본 발명을 실시하기 위한 바람직한 실시예에 대해 도면을 참조하여 구체적으로 살펴보기로 한다.
도 1은 본 발명을 수행하는 첨부 파일 압축 기능을 구비한 전자메일 시스템의 구조를 나타내는 블럭도이다.
본 발명에 따른 첨부 파일 압축 기능을 구비한 전자메일 시스템은 네트워크를 통하여 송신서버(110)와 수신서버(120)가 연결되고, 송신서버(110)는 압축파일이 첨부된 메일을 송신하는 송신 로컬 단말기(115)와 연결되고, 수신서버(120)내에는 압축파일이 첨부된 메일을 수신하는 수신 로컬 단말기(125)와 연결된다. 상기 송/수신 로컬 단말기(115, 125)에는 본 발명에 의한 첨부 파일 압축 기능을 구비한 전자메일 시스템의 첨부파일 압축 기능을 실행하기 위한 클라이언트 어플리케이션 프로그램이 포함된다. 클라이언트 어플리케이션 프로그램은 전자메일에 파일을 첨부할 때 압축을 실행하여 첨부하고, 첨부할 원본 파일에 이미지 형식의 데이터가 포함되는 경우 설정된 형식의 이미지와 텍스트 형식의 원본 파일 정보(예를 들면 파일 제목, 파일 형식, 파일 크기 등)를 미리보기 데이터로 추출하고, 원본 파일에 대한 압축을 수행하여 본 발명에 의한 압축 포맷으로 압축파일을 형성한다. 데이터 압축 처리과정은 후술한다.
도 2는 본 발명에 따른 표준화된 첨부파일의 압축 포맷 구조를 나타내는 예시도이다.
우선, 파일확장자는 Attach라는 의미로써 *.att로 할 수 있다.
본 발명에 따른 압축파일의 압축 포맷 구조는 미리보기 데이터 flag(210), 미리보기 데이터(220), 압축파일 정보(230), 및 압축데이터(240)를 포함한다.미리보기 데이터(220)는 압축 시 원본 파일에서 추출한 텍스트 형식의 원본 파일의 정보와 이미지 형식의 데이터로 구성된다. 이미지 형식의 데이터는 원본 파일이 이미지 형식의 데이터를 포함하는 경우 원본 파일의 이미지 데이터 중에서 소정부분을 디스플레이 할 수 있도록 추출된 이미지 데이터이다. 미리보기 데이터 flag(210)는 상기 미리보기 데이터(220)에 이미지 데이터의 존재유무를 나타내는 것으로 텍스트 파일 정보만 나타내는 경우 0으로 셋팅된다. 따라서, 미리보기 데이터 flag(210)이 '0'으로 셋팅된 경우 수신 로컬 단말기는 압축된 파일의 파일정보에 대한 텍스트만 디스플레이한다.미리보기 데이터(220)를 이용하여 압축을 풀지 않고도 첨부파일의 이미지 및/또는 파일정보를 사용자가 인식할 수 있도록 미리보기 기능을 제공한다. 사용자는 이를 이용해서 압축을 풀지 않은 상태에서 윈도우 탐색기 등을 이용하여 파일 정보를 확인한 후 저장 또는 삭제를 결정할 수 있다.
삭제
이미지 데이터는 원본 파일에 이미지를 제공하는 경우에만 포함될 수 있다. 이미지 데이터가 포함되는 경우 윈도우즈에서 제공하는 미리보기 기능을 이용하여 대표 이미지가 디스플레이된다. 이미지 데이터와 별도로 텍스트 형식으로 파일정보가 미리보기 데이터(220)로 저장된다. 파일정보는 보통 원본 파일의 헤더 등에 저장되는 파일 정보 데이터가 이용된다. 이것은 이미지 데이터와 별도로 저장되는 것으로서 파일이름, 작성자, 시간, 응용프로그램 이름 등 간략한 파일정보가 나오게 된다.압축파일정보(230)는 압축시스템의 버전, 파일명, 압축을 풀 수 있는 이진 정보 데이터가 포함된다. 또한, 압축된 파일의 압축 풀기를 실행할 수 있는 구동 프로그램이 내장되어 압축 파일이 첨부된 메일이 수신 로컬 단말기에 다운된 후 압축파일을 클릭하면 self extract 방식으로 상기 구동 프로그램이 실행되어 압축된 파일의 압축을 해제하게 된다. 즉, 상기 압축 풀기 구동프로그램은 수신 로컬 단말기에 다운로드된 압축 파일을 클릭하면 실행되어 압축을 해제하여 원본 파일을 복호화하고, 압축파일은 삭제되도록 프로세스를 진행한다.따라서, 다운로드 후에 파일을 클릭하면 자동으로 압축풀기가 실행되며, 압축이 해제되면 복호화된 원본파일만 남기고 전송된 압축파일은 삭제한다. 즉 일단 파일을 클릭하여야 압축이 풀리므로 실제 데이터를 보기 위해서는 한번의 conversion 작업은 수행되어야 한다.
삭제
삭제
삭제
압축데이터(240)는 실제 압축된 데이터 부분이다. 도 3과 관련하여 후술할 알고리즘에 의하여 압축 부호화 되어있다.
첨부 파일 압축을 위한 상기 클라이언트 어플리케이션 프로그램은 파일 업로드 시에 자동으로 수행되며 기존에 사용하는 압축프로그램이 사용된 파일을 첨부할 경우에는 이를 자동으로 체크하여 압축과정을 수행하지 않도록 할 수 있다.
도 3은 본 발명에 따른 압축 부호화의 원리를 설명하기 위한 예시도이다.
압축의 대상은 컴퓨터에서 사용하는 프로그램 파일이다. 이것을 압축하기 위해서는 먼저 파일 구조를 정확히 알 필요가 있다. 컴퓨터는 16진수를 사용하여 데이터를 표시하게 된다. 즉 사용하는 숫자의 종류는 16진수이기 때문에 모두 256(2의8승)개가 사용되며, 이것을 이용하여 프로그램이나 데이터를 만들게 된다. 그렇다면 결국 256가지 숫자들이 반복되어서 사용된다는 뜻이 된다. 따라서 파일 구조가 아무리 복잡하다고 할지라도 256개 이상을 넘어갈 수가 없다. 256개로 숫자가 한정되어 있기 때문에 그 많은 데이터들 중에 반복되는 것들이 반드시 생길 수 밖에 없다. 이렇게 반복되는 숫자들을 하나로 묶어서 중복되는 것을 제거하는 방식이다.
본 발명에서 사용한 알고리즘은 호프만 코딩(Huffman Coding)을 응용하여 만든 알고리즘의 한 종류로 다음 4단계 과정을 거치게 된다.
① 압축할 파일을 전체적으로 스캐닝 하여 각 문자의 출현 빈도수를 알아낸다. (문자코드의 총 수는 256개이다.)
문 자 |
빈 도 |
A |
15 |
B |
10 |
C |
5 |
D |
35 |
E |
20 |
F |
25 |
표 1은 문자의 출현빈도수의 예를 나타낸 것이다.
② 가장 적게 나온 문자코드 중에서 가장 빈도수가 적은 문자 2개를 선택하여 연결시킨다.
이 연결고리를 이진트리(binary tree)라고 한다. 그리고 계속 그 다음의 문자와 이 묶인 문자를 다시 연결하여 새로운 이진 트리를 만들어 내고 계속적으로 이러한 과정을 반복하게 된다.
③ 마지막으로 파일의 문자를 대표값으로 변환시켜 압축 파일로 만든다. 노드를 만들어 나가게 되면, 결과적으로 모든 문자가 하나의 노드로 연결된다. 즉 모든 문자에 대한 트리 구조가 완성되고 나면, 각 문자들에 고유의 코드를 부여하는 것이다.
④ 파일을 푸는 경우에는 푸는 알고리즘에 위에서 언급한 트리에 관한 정보를 포함시켜, 프로그램 스스로 계산을 하면서 순차적으로 압축을 풀어 갈 수 있도록 고안한 방법을 사용하였다. 즉 파일을 읽어 들이면서 연속된 문자열에 대한 표를 만들어서 다음에 같은 문자열이 발견이 되면 이 표를 참조하는 방식이다. 압축이 시작되면 맨 먼저 기억 장소 내에 4096개의 문자열에 대한 표를 만들게 되며 각 기억 장소는 2바이트 선두 포인터(Prefix)와 1바이트의 후위 포인터(Suffix)로 이루어진다. 이 중에서 0-255번의 후위 바이트에는 표준 ASCII 코드가 지정되며, 선두 포인터는 모두 빈공간(NULL)으로 남게 되며 256번도 시스템의 특수한 용도로 사용하기 위해서 남겨둔다. 그 후에야 실제로 파일을 읽어 문자를 읽어 들여서 압축을 하게 된다.
파일에서 연속된 두 문자를 읽어들여서 이 문자열이 기억장소내의 표에 존재하는지 여부를 검사한 후에 만약 존재하지 않는다면 표의 257번 이상의 위치에 문자열들을 보관하고 출력 파일에는 그 문자의 아스키 코드값을 기록하게 된다. 문자열이 기억 장소내에 존재한다면 이 문자열의 주소(Address)를 선두 포인터에 기록하고 다음에 오는 문자열의 아스키 코드값을 후위 바이트에 보관하여 출력파일에는 그 문자열의 주소를 기록하게 된다. 이러한 방법으로 작성된 압축 파일을 풀때도 동일한 과정을 거쳐 기억장소내에 표를 만들면서 원래의 파일을 생성하게 된다.
도 4는 본 발명에 따른 첨부파일 전송방식을 나타내는 처리흐름도이다.
메일 발송자가 파일 첨부하기를 실행하면(s410), 본 발명에 의한 압축 시스템을 지원하는 클라이언트 어플리케이션 프로그램은 원본 파일로 부터 이미지 데이터를 포함하는 경우 소정의 대표 이미지 데이터와, 파일정보를 추출하고, 호프만 코딩(Huffman Coding)을 응용하여 만든 알고리즘과 같은 압축 부호화 알고리즘을 이용하여 원본 데이터를 압축 부호화하여, 본 발명에 의한 압축 포맷 구조에 따라, 미리보기 데이터 플래그(210), 미리보기 데이터(220), 압축파일정보(230), 및 압축데이터(240)로 이루어진 압축 포맷 구조로 첨부되는 원본파일을 압축한다.압축된 파일은 메일에 첨부되어 송신서버(110)로 업로드된다. 즉, 파일 업로드 프로그램이 자동으로 압축프로그램을 구동하며 송신서버(110)에는 압축된 데이터가 저장된다.
메일 발송자가 메일 보내기를 실행하면(s420), 네트워크상에서 전송용 압축파일이 교환된다. 이미 업로드시에 압축이 되어 있는 상태이다. 수신서버(120)에는 압축된 데이터가 저장된다.
메일 수신자가 메일을 열면 자동으로 첨부파일이 다운로드된다(s430). 수신서버(120)에서는 압축된 파일이 첨부된 메일과 함께 수신 로컬 단말기에 다운로드 해준다. 다운로드된 압축파일에는 미리보기 데이터(210)가 포함되어 있으므로 파일을 열기 전에 압축된 상태에서 파일정보 및 또는 소정의 대표 이미지를 위도우즈에서 파일 탐색기 등을 이용하여 사용자가 확인할 수 있게 된다.
메일 수신자가 상기 압축된 첨부파일을 열면(s440), 압축된 첨부파일의 압축파일정보(230)에 포함된 압축 풀기 구동 프로그램에 의해 자동으로 압축 풀기가 실행되어 복호화된 원본 파일만 두고 전송용 압축파일은 삭제된다.
이후 원본 파일이 수신 로컬 단말기에 저장된다(s450).
웹사이트나 기타 메일 프로그램 혹은 outlook 등에서 파일 첨부를 위한 업로드 프로그램이 실행될 때 위에서 제시한 클라이언트 어플리케이션 프로그램이 자동으로 수행되도록 한다.
송신서버(110)에는 압축된 데이터가 저장되게 되며, 전송할 때에도 원본 데이터가 아닌 압축된 데이터가 교환된다. 따라서 서버의 하드웨어 손실도 줄일 수 있으며, 네트워크 상에도 압축된 데이터가 전송되므로 네트워크 부하도 줄일 수 있다.
수신서버(120)도 압축된 데이터만 저장하고 있다. 사용자가 다운로드 할 때까지는 압축이 풀리지 않는다.
압축이 풀리는 시점은 수신자가 첨부데이터를 다운로드한 후에 파일을 클릭을 할 경우이다. 이때에 자동으로 압축풀기가 실행되며 원본데이터가 만들어지고 압축을 위한 데이터는 자동으로 삭제된다.
위와 같은 과정을 통해서 네트워크상에는 오직 압축된 데이터만 교환될 수 있도록 전송 프로세스를 가볍도록 개선할 수 있으며, 각 메일서버에는 압축된 데이터만 저장하므로 저장용량의 개선에도 효과적이다.
기존에 다른 방식으로 압축이 된 파일을 올릴 경우에는 업로드 시 체크하여 파일 압축 기능을 지닌 본 발명에 의한 클라이언트 어플리케이션 프로그램이 구동되지 않게 된다. 이 경우는 수신자는 해당되는 압축 프로그램을 이용하여 수동으로 압축을 풀어야 한다.
이와 같이, 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범주에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등한 것들에 의하여 정해져야 한다.