압축 알고리즘 선택 기준 : http://bspfp.pe.kr/192 참조


Snappy 개요 : http://www.mimul.com/pebble/default/2012/04/10/1334044735206.html 참조


Snappy 사용법


1. Nuget에서 Snappy를 검색하여 Snappy for .NET을 설치한다.

2. using Snappy;


 
//압축된 내용
byte[] byteCompressed = null;
//압축 해제 된 내용
byte[] byteDeCompressed = null;

Stream stream = null;

ulong ulJsonLength = 0;

byteCompressed = File.ReadAllBytes("FilePath");

byteDeCompressed = SnappyCodec.Uncompress(byteCompressed);

stream = new MemoryStream(byteDeCompressed);

// stream에 담아 지지고볶고 사용 하면 된다.
// ** 해당 내용은 압축 해제를 다룬 내용.
// ** 압축은 위의 소스를 조금만 수정하여 사용하면 될듯 하다.


* Snappy 함수들


함수가 많지 않다. 압축과 압축 해제는 Compress, Uncompress 함수를 사용하면 된다. 단순히 byte[] 만 넣어주면 알아서 압축과 해제를 해주니 사용하기는 간단하다.

'Programming > C#' 카테고리의 다른 글

[C#] 네이버 자동 로그인 / 카페 글쓰기 API  (9) 2019.11.01
[C#]ini file 사용법 & 소스 공유  (3) 2017.01.03
[C#]Log4Net 사용법  (2) 2017.01.03
[C#]Snappy 사용법  (5) 2016.12.30
[C#]DataTable Sorting 간단 사용법  (0) 2016.12.30
  1. 2018.01.12 16:50

    비밀댓글입니다

  2. 보초섭 2018.01.12 16:52

    안녕하세요?
    블로그에 올리신 Google Snappy로 데이터 압축하기를 보고
    C#으로 코드를 작성해 보았는데
    너무 간단한 것 같아 맞는지 해깔려 이렇게 댓글 답니다.
    혹시 고칠 점이 있는지 봐주시면 감사하겠습니다.


    using Snappy;

    public class Snappy_ex : MonoSingleTon<Snappy_ex>
    {
    //Google Snappy 패킷 압축, 해제
    public byte[] DataCompressed = null;
    public byte[] DataUnCompressed = null;
    MemoryStream stream = null;

    //패킷 압축
    public void Compression(byte[] data)
    {
    DataCompressed = SnappyCodec.Compress(data);
    }

    //패킷 압축 해제
    public void UnCompressed(byte[] data)
    {
    data = DataCompressed;
    DataUnCompressed = SnappyCodec.Uncompress(data);
    stream = new MemoryStream(DataUnCompressed);
    }
    }

  3. 라이브러리가 생각보다 간단해서 저도 당황햇엇던 기억이 나네요. 딱히 고칠 점이 잇는지는 모르겟습니다. 워낙 간단해서 그대로 쓰셔도 무방할 것 같습니다. 다만 compression 함수에 memorystream을 안쓴건 일부러 그러신거겟져

    • 보초섭 2018.01.12 21:29

      아 그럼 이런식으로 해야하는 건가요?

      //패킷 압축
      public void Compression(byte[] data)
      {
      DataCompressed = SnappyCodec.Compress(data);

      stream = new MemoryStream(DataCompressed);

      }

  4. 보통은 메모리스트림이나 파일스트림에 넣어서 사용하죠 물론 목적에 따라 달라지겟지만요

+ Recent posts