솔직 공개: 저희는 Iron Software의 개발자 관계 팀으로, 이 비교에 포함된 라이브러리 중 하나인 IronQR의 개발사입니다. 그렇다고 해서 저희는 정직한 평가가 마케팅 멘트보다 모든 사람에게 더 도움이 된다고 믿습니다. 저희는 방법론을 설명하고, 편견을 인정하며, 코드가 스스로 말하게 할 것입니다. 각 C# QR 코드 라이브러리를 동일한 평가 기준에 따라 실행했습니다. 즉, 간단한 QR 생성, 이미지에서 QR 읽기, 사용자 정의 깊이, 크로스 플랫폼 지원 및 라이선스 비용입니다. 아래 결과는 .NET 생태계에서 주목할 만한 QR 코드 라이브러리 11개에 대한 비교이며, 프로젝트에 맞는 라이브러리를 한 번에 선택할 수 있도록 돕기 위해 고안되었습니다. Visual Studio에서 저희가 다룰 라이브러리 중 하나인 을 사용한 QR 생성 3줄 코드는 다음과 같습니다. IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); IronQR QR 코드 생성 예시 출력 그러한 단순성은 기본입니다. 진짜 문제는 창고 스캐너에서 손상된 QR 코드를 읽거나, 브랜드 로고를 포함하거나, Linux 컨테이너를 대상으로 하거나, 일괄 작업에서 수천 개의 코드를 처리해야 할 때 발생하는 일입니다. 여기서 라이브러리가 달라지며, 이 비교가 가치를 발휘하는 부분입니다. TL;DR: 마스터 비교표 자세히 알아보기 전에 전체 그림을 보여드리겠습니다. 이 표는 .NET 프로젝트에 적합한 QR 라이브러리를 선택할 때 가장 중요한 치수를 나타냅니다. 라이브러리 생성 읽기 로고/스타일링 마이크로 QR 크로스 플랫폼 라이선스 NuGet 다운로드 IronQR ✅ ✅ ML 기반 ✅ 전체 ✅ + RMQR ✅ Win/Mac/Linux/모바일 상업용 (₩990,000+) 약 56K QRCoder ✅ ❌ ✅ 중간 ✅ ⚠️ 부분 (System.Drawing) MIT (무료) 약 6,800만 ZXing.Net ✅ ✅ ❌ 최소 ❌ ⚠️ 바인딩을 통해 Apache 2.0 (무료) 약 3,200만 Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (무료) 약 410만 SkiaSharp.QrCode ✅ ❌ ✅ 사용자 정의 모양 ❌ ✅ MIT (무료) 약 120만 Aspose.BarCode ✅ ✅ ✅ ✅ ✅ 상업용 (₩1,300,000+) 약 540만 Syncfusion Barcode ✅ ❌ ✅ 중간 ❌ ✅ (UI 컨트롤) 상업용 (커뮤니티 무료) 약 200만+ Spire.Barcode ✅ ✅ ✅ 로고 삽입 ❌ ⚠️ (System.Drawing) 상업용 (₩770,000+) 약 45만 IronBarcode ✅ ✅ ✅ ✅ 마이크로 QR ✅ Win/Mac/Linux 상업용 (₩990,000+) 약 120만 Dynamsoft Barcode Reader ❌ ✅ 고성능 해당 없음 ✅ ✅ 상업용 (₩1,600,000+/년) 약 25만 BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (무료) 약 450만 표 1: 주요 선택 기준에 따른 .NET QR 코드 라이브러리 11개에 대한 마스터 비교. 다운로드 수는 2026년 초 기준 근사치입니다. 이 기사의 나머지 부분에서는 각 행을 코드, 장단점 및 정직한 평가와 함께 자세히 살펴보겠습니다. 이 라이브러리들을 어떻게 평가했는가? 각 라이브러리를 7가지 기준으로 평가했으며, 이는 실제 선택 결정에 얼마나 자주 영향을 미치는지에 따라 가중치가 부여되었습니다. — 문자열, URL 및 구조화된 데이터(vCard, Wi-Fi 자격 증명)에서 QR 코드를 만들 수 있습니까? QR 생성 — 이미지, 스캔 또는 PDF에서 QR 코드를 디코딩할 수 있습니까? 손상되거나 회전된 코드는 어떻게 처리합니까? QR 읽기 — 로고 삽입, 색상 제어, 모듈 모양 스타일링, 오류 수정 구성 사용자 정의 — 표준 QR, 마이크로 QR, RMQR(사각형 마이크로 QR) QR 형식 지원 — System.Drawing 해킹 없이 Windows, Linux, macOS 및 Docker 컨테이너 내에서 깨끗하게 실행됩니까? 크로스 플랫폼 — 오픈 소스 대 상업용, 개발자당 가격, 제품군 할인 라이선스 및 비용 — API 참조 품질, 튜토리얼 가용성, 커뮤니티 규모, 활성 유지 관리 문서 및 생태계 모든 코드 예제는 을 대상으로 하며 최상위 문장을 사용합니다. .NET 10에서 관련 개선 사항이 도입되면 이를 기록하겠습니다. .NET 8 (LTS) QR 라이브러리를 선택해야 하는가? 결정 프레임워크 아래의 11개 라이브러리 프로필을 건너뛰어도 됩니다. 이미 제약 조건을 알고 있다면 다음은 빠른 경로입니다. → 또는 . 둘 다 MIT 라이선스입니다. QRCoder는 더 많은 렌더러와 페이로드 도우미를 제공합니다. Net.Codecrete는 더 가볍고 System.Drawing을 완전히 피합니다. "무료로 제약 조건 없이 QR 코드를 생성해야 합니다." QRCoder Net.Codecrete.QrCodeGenerator → (ML 기반 읽기, 손상된 코드에 대한 최고의 정확도), (무료, 검증됨, 가장 광범위한 형식 지원) 또는 (엔터프라이즈 제품군, 비쌈). "QR 코드를 생성하고 읽어야 합니다." IronQR ZXing.Net Aspose.BarCode → , 또는 . 이 세 가지 모두 크로스 플랫폼 배포를 중단시키는 System.Drawing 종속성을 피합니다. "Linux/Docker에 배포 중이며 System.Drawing을 사용할 수 없습니다." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → 는 원시 생성 벤치마크에서 선두를 달립니다. 읽기 성능의 경우 는 고처리량 스캐닝을 위해 제작되었습니다. "성능 및 메모리 사용량이 중요합니다." SkiaSharp.QrCode Dynamsoft Barcode Reader → 가지고 있는 것을 사용하십시오. 제품군에 이미 포함된 QR 라이브러리를 추가하는 것은 라이선스 또는 유지 관리 관점에서 거의 의미가 없습니다. "이미 Aspose/Syncfusion/Iron Software 제품군을 사용하고 있습니다." → 에는 MAUI 및 Blazor 통합 가이드가 명시되어 있습니다. Microsoft MVP Jeff Fritz는 IronQR을 Blazor와 함께 사용하여 QR 기반 디지털 명함 앱을 구축했습니다. 이는 정확히 이 패턴의 실제 사용 사례입니다. "Blazor/MAUI 모바일 앱을 QR 스캐닝으로 구축하고 있습니다." IronQR 비교된 11가지 .NET QR 코드 라이브러리 1. IronQR — 크로스 플랫폼 지원을 통한 ML 기반 QR 읽기 및 생성 IronQR은 Iron Software의 전용 QR 코드 라이브러리로, 더 광범위한 IronBarcode 제품과는 별개입니다. 이 라이브러리의 뛰어난 기능은 기계 학습 모델( 기반)으로, 불완전하거나 회전되거나 부분적으로 가려지거나 이상한 각도로 촬영된 QR 코드를 몇 줄의 코드로 감지하고 읽습니다. ONNX 또한 이미지, 사용자 정의 색상으로 QR 코드를 스타일링하고 QR 이미지를 다양한 출력 형식으로 저장하는 기능을 지원하며 쉽게 QR 코드 개체를 만들 수 있습니다. 생성: using IronQr; using IronSoftware.Drawing; // 로고가 포함된 스타일 QR 코드 생성 var options = new QrOptions(QrErrorCorrectionLevel.High, 20); QrCode qr = QrWriter.Write("https://example.com", options); var style = new QrStyleOptions { Dimensions = 300, Margins = 10, Color = new Color("#2E75B6"), Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("logo.png"), Width = 80, Height = 80 } }; AnyBitmap styledQr = qr.Save(style); styledQr.SaveAs("branded-qr.png"); IronQR 생성 QR 출력 읽기: using IronQr; using IronSoftware.Drawing; var reader = new QrReader(); var input = new QrImageInput(AnyBitmap.FromFile("scanned-qr.jpg")); IEnumerable<QrResult> results = reader.Read(input); foreach (var result in results) Console.WriteLine($"Value: {result.Value}"); IronQR 읽기 출력 ML 모델은 IronQR을 이 목록의 다른 모든 라이브러리와 차별화하는 요소입니다. 테스트에서 ZXing.Net 및 기본 이미지 처리 판독기에서 아무것도 반환되지 않은 경우에도 회의 배지 사진 및 각도에서 촬영한 스마트폰 스크린샷에서 QR 코드를 성공적으로 디코딩했습니다. 단점은 패키지 크기이며, ONNX 모델은 무게를 더합니다. 읽기만 필요하지 않다면 IronQR.Slim은 ML 모델 없이 제공되며 훨씬 더 가볍습니다. 장점: ML 기반 읽기는 손상되거나 회전되거나 부분적으로 가려진 QR 코드를 처리하고 정확도를 우선시합니다. QR 코드, 마이크로 QR 및 RMQR(사각형 마이크로 QR) 형식을 지원합니다. 전체 스타일링 API: 색상, 로고, 둥근 모듈, 여백 크로스 플랫폼: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS 비동기 읽기 지원(ReadAsync) 서버 워크로드용 PNG 이미지, JPG, 다중 페이지 TIFF 등 여러 형식으로 저장 사용자 친화적인 API로 사용하기 쉽습니다. 단점: 배포 시 개발자당 ₩990,000+의 상업용 라이선스 필요 ML 모델로 인해 전체 패키지가 오픈 소스 대안보다 무겁습니다. 는 성숙한 오픈 소스 옵션보다 낮고(2023년 출시된 최신 제품) NuGet 다운로드 수 생성 전용 프로젝트에는 ML 오버헤드가 필요하지 않을 수 있습니다. 생성 및 읽기 모두 필요한 프로젝트, 특히 스캔 조건이 완벽하지 않은 경우(모바일 앱, 창고 스캔, 컨퍼런스/이벤트 시나리오). 는 IronQR이 Blazor와 사용자 정의 브랜딩으로 실시간 QR 생성을 처리하는 것을 보여줍니다. 적합 대상: Jeff Fritz QR 명함 사례 연구 2. — 가장 인기 있는 오픈 소스 QR 생성기 QRCoder QRCoder 라이브러리는 NuGet에서 가장 많이 다운로드된 QR 코드 패키지로, 를 기록했습니다. 원래 2013년에 Raffael Herrmann이 만들었고 이제 하는 이 라이브러리는 QR 코드 (읽기 제외)에만 중점을 둔 순수 C# 구현입니다. 6,800만 건 이상의 다운로드 Shane32이 유지 관리 생성 using QRCoder; // QR 코드를 생성하여 PNG 바이트로 저장 using var qrGenerator = new QRCodeGenerator(); using var qrCodeData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.H); using var pngQrCode = new PngByteQRCode(qrCodeData); byte[] qrCodeImage = pngQrCode.GetGraphic(20); File.WriteAllBytes("qrcoder-output.png", qrCodeImage); QRCoder 출력 이미지 QRCoder는 PngByteQRCode(크로스 플랫폼, System.Drawing 종속성 없음), QRCode(System.Drawing 기반, Windows 전용), SvgQRCode, AsciiQRCode 등 여러 렌더러를 제공합니다. 또한 Wi-Fi 자격 증명, vCard 및 북마크와 같은 구조화된 데이터를 위한 페이로드 생성기를 포함하므로 문자열 형식을 수동으로 지정할 필요가 없습니다. 장점: MIT 라이선스, 상업용으로 완전 무료 6,800만 건 이상의 NuGet 다운로드, 엄청난 커뮤니티 채택 및 검증된 안정성 System.Drawing을 피하는 PngByteQRCode를 포함한 여러 렌더러 옵션 내장 페이로드 생성기(Wi-Fi, vCard, 지리적 위치, 캘린더 이벤트) 마이크로 QR 코드 지원 .NET Standard 대상에 대한 종속성 없음 단점: , QR 코드 이미지 파일을 읽거나 디코딩할 수 없습니다. 생성 전용 일부 렌더러(QRCode 등)는 System.Drawing.Common에 종속되며, 이는 .NET 6 이후 Windows 전용입니다. 내장 로고 삽입 기능 없음(이미지를 직접 합성해야 함) 고급 스타일링(모듈 모양, 그라데이션) 없음 QR 코드 생성만 필요한 프로젝트, 특히 예산이 0인 경우. Wi-Fi QR 코드 또는 vCard를 생성해야 하고 코드를 전혀 읽을 필요가 없다면, QRCoder는 대부분의 .NET 개발자에게 실용적인 기본 선택입니다. 적합 대상: 3. — 바코드 라이브러리의 스위스 군용 칼 ZXing.Net ("Zebra Crossing")은 원래 Java ZXing 라이브러리의 입니다. QR 코드, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 등 15개 이상의 바코드 형식을 지원하는 범용 바코드 라이브러리입니다. QR 지원은 더 광범위한 기능의 하위 집합입니다. ZXing.Net .NET 포트 using ZXing; using ZXing.Common; using ZXing.QrCode; // QR 코드 생성 var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // QR 코드 읽기는 바인딩 패키지(예: ZXing.Net.Bindings.SkiaSharp)가 필요합니다. ZXing.Net 출력 ZXing.Net은 렌더링 및 읽기를 위해 플랫폼별 바인딩 패키지가 필요합니다. 핵심 패키지는 인코딩/디코딩 로직을 제공합니다. 대상 플랫폼에 따라 ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp 또는 ZXing.Net.Bindings.ImageSharp를 추가합니다. 이 모듈식 접근 방식은 유연하지만 통합 복잡성이 추가됩니다. 장점: Apache 2.0 라이선스, 상업용으로 무료 단일 라이브러리에서 생성 및 읽기 모두 가능 QR 코드 외 15개 이상의 바코드 형식 지원 , 검증됨, 광범위한 커뮤니티 지식 3,200만 건 이상의 NuGet 다운로드 SkiaSharp, ImageSharp, OpenCV 등 바인딩 제공 단점: QR 전용 기능은 기본적이며, 로고 삽입이나 고급 스타일링 기능 없음 ML 기반 솔루션에 비해 손상되거나 회전된 QR 코드에 대한 읽기 정확도가 중간 수준 바인딩 패키지로 인해 종속성 관리 복잡성 증가 API 디자인이 최신 .NET 라이브러리에 비해 오래됨 활성 유지 관리 속도가 느려짐(커뮤니티 유지 관리) QR 코드 및 기존 바코드 지원(소매, 물류)이 필요하고 무료이며 검증된 옵션을 원하는 프로젝트. 스타일링이나 ML 기반 읽기와 같은 QR 전용 기능보다 광범위한 바코드 형식 지원이 우선이라면, 전용 QR 라이브러리가 더 나은 서비스를 제공할 것입니다. 적합 대상: 4. Net.Codecrete.QrCodeGenerator — 가볍고 표준 중심 Net.Codecrete.QrCodeGenerator는 Manuel Bleichenbacher의 깔끔하고 최소한의 QR 코드 생성 라이브러리입니다. 이는 Project Nayuki의 Java QR 코드 생성기를 .NET으로 번역한 것으로, 정확성과 표준 준수( )에 중점을 둡니다. ISO/IEC 18004 using Net.Codecrete.QrCodeGenerator; var qr = QrCode.EncodeText("https://example.com", QrCode.Ecc.Medium); string svg = qr.ToSvgString(4); File.WriteAllText("output.svg", svg); Net.Codecrete.QrCodeGenerator를 사용한 예시 출력 약 를 기록하며, 집중된 라이브러리로 잘 채택되었습니다. 이 라이브러리의 뛰어난 점은 System.Drawing에 대한 종속성이 전혀 없다는 것입니다. SVG, XAML 경로 데이터, PNG 및 BMP를 네이티브로 생성합니다. 이는 크로스 플랫폼 .NET 프로젝트 및 Docker에서 실행되는 ASP.NET Core 서비스에 탁월한 선택입니다. 410만 건의 NuGet 다운로드 장점: MIT 라이선스, 완전 무료 System.Drawing 종속성 없음, 진정한 크로스 플랫폼 작은 설치 공간, 빠른 생성 SVG 및 XAML 출력 내장(WPF, WinUI 및 웹 시나리오에 유용) 모든 40개 QR 버전 및 모든 4개 오류 수정 수준의 정확한 구현 광범위한 예제 프로젝트(WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) 단점: , QR 읽기 기능 없음 생성 전용 로고 삽입 또는 고급 스타일링 기능 없음 QRCoder의 페이로드 생성기보다 사용자 정의 기능 제한 QRCoder 또는 ZXing.Net에 비해 커뮤니티 콘텐츠 및 튜토리얼이 적음 SVG 출력과 System.Drawing 오버헤드 없는 작고 정확한 크로스 플랫폼 QR 생성기가 필요한 개발자. 배포 대상이 Linux 또는 Docker이고 생성만 필요한 경우 이 라이브러리를 심각하게 고려할 가치가 있습니다. 적합 대상: 5. SkiaSharp.QrCode — 고성능 크로스 플랫폼 생성 의 SkiaSharp.QrCode는 SkiaSharp 기반의 성능 중심 QR 생성 라이브러리입니다. System.Drawing의 GDI+ 제한을 피하면서 SkiaSharp의 하드웨어 가속을 통해 네이티브 수준의 성능을 제공하기 위해 특별히 제작되었습니다. guitarrapc using SkiaSharp.QrCode.Image; // 한 줄로 생성 및 저장 QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // 또는 사용자 정의 설정으로 var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); SkiaSharp.QrCode 한 줄 출력 프로젝트 저장소의 벤치마크 결과에 따르면 SkiaSharp.QrCode는 생성 작업에서 QRCoder 및 기타 .NET QR 라이브러리보다 속도와 메모리 할당 측면에서 성능이 뛰어납니다. 중간 버퍼 할당을 피하고 SkiaSharp 캔버스에 직접 복사 없이 렌더링됩니다. 장점: MIT 라이선스, 상업용으로 무료 최고 수준의 생성 성능(벤치마킹됨) 최소 메모리 할당, 고처리량 시나리오를 위한 낮은 GC 압력 NativeAOT 준비(.NET Native AOT 컴파일 지원) 사용자 정의 모듈 모양(원, 둥근 사각형) 스타일 QR 코드용 Windows, Linux, macOS, iOS, Android, WebAssembly에서 작동 단점: , QR 읽기 기능 없음 생성 전용 SkiaSharp 네이티브 종속성 필요(플랫폼별 NuGet 패키지) QRCoder 또는 ZXing.Net보다 작은 커뮤니티 페이로드 생성기(Wi-Fi, vCard) 없음, 해당 문자열은 직접 포맷해야 함 UTF-8 전용, ISO-8859-2 또는 Shift JIS 인코딩 없음 성능 및 메모리 효율성이 가장 중요한 대규모 QR 코드 생성(예: 티켓 시스템, 일괄 레이블 생성)을 위한 고처리량 서버 애플리케이션. 또한 프로젝트에서 이미 SkiaSharp를 사용하는 경우 이상적입니다. 적합 대상: 6. Aspose.BarCode — QR 코드 생성을 위한 엔터프라이즈급 바코드 제품군 은 QR 코드, 마이크로 QR, Data Matrix, PDF 417 및 모든 일반적인 1D 형식을 포함하여 80개 이상의 바코드 기호를 지원하는 포괄적인 상업용 라이브러리입니다. 이 라이브러리는 문서 처리에 사용되는 광범위한 Aspose 생태계의 일부입니다. Aspose.BarCode for .NET using Aspose.BarCode.Generation; using Aspose.BarCode.BarCodeRecognition; // 생성 var generator = new BarcodeGenerator(EncodeTypes.QR, "https://example.com"); generator.Parameters.Barcode.XDimension.Pixels = 4; generator.Save("aspose-qr.png", BarCodeImageFormat.Png); // 읽기 using var reader = new BarCodeReader("aspose-qr.png", DecodeType.QR); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"Type: {result.CodeTypeName}, Text: {result.CodeText}"); Aspose.BarCode QR 출력