denny 2025. 4. 2. 11:34

유니티에서 LZ4 압축을 사용하면서 Android, iOS, Windows에서 모두 잘 작동하는 라이브러리를 찾고 있다면, 아래 라이브러리를 추천할게.


🔥 추천 LZ4 라이브러리 (Unity 지원)


2️⃣ K4os.Compression.LZ4 (NuGet)

  • Windows / Android / iOS 완벽 지원
  • 네이티브 LZ4 성능에 가깝게 최적화
  • 네트워크 패킷 압축, 데이터 저장 모두 사용 가능

사용 예시 (데이터 압축/해제)

using System;
using K4os.Compression.LZ4;

class Program
{
    static void Main()
    {
        byte[] originalData = System.Text.Encoding.UTF8.GetBytes("Hello, LZ4 in Unity!");

        // 압축
        byte[] compressed = LZ4Codec.Encode(originalData, 0, originalData.Length);
        Console.WriteLine($"Compressed Size: {compressed.Length}");

        // 해제
        byte[] decompressed = LZ4Codec.Decode(compressed, 0, compressed.Length, originalData.Length);
        Console.WriteLine($"Decompressed: {System.Text.Encoding.UTF8.GetString(decompressed)}");
    }
}

장점: 네트워크 패킷 압축 지원, 성능 최적화
단점: NuGet 패키지 설치 필요


3️⃣ LZ4Sharp (GitHub)

  • Android, iOS, Windows에서 문제 없이 동작
  • IL2CPP 빌드 환경에서도 안정적으로 실행됨
  • 단순한 API로 빠른 압축 적용 가능

사용 예시 (압축/해제)

using System;
using System.Text;
using LZ4Sharp;

class Program
{
    static void Main()
    {
        byte[] original = Encoding.UTF8.GetBytes("Unity LZ4Sharp Test");
        ILZ4Compressor compressor = LZ4SharpFactory.CreateNewCompressor();
        ILZ4Decompressor decompressor = LZ4SharpFactory.CreateNewDecompressor();

        // 압축
        byte[] compressed = compressor.Compress(original);
        Console.WriteLine($"Compressed Size: {compressed.Length}");

        // 해제
        byte[] decompressed = decompressor.Decompress(compressed);
        Console.WriteLine($"Decompressed: {Encoding.UTF8.GetString(decompressed)}");
    }
}

장점: 유니티 IL2CPP 지원, 네트워크 및 파일 압축 가능
단점: 다른 라이브러리보다 업데이트가 적음


🛠 추천 선택 기준

라이브러리 네트워크 패킷 압축 파일 압축 성능 최적화 Android/iOS 지원 IL2CPP 지원

K4os.Compression.LZ4 ✅ O ✅ O 🚀🚀 매우 빠름 ✅ 지원 ✅ 지원
LZ4Sharp ✅ O ✅ O 🚀 보통 ✅ 지원 ✅ 지원

🎯 결론: 어떤 걸 선택해야 할까?

  1. 네트워크 패킷 압축을 최적화하려면?K4os.Compression.LZ4 추천
  2. 파일 압축과 패킷 압축을 함께 쓰려면?LZ4Sharp 가능

네가 유니티에서 어떤 용도로 LZ4를 사용하려고 하는지 말해주면 더 구체적인 추천을 해줄 수 있어! 😊

  • 네트워크 패킷 압축?
  • 게임 데이터 파일 압축?
  • 리소스 로딩 최적화?