푸터 콘텐츠로 바로가기
다른 구성 요소와 비교

스캔봇 SDK와 IronBarcode: C# 바코드 라이브러리 비교

Scanbot SDK는 기기 카메라를 사용하여 전체 화면 바코드 스캔 화면을 엽니다. BarcodeScanner.Read(imagePath) 방식이 없습니다. 스캐너는 카메라 사용자 인터페이스입니다. 서버에 저장된 PDF 송장에 바코드가 포함되어 있는 경우 Scanbot은 도움을 드릴 수 없습니다. 이는 비판이 아니라 시스템 구조에 대한 설명입니다. Scanbot SDK는 네이티브 iOS 및 Android 스캔 API를 세련된 뷰파인더 구성 요소로 래핑하는 MAUI 카메라 제어 도구입니다. ScanbotBarcodeSDK.BarcodeScanner.Open(configuration)은 전체 화면 카메라 환경으로 제어권을 넘겨주고, 사용자가 디바이스로 바코드를 가리키면 SDK가 라이브 비디오 피드에서 이를 감지하여 앱으로 결과를 반환합니다. 비교가 중요한 이유는 NuGet 패키지 이름(ScanbotBarcodeSDK.MAUI)과 제품 카테고리인 '바코드 SDK'를 통해 개발자가 서버 측 문서 처리, WPF 데스크톱 앱 또는 ASP.NET CoreAPI에 대해 평가할 수 있기 때문입니다. 이 문서에서는 두 도구의 아키텍처적 차이점, 각 도구가 실제로 수행하는 작업, Scanbot이 구조적으로 처리할 수 없는 시나리오를 IronBarcode가 처리하는 영역에 대해 설명합니다.

스캔봇 SDK 이해하기

Scanbot SDK는 Scanbot GmbH에서 개발한 상용 모바일 바코드 스캐닝 SDK입니다. .NET용 번역은 ScanbotBarcodeSDK.MAUI, net8.0-androidnet8.0-ios을 대상으로 하는 패키지입니다. SDK에는 .NET MAUI Application 프로젝트와 <UseMaui>true</UseMaui> 및 모바일 타겟이 TargetFrameworks에 포함되어 있어야 합니다. 이 문제는 콘솔 앱, 클래스 라이브러리, ASP.NET Core프로젝트 또는 Windows를 대상으로 하는 MAUI 앱에서는 해결되지 않습니다.

Scanbot은 카메라를 최우선으로 고려하여 설계된 제품입니다. 전체 API 표면은 실시간 뷰파인더 환경을 중심으로 구성되어 있습니다. 구성 객체는 카메라 UI의 모양, 실시간 비디오 파이프라인이 감지하는 형식, 사용자에게 피드백을 전달하는 방식을 제어합니다. 이 라이브러리는 iOS 및 Android 기반 소비자 및 Enterprise 모바일 앱을 위한 완성도 높은 스캔 구성 요소를 제공합니다.

  • 주요 플랫폼 대상: .NET MAUI 프레임워크를 통한 iOS 및 Android 모바일 기기; Windows 및 macOS MAUI대상은 지원되지 않습니다.
  • 입력 모델: 실시간 장치 카메라 영상만 사용 — 파일 경로, 스트림 또는 바이트 배열 오버로드는 존재하지 않습니다.
  • API 디자인: BarcodeScanner.Open(configuration)는 전체 화면 카메라 환경으로 제어권을 넘기고 사용자가 스캔을 확인하거나 취소할 때 OperationResult를 반환합니다
  • 카메라 UI 기능: 스캔 영역 오버레이가 있는 실시간 뷰파인더, 플래시 제어, 화면 비율 설정, 오디오 및 햅틱 피드백, 화면 방향 고정
  • 지원 형식: 20개 이상의 1차원 형식(Code 128, EAN-13, UPC 등) 및 여러 2차원 형식(QR, DataMatrix, PDF417, Aztec)
  • 파일 처리 기능 없음: 저장된 이미지 파일, 스트림 또는 PDF 문서에서 바코드를 읽는 메커니즘이 없습니다.
  • 바코드 생성 없음: SDK는 바코드를 읽습니다. 생산하지 않습니다
  • 라이선스 모델: 연간 정액제; 스캔 볼륨에 관계없이 연간 비용이 고정되어 있습니다
  • 프로젝트 유형 제한: 콘솔, 클래스 라이브러리, ASP.NET Core, WPF, WinForms,Azure Functions또는 Docker 호스팅 프로젝트에서는 컴파일되지 않습니다.

카메라 파이프라인 아키텍처

Scanbot의 아키텍처는 앱 시작 시 초기화 후 카메라 기반 스캔 호출이 필요합니다. 파일 경로 또는 스트림을 허용하는 BarcodeScanner.Open()의 오버로드가 없어야 합니다; 전체 작업이 카메라 기반이므로 메서드 서명에는 BarcodeScannerConfiguration가 필요합니다:

// In MauiProgram.cs or App.xaml.cs — initialization required before any scan
ScanbotSDK.Initialize(new ScanbotSDKConfiguration
{
    LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
    EnableLogging = false
});

// Configure accepted formats and camera appearance
var configuration = new BarcodeScannerConfiguration();
configuration.BarcodeFormats = new[]
{
    BarcodeFormat.Code128,
    BarcodeFormat.QrCode,
    BarcodeFormat.Ean13
};

// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotBarcodeSDK.BarcodeScanner.Open(configuration);

if (result.Status == OperationResult.Ok)
{
    foreach (var barcode in result.Barcodes)
        Console.WriteLine($"{barcode.Format}: {barcode.Text}");
}
// In MauiProgram.cs or App.xaml.cs — initialization required before any scan
ScanbotSDK.Initialize(new ScanbotSDKConfiguration
{
    LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
    EnableLogging = false
});

// Configure accepted formats and camera appearance
var configuration = new BarcodeScannerConfiguration();
configuration.BarcodeFormats = new[]
{
    BarcodeFormat.Code128,
    BarcodeFormat.QrCode,
    BarcodeFormat.Ean13
};

// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotBarcodeSDK.BarcodeScanner.Open(configuration);

if (result.Status == OperationResult.Ok)
{
    foreach (var barcode in result.Barcodes)
        Console.WriteLine($"{barcode.Format}: {barcode.Text}");
}
Imports System

' In MauiProgram.vb or App.xaml.vb — initialization required before any scan
ScanbotSDK.Initialize(New ScanbotSDKConfiguration With {
    .LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
    .EnableLogging = False
})

' Configure accepted formats and camera appearance
Dim configuration As New BarcodeScannerConfiguration()
configuration.BarcodeFormats = New BarcodeFormat() {
    BarcodeFormat.Code128,
    BarcodeFormat.QrCode,
    BarcodeFormat.Ean13
}

' Open full-screen camera scanner — UI takes over the entire screen
Dim result = Await ScanbotBarcodeSDK.BarcodeScanner.Open(configuration)

If result.Status = OperationResult.Ok Then
    For Each barcode In result.Barcodes
        Console.WriteLine($"{barcode.Format}: {barcode.Text}")
    Next
End If
$vbLabelText   $csharpLabel

SDK는 실시간 비디오 프레임을 처리하고, 뷰파인더에서 감지된 바코드를 강조 표시하며, 바코드가 확인되거나 사용자가 취소하면 응답을 반환합니다. 구성 객체는 카메라 UI의 모양을 제어하며, 처리 동작은 제어하지 않습니다. 이것이 완전한 모델입니다.

IronBarcode이해하기

IronBarcode 는 Iron Software 에서 개발한 상용 .NET 바코드 읽기 및 생성 라이브러리입니다. 이 프로그램은 파일 처리 모델을 기반으로 작동하며, 입력 소스는 파일 경로, 스트림, 바이트 배열 및 PDF 문서입니다. 카메라 사용자 인터페이스가 없으며 모바일 하드웨어도 필요하지 않습니다. 이 라이브러리는 모든 .NET 프로젝트 유형에서 실행됩니다.

IronBarcode의 정적 BarcodeReader.Read() 메서드는 소스 생성 방식에 관계없이 호출 코드가 제공하는 모든 소스를 허용합니다. HTTP를 통해 업로드된 파일, 디스크에 저장된 PDF 파일, 블롭 스토리지에 저장된 이미지, 또는 base64 문자열에서 디코딩된 바이트 배열은 모두 동일한 입력입니다. 이 라이브러리는 디코딩된 결과 모음을 반환하며, 각 결과에는 바코드 값, 형식 및 해당되는 경우 페이지 번호가 포함됩니다.

  • 입력 소스: 파일 경로, 스트림, 바이트 배열 및 PDF 문서(이미지 추출이 아닌 PDF 구문 분석 기능 포함) 지원되는 프로젝트 유형: 콘솔 애플리케이션, ASP.NET Core, WPF, WinForms, Blazor Server, Azure Functions, AWS Lambda, Docker, Windows 서비스, .NET MAUI (Windows 및 macOS를 포함한 모든 대상), .NET Framework 4.6.2 이상
  • 바코드 생성: 이미지 형태로 또는 HTML 및 PDF 문서에 삽입된 바코드를 생성합니다.
  • 지원 포맷: 30개 이상의 1차원 포맷과 QR, DataMatrix, PDF417, Aztec, MaxiCode를 포함한 5개의 2차원 포맷을 지원합니다.
  • 판독 기능 향상: 머신러닝 기반 오류 수정 및 손상된 바코드 복구 기능을 통해 실제 이미지 환경에서도 뛰어난 판독 성능을 제공합니다.
  • 구성 개체: BarcodeReaderOptions 카메라 UI 모양이 아닌 처리 동작(속도, 다중 바코드 감지)을 제어합니다
  • 라이선스 모델: 4단계(Lite $749, Plus $1,499, Professional $2,999, Unlimited $5,999)로 제공되는 일회성 영구 구매 방식 연간 갱신 필요 없음

기능 비교

다음 표는 Scanbot SDK와IronBarcode의 근본적인 차이점을 보여줍니다.

기능 스캔봇 SDK IronBarcode
주요 사용 사례 모바일 기기에서 실시간 카메라 바코드 스캔 파일 및 문서 바코드 판독 및 생성
입력 모델 기기 카메라 영상만 파일 경로, 스트림, 바이트 배열, PDF
플랫폼 지원 iOS 및 안드로이드 마우이 전용 모든 .NET 플랫폼 및 프로젝트 유형
바코드 생성 아니요
PDF 바코드 추출 아니요
라이센스 모델 연간 정액 요금 일회성 영구
라이브 카메라 UI 예, 광택 처리된 뷰파인더 부품입니다. 아니요 (사진 촬영에는 MediaPicker를 사용하세요)

상세 기능 비교

기능 스캔봇 SDK IronBarcode
독서
파일 경로에서 입력 아니요
스트림에서 입력 아니요
바이트 배열에서 입력 아니요
PDF 바코드 추출 아니요
라이브 카메라 뷰파인더 아니요
실시간 프레임 스캔 아니요
자동 형식 감지
머신러닝 오류 수정 아니요
손상된 바코드 복구 아니요
1D 포맷 개수 20세 이상 30세 이상
2D 포맷 개수 QR, 데이터매트릭스, PDF417, 아즈텍 QR, 데이터매트릭스, PDF417, 아즈텍, 맥시코드
세대
바코드 생성 아니요
플랫폼
iOS 마우이
안드로이드 마우이
윈도우 마우이 아니요
macOS MAUI 아니요
콘솔 애플리케이션 아니요
ASP.NET Core 아니요
Blazor 서버 아니요
WPF 애플리케이션 아니요
WinForms 애플리케이션 아니요
Azure Functions 아니요
AWS 람다 아니요
도커/리눅스 아니요
윈도우 서비스 아니요
.NET Framework 4.6.2 이상 아니요
라이선스
라이선스 모델 연간 정액 요금 일회성 영구
게시된 가격 영업 연락 예 (749달러~5,999달러)
대량 구매 가격 해당 없음 (정액 요금) 해당 없음 (영구 등급)

아키텍처: 카메라 파이프라인 vs 파일 처리

Scanbot SDK와IronBarcode의 가장 중요한 차이점은 기능상의 차이가 아니라, 각 라이브러리가 입력을 개념화하는 방식의 근본적인 아키텍처 차이입니다.

스캔봇 SDK 접근 방식

Scanbot의 아키텍처는 네이티브 카메라 파이프라인을 중심으로 구축되었습니다. 코드-51881--@@이 호출되면 라이브러리는 iOS 및 Android에서 디바이스의 기본 카메라 API로 구동되는 전체 화면 카메라 환경으로 제어권을 넘깁니다. 이 라이브러리는 실시간 비디오 프레임을 지속적으로 처리하고, 각 프레임에 바코드 감지를 적용하며, 바코드가 확인되거나 사용자가 스캐너를 닫으면 호출하는 애플리케이션으로 제어권을 반환합니다. 스캔봇 모델에는 정지 이미지라는 개념이 없습니다. 입력은 항상 장치 카메라에서 전송되는 실시간 비디오 프레임 스트림입니다.

이 디자인은 다음과 같은 세련된 스캔 경험을 제공합니다. 뷰파인더에서 실시간으로 강조 표시되는 바코드, 화면 비율을 조절할 수 있는 스캔 영역 설정, 손전등 켜고 끄기, 오디오 및 햅틱 피드백, 그리고 방향 고정 기능. 이는 스캔봇이 모바일 카메라 사용 사례를 위해 투자한 UI 기능입니다. 단점은 라이브러리가 카메라 하드웨어 및 이를 구동하는 모바일 운영 체제와 분리될 수 없다는 것입니다.

IronBarcode접근법

IronBarcode 바코드가 포함된 이미지의 모든 바이너리 표현을 허용하며, 이미지를 얻은 방식에 관계없이 동일한 정적 메서드를 통해 디코딩된 결과를 반환합니다.

// Install: dotnet add package IronBarcode
IronBarCode.License.LicenseKey = "YOUR-KEY";

// From a file path — works in any project type
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
    Console.WriteLine($"{result.Value} ({result.Format})");

// From a PDF — reads all barcodes on all pages
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var result in pdfResults)
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");

// From a stream — useful for HTTP file uploads
using var stream = File.OpenRead("document.pdf");
var streamResults = BarcodeReader.Read(stream);

// With processing options
var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced };
var configuredResults = BarcodeReader.Read("image.png", options);
// Install: dotnet add package IronBarcode
IronBarCode.License.LicenseKey = "YOUR-KEY";

// From a file path — works in any project type
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
    Console.WriteLine($"{result.Value} ({result.Format})");

// From a PDF — reads all barcodes on all pages
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var result in pdfResults)
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");

// From a stream — useful for HTTP file uploads
using var stream = File.OpenRead("document.pdf");
var streamResults = BarcodeReader.Read(stream);

// With processing options
var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced };
var configuredResults = BarcodeReader.Read("image.png", options);
Imports IronBarCode
Imports System.IO

' Install: dotnet add package IronBarcode
License.LicenseKey = "YOUR-KEY"

' From a file path — works in any project type
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
    Console.WriteLine($"{result.Value} ({result.Format})")
Next

' From a PDF — reads all barcodes on all pages
Dim pdfResults = BarcodeReader.Read("invoice.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next

' From a stream — useful for HTTP file uploads
Using stream = File.OpenRead("document.pdf")
    Dim streamResults = BarcodeReader.Read(stream)
End Using

' With processing options
Dim options = New BarcodeReaderOptions With {.Speed = ReadingSpeed.Balanced}
Dim configuredResults = BarcodeReader.Read("image.png", options)
$vbLabelText   $csharpLabel

동일한 호출이 콘솔 앱, ASP.NET Core컨트롤러, Azure Function, WPF 폼 또는 MAUI 페이지에서 실행됩니다.IronBarcodePDF에서 바코드를 추출하는 이미지 방식이 아니라, PDF 구조를 직접 분석하여 각 페이지에서 바코드를 찾아내는 방식으로 PDF에서 바코드를 읽습니다 .

플랫폼 및 배포 범위

Scanbot SDK의 플랫폼 범위는 해당 NuGet 패키지가 지원하는 대상에 의해 고정됩니다. IronBarcode의 범위는 .NET 런타임 자체와 일치합니다.

스캔봇 SDK 접근 방식

Scanbot의 패키지는 net8.0-androidnet8.0-ios를 대상으로 합니다. 이 두 가지 대상만 선언하는 .NET MAUI Application 프로젝트는 성공적으로 빌드됩니다. 그러나 @@--코드-51885--@@ 또는 @@--코드-51886--@@이 @@--코드-51887--@@에 추가되면 해당 대상에서 Scanbot 패키지 참조를 확인하지 못합니다. 이는 구성 문제가 아닙니다. 해당 패키지는 Windows 또는 macOS용 어셈블리를 제공하지 않습니다. 해당 오류는 NuGet 설치 시점이 아니라 데스크톱 대상에 대한 첫 번째 빌드 시도 중에 발생합니다.

이러한 제약 조건으로 인해 Scanbot은 데스크톱 플랫폼을 포함하는 다중 대상 MAUI 프로젝트와 구조적으로 호환되지 않으며, 프레임워크 버전에 관계없이 MAUI 서버 또는 데스크톱 프로젝트 유형이 아닌 다른 유형의 프로젝트에서는 사용할 수 없습니다.

IronBarcode접근법

IronBarcode 는 모든 .NET 프로젝트 유형 및 대상 프레임워크에서 올바르게 작동하는 단일 NuGet 패키지로 배포됩니다.

// Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package IronBarcode
// Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package IronBarcode
$vbLabelText   $csharpLabel

Windows 또는 macOS 데스크톱을 대상으로 하는 MAUI 애플리케이션 의 경우,IronBarcode플랫폼 조건부 구성 없이 단일 패키지 참조를 통해 네 가지 MAUI 대상을 모두 지원합니다. IOS, Android, Windows를 대상으로 하는 MAUI 프로젝트를 구축하는 팀은 IronBarcode를 한 번 추가하면 수정 없이 세 플랫폼 모두에서 BarcodeReader.Read()를 사용할 수 있습니다.

MAUI 통합 패턴

두 라이브러리 모두 .NET MAUI 프로젝트에서 사용할 수 있지만, 각 라이브러리의 입력 모델에 따라 통합 패턴이 크게 다릅니다.

스캔봇 SDK 접근 방식

iOS 및 Android를 대상으로 하는 MAUI 프로젝트에서 Scanbot은 앱의 탐색 흐름에 내장된 네이티브 카메라 뷰파인더를 제공합니다. BarcodeScanner.Open() 호출은 전체 화면 스캐너를 표시하며, 사용자가 스캔을 완료하거나 취소하면 호출 페이지로 결과가 반환됩니다. 이러한 통합을 통해 모바일 애플리케이션은 플랫폼에 자연스럽게 어울리는 특수 스캔 UI를 제공합니다.

프로젝트 규모가 커질수록 한계가 드러납니다. MAUI 프로젝트에 Windows 또는 macOS 대상을 추가하면 해당 플랫폼에서의 빌드가 실패합니다. 바코드 처리가 필요한 서버 측 구성 요소를 추가하려면 별도의 라이브러리가 필요합니다. Scanbot 종속성은 iOS 및 Android 외의 다른 플랫폼에서는 프로젝트를 따라갈 수 없습니다.

IronBarcode접근법

MAUI 프로젝트에서 IronBarcode는 플랫폼의 MediaPicker와 함께 작동하여 사진을 캡처하고 결과 이미지에서 바코드를 판독합니다. 스캔 워크플로는 사용자 지정 뷰파인더 대신 시스템 카메라를 사용합니다.

// Works on iOS, Android, Windows, and macOS MAUItargets
// NuGet: dotnet add package IronBarcode
using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    foreach (var result in results)
        await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK");
}
// Works on iOS, Android, Windows, and macOS MAUItargets
// NuGet: dotnet add package IronBarcode
using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    foreach (var result in results)
        await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK");
}
Imports IronBarCode

Private Async Sub ScanButton_Clicked(sender As Object, e As EventArgs)
    Dim photo = Await MediaPicker.CapturePhotoAsync()
    If photo Is Nothing Then Return

    Using stream = Await photo.OpenReadAsync()
        Using ms As New MemoryStream()
            Await stream.CopyToAsync(ms)

            Dim results = BarcodeReader.Read(ms.ToArray())
            For Each result In results
                Await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK")
            Next
        End Using
    End Using
End Sub
$vbLabelText   $csharpLabel

교환 조건은 라이브 뷰파인더 오버레이입니다. 사용자는 사용자 지정 스캔 영역 대신 시스템 카메라 UI를 보게 되는데, 이는 단순히 위치를 지정하고 이미지를 캡처하는 것으로 충분한 비즈니스 애플리케이션에 적합합니다. 이 .NET MAUI 바코드 스캐너 튜토리얼은 권한 처리 및 프로젝트 구성을 포함하여 iOSAndroid 대상에 대한 MAUI 통합 패턴 전체를 다룹니다.

라이선싱 모델

Scanbot SDK와IronBarcode근본적으로 다른 상업적 라이선스 구조를 사용합니다.

스캔봇 접근법

Scanbot은 연간 정액 요금제로 운영됩니다. 연간 라이선스 비용은 스캔량과 관계없이 고정되어 있습니다. 연간 100회 스캔이든 1천만 회 스캔이든 요금은 동일합니다. 이를 통해 모바일 전용 배포 환경이 안정적인 팀은 예측 가능한 연간 예산을 책정할 수 있습니다. 정확한 가격은 스캔봇 영업팀에 문의하십시오. 공개된 수치는 없습니다. 매년 갱신 의무가 있다는 것은 해당 라이선스가 지속적인 운영 비용임을 의미합니다.

IronBarcode접근법

IronBarcode 는 Lite 버전(749달러), Plus 버전(1,499달러), Professional 버전(2,999달러), Unlimited 버전(5,999달러)의 네 가지 등급으로 판매되며, 한 번 구매로 영구 사용할 수 있습니다. 구매한 버전은 매년 갱신할 필요가 없습니다. 라이선스 기간 내의 소프트웨어 업데이트는 포함되어 있습니다. 가격 정보는 영업 담당자와의 상담 없이도 Iron Software 웹사이트에서 확인할 수 있습니다.

API 매핑 참조

두 라이브러리의 아키텍처 차이점을 평가하는 팀은 개념적 동등성을 이해하는 데 이 매핑이 유용하다는 것을 알게 될 것입니다.

스캔봇 SDK IronBarcode
@@--코드-51891--@@ @@--코드-51892--@@
@@--코드-51893--@@ @@--코드-51894--@@
@@--코드-51895--@@ @@--코드-51896--@@
@@--코드-51897--@@ results.Any() 또는 results.FirstOrDefault() != null를 확인하세요
@@--코드-51900--@@ 반환 값 BarcodeReader.Read()
@@--코드-51902--@@ result.Format (IronBarCode.BarcodeEncoding)
@@--코드-51904--@@ @@--코드-51905--@@
@@--코드-51906--@@ @@--코드-51907--@@
@@--코드-51908--@@ @@--코드-51909--@@
@@--코드-51910--@@ @@--코드-51911--@@
@@--코드-51912--@@ 해당 기능 없음 - 이미지 프레임은 MediaPicker에서 처리합니다.
@@--코드-51913--@@ 동등한 기능이 없습니다. MediaPicker 옵션을 사용하세요.
카메라 전용 입력 파일 경로, 스트림, 바이트 배열 또는 PDF
iOS 및 안드로이드 마우이 전용 모든 .NET 플랫폼

팀에서 Scanbot SDK에서IronBarcode로 전환을 고려할 때

일반적으로 개발팀은 여러 상황에서IronBarcodeScanbot SDK의 대체품 또는 보완품으로 고려하게 됩니다.

서버 측 및 백엔드 처리

Scanbot으로 구축된 모바일 앱은 문서 업로드, 일괄 작업 또는 API 엔드포인트를 처리하는 서버 측 구성 요소와 함께 존재하는 경우가 많습니다. 서버 측 구성 요소에서 바코드 처리가 필요한 경우(업로드된 PDF에서 바코드 추출, 수신 문서의 바코드 값 유효성 검사 또는 이미지 첨부 파일의 바코드 데이터 처리 등) Scanbot을 사용할 수 없습니다. 해당 패키지는 ASP.NET Core, Azure Functions, 콘솔 애플리케이션 또는 MAUI 이외의 프로젝트에서는 컴파일되지 않습니다. 이러한 상황에 처한 팀은 별도의 서버 측 바코드 솔루션과 함께 모바일 바코드 솔루션을 유지 관리하거나,IronBarcode단일 패키지로 두 가지 역할을 모두 수행할 수 있는지 여부를 평가해야 합니다.

데스크톱 애플리케이션 요구 사항

MAUI의 핵심 가치는 iOS, Android, Windows를 대상으로 하는 단일 코드베이스를 통해 다양한 플랫폼을 지원한다는 점입니다. 윈도우 마우이 대상이 초기 요구 사항이든 나중에 추가된 것이든 로드맵에 포함되면 Scanbot 패키지는 해당 대상에서 제대로 작동하지 않습니다. Windows 빌드는 종속성 목록에 Scanbot이 포함된 상태로는 진행할 수 없습니다. 팀은 데스크톱 대상 빌드를 처음 시도할 때 이 문제를 발견하며, 해결 방법은 공유 종속성 목록에서 Scanbot을 제거하는 것입니다. Windows 데스크톱 대상이 필수적인 팀의 경우, 모바일 중심의 바코드 라이브러리 중 데스크톱 플랫폼도 지원하는 유일한 선택지는IronBarcode뿐입니다.

PDF 및 문서 워크플로

실시간 스캔에서 문서 자동화로 나아가는 애플리케이션은 Scanbot에서 기능상의 한계에 부딪힙니다. PDF 송장에서 바코드를 읽거나, 스캔한 배송 라벨 이미지에서 추적 코드를 추출하거나, 보관된 문서에서 바코드 데이터를 처리하는 등의 워크플로는 Scanbot 모델에서는 불가능합니다. 입력이 항상 실시간 카메라 영상이어야 하기 때문입니다.IronBarcode이러한 파일 기반 입력을 모두 기본적으로 처리합니다. MAUI 모바일 앱에서 실행되는 동일한 패키지를 사용하면 추가적인 종속성 없이 백그라운드 처리 작업을 통해 PDF 문서에서 바코드를 추출할 수 있습니다.

예측 가능한 라이선스 비용

연간 갱신 비용은 갱신 주기마다 재평가를 필요로 합니다. 소규모 모바일 환경에서 Scanbot을 사용하기 시작하여 사용자 또는 플랫폼 수가 늘어나는 더 광범위한 환경으로 확장한 팀은 범위가 커짐에 따라 연간 이용료가 불리하게 느껴질 수 있습니다. 아이언바코드의 일회성 영구 라이선스 모델은 갱신 의무를 없애줍니다. 라이선스 갱신 평가를 수행하는 팀은 특히 확장된 프로젝트 범위에 Scanbot의 적용 범위에 포함되지 않는 서버 측 또는 데스크톱 플랫폼이 포함될 경우, 일회성 구매가 장기적인 비용 계획에 더 적합한지 여부를 고려하는 경우가 많습니다.

일반적인 마이그레이션 고려사항

Scanbot SDK에서IronBarcode로 전환하는 팀은 전환 과정에서 발생하는 몇 가지 기술적 차이점에 대비해야 합니다.

라이브 뷰파인더에 해당하는 기능이 없습니다.

스캔봇의 실시간 카메라 뷰파인더(스캔 영역 오버레이, 연속 감지 및 햅틱 피드백 기능 포함)는IronBarcode에는 직접적으로 상응하는 기능이 없습니다. 대체 패턴은 MAUI의 MediaPicker.CapturePhotoAsync()를 사용하여 시스템 카메라를 열고 사진을 캡처한 다음 처리할 이미지를 반환합니다. 사용자 경험은 연속적인 스캔 흐름이 아니라 사진 캡처 흐름입니다. 비즈니스 애플리케이션(재고 관리, 물류, 문서 처리)의 경우 이러한 차이점은 거의 중요하지 않습니다. 실시간 오버레이가 제품 경험의 핵심인 소비자 앱의 경우, 이는 마이그레이션을 진행하기 전에 반드시 평가해야 할 진정한 UX 차이점입니다.

이벤트 콜백 패턴을 사용하여 직접 반환

Scanbot의 BarcodeScanner.Open()는 비동기식이며 상태 필드와 OperationResult 컬렉션이 있는 Barcodes를 반환합니다. IronBarcode의 BarcodeReader.Read()는 상태 필드가 있는 래퍼 객체가 없이 컬렉션을 직접 반환합니다. 성공 확인은 result.Status == OperationResult.Ok에서 results.Any()로 변경되거나 results.FirstOrDefault()에서 null 확인으로 변경됩니다.

형식 열거형 네임스페이스 변경

Scanbot의 BarcodeFormat 열거형(예: BarcodeFormat.Code128)과 IronBarcode의 BarcodeEncoding 열거형(예: BarcodeEncoding.Code128)은 유사한 멤버를 포함하지만 네임스페이스가 다른 다른 유형입니다. 열거형 타입으로 형식 값을 저장하거나 비교하는 코드는 해당 타입 참조를 업데이트해야 합니다. 멤버 이름이 유사하므로 .ToString() 출력에 기반한 문자열 비교는 일반적으로 호환되지만, 명시적 열거형 비교는 BarcodeEncoding 값으로 업데이트해야 합니다.

Windows 빌드 추가 기능

마이그레이션 전에 Scanbot 패키지로 인해 윈도우 마우이 빌드 오류가 발생했다면 해당 패키지를 제거하면 오류가 해결됩니다.IronBarcode추가한 후에는 파일 선택 대화 상자, 로컬 파일 경로, Windows 권한과 같은 Windows 관련 기능이 iOS 및 Android의 파일 액세스 패턴과 다르므로 MAUI 앱 코드에서 이러한 기능이 적절하게 처리되는지 확인하십시오.

IronBarcode추가 기능

이 비교에서 다룬 핵심 시나리오 외에도,IronBarcode프로젝트가 확장됨에 따라 더욱 중요해지는 다양한 기능을 제공합니다.

  • 바코드 생성: 이미지 파일, 스트림 또는 HTML 및 PDF 문서에 포함된 콘텐츠 등 모든 주요 1차원 및 2차원 형식의 바코드를 생성합니다.
  • 다중 바코드 문서 처리: 여러 페이지로 구성된 PDF 문서의 모든 페이지에 있는 모든 바코드를 한 번의 호출로 읽고, 각 결과에는 바코드가 발견된 페이지 번호가 포함됩니다.
  • 머신러닝 기반 오류 수정: 표준 검출 알고리즘으로는 해독할 수 없는 손상되었거나, 부분적으로 가려졌거나, 명암 대비가 낮은 이미지에서 바코드를 복구합니다.
  • 일괄 이미지 처리: 이미지 경로 또는 스트림 배열을 단일 작업으로 처리하여 문서 워크플로의 처리량을 높입니다.
  • 바코드 판독기 옵션 튜닝: 특정 사용 사례에 맞춰 처리량과 정확도의 균형을 맞추도록 판독 속도, 다중 바코드 감지, 포맷 필터링 및 이미지 전처리를 제어합니다.
  • iOS MAUI 통합 : MediaPicker 패턴을 사용하는 iOS 마우이 애플리케이션에서 바코드 읽기를 완벽하게 지원합니다.
  • Android MAUI 통합 : iOS와 동일한 API를 사용하여 안드로이드 마우이 애플리케이션에서 바코드 판독을 완벽하게 지원합니다.

.NET 호환성 및 미래 준비

IronBarcode .NET 6, .NET 7, .NET 8, .NET 9뿐만 아니라 .NET Framework 4.6.2 이상을 지원합니다. 이 라이브러리는 .NET 릴리스 주기에 맞춰 정기적으로 업데이트되므로 2026년 말에 출시될 예정인 .NET 10 및 향후 릴리스와의 호환성을 보장합니다.IronBarcode플랫폼별 카메라 SDK가 아닌 파일 처리 라이브러리이기 때문에 모바일 운영 체제 API나 하드웨어 기능에 의존하지 않습니다. 따라서 호환성 범위가 모바일 플랫폼 지원 주기에 제한되지 않고 .NET 생태계와 함께 확장됩니다.

결론

Scanbot SDK와IronBarcode"바코드 SDK"라는 공통 이름을 가지고 있지만 서로 다른 제품군에 속합니다. Scanbot은 iOS 및 Android 애플리케이션에 세련된 실시간 뷰파인더 환경을 제공하는 모바일 카메라 스캐닝 구성 요소입니다.IronBarcode는 모든 .NET 프로젝트 유형 및 배포 대상에 걸쳐 바코드를 읽고 생성하는 파일 및 문서 처리 라이브러리입니다. 이 비교는 각 라이브러리의 목표 영역 내에서의 품질이 아니라 범위와 아키텍처에 관한 것입니다.

Scanbot SDK는 정의된 범위 내에서 매우 강력합니다. 소비자 및 Enterprise 모바일 애플리케이션에서 사용자가 기기 카메라를 실제 바코드에 직접 향하게 하고 실시간 시각적 피드백을 기대하는 경우(소매, 티켓 발권, 창고 조회 등) Scanbot의 카메라 파이프라인과 정교한 뷰파인더 구성 요소는 이러한 상호 작용 모델에 맞춰 특별히 설계되었습니다. 배포 환경이 iOS 및 Android 모바일 기기에만 국한되고, 실시간 스캔 경험이 제품의 핵심이며, 연간 고정 요금이 예산에 맞는다면 Scanbot은 이러한 구체적이고 명확한 사용 사례에 적합한 선택입니다.

IronBarcode 실시간 카메라 시나리오를 넘어 바코드 처리 요구 사항이 확장될 때 적합합니다. 서버 측 문서 처리, 파일 업로드를 허용하는 ASP.NET Core엔드포인트, Windows 또는 macOS용 데스크톱 애플리케이션, Blob 스토리지에 의해 트리거되는 Azure Functions, 데스크톱 플랫폼을 포함하는 다중 대상 MAUI 프로젝트, 배치 PDF 처리 작업 등은 모두 IronBarcode의 기본 지원 범위에 속합니다. 단일 패키지는 플랫폼 조건부 구성 없이 설치되며 코드가 모바일 기기, 서버 또는 데스크톱에서 실행되는지 여부에 관계없이 동일한 BarcodeReader.Read() 호출을 제공합니다.

실시간 모바일 카메라 스캔과 파일 또는 서버 처리 모두를 필요로 하는 팀의 경우, 가장 깔끔한 아키텍처 솔루션은 모바일 카메라 UI에는 Scanbot을 사용하고 나머지 모든 기능에는IronBarcode사용하는 것입니다. 그러한 접근 방식의 비용은 두 가지 바코드 종속성과 두 건의 라이선스 계약입니다. 모바일 스캔 상호 작용을 위해 맞춤형 뷰파인더 대신 시스템 카메라를 사용할 의향이 있는 팀의 경우,IronBarcode하나만으로도 MAUI 모바일 앱부터 서버 API 및 Windows 데스크톱 컴패니언에 이르기까지 전체 프로젝트 범위를 단일 패키지와 단일 라이선스로 지원할 수 있습니다.

자주 묻는 질문

스캔봇 SDK란 무엇인가요?

Scanbot SDK는 C# 애플리케이션에서 바코드를 생성하고 판독하기 위한 .NET 바코드 라이브러리입니다. 개발자가 .NET 프로젝트용 바코드 솔루션을 선택할 때 평가하는 여러 대안 중 하나입니다.

Scanbot SDK와 IronBarcode의 주요 차이점은 무엇인가요?

IronBarcode는 인스턴스 관리가 필요 없는 정적 상태 저장소 API를 사용하는 반면, Scanbot SDK는 일반적으로 사용하기 전에 인스턴스 생성 및 구성이 필요합니다. 또한 IronBarcode는 모든 환경에서 기본 PDF 지원, 자동 형식 감지, 단일 키 라이선싱을 제공합니다.

IronBarcode가 Scanbot SDK보다 라이선스 취득이 더 쉬운가요?

IronBarcode는 개발 및 프로덕션 배포를 모두 포괄하는 단일 라이선스 키를 사용합니다. 따라서 SDK 키와 런타임 키를 분리하는 라이선싱 시스템에 비해 CI/CD 파이프라인 및 Docker 구성이 간소화됩니다.

IronBarcode는 Scanbot SDK가 지원하는 모든 바코드 형식을 지원하나요?

IronBarcode는 QR코드, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 등 30개 이상의 바코드 심볼로지를 지원합니다. 형식 자동 감지 기능은 명시적인 형식 열거가 필요하지 않음을 의미합니다.

IronBarcode는 네이티브 PDF 바코드 판독을 지원하나요?

예. IronBarcode는 별도의 PDF 렌더링 라이브러리가 필요 없이 BarcodeReader.Read("document.pdf")를 사용하여 PDF 파일에서 직접 바코드를 판독합니다. 페이지별 결과에는 페이지 번호, 바코드 형식, 값 및 신뢰도 점수가 포함됩니다.

IronBarcode는 Scanbot SDK와 비교하여 일괄 처리를 어떻게 처리하나요?

IronBarcode의 정적 메서드는 상태 저장소가 없고 자연스럽게 스레드에 안전하므로 스레드별 인스턴스 관리 없이 Parallel.ForEach를 직접 사용할 수 있습니다. 어떤 가격대에서도 처리량 상한선이 없습니다.

IronBarcode 어떤 .NET 버전을 지원하나요?

IronBarcode는 단일 NuGet 패키지로 .NET Framework 4.6.2+, .NET Core 3.1 및 .NET 5, 6, 7, 8, 9를 지원합니다. 플랫폼 대상에는 Windows x64/x86, Linux x64, macOS x64/ARM이 포함됩니다.

.NET 프로젝트에 IronBarcode를 설치하려면 어떻게 해야 하나요?

NuGet을 통해 IronBarcode 설치: 패키지 관리자 콘솔에서 'Install-Package IronBarCode'를 실행하거나 CLI에서 '닷넷 추가 패키지 IronBarCode'를 실행합니다. 추가 SDK 인스톨러나 런타임 파일은 필요하지 않습니다.

Scanbot과 달리 구매하기 전에 IronBarcode를 평가할 수 있나요?

예. IronBarcode의 평가판 모드는 완전한 디코딩된 바코드 값을 반환하며 생성된 출력 이미지에만 워터마크가 표시됩니다. 구매를 결정하기 전에 자신의 문서에서 판독 정확도를 벤치마킹할 수 있습니다.

Scanbot SDK와 IronBarcode의 가격 차이는 무엇인가요?

개발 및 프로덕션을 포함하는 단일 개발자 영구 라이선스의 IronBarcode 가격은 $749부터 시작합니다. 가격 세부 정보 및 볼륨 옵션은 IronBarcode 라이선스 페이지에서 확인할 수 있습니다. 별도의 런타임 라이선스 요구 사항은 없습니다.

Scanbot SDK에서 IronBarcode로 마이그레이션하는 것은 간단하나요?

Scanbot SDK에서 IronBarcode로의 마이그레이션에는 주로 인스턴스 기반 API 호출을 IronBarcode의 정적 메서드로 대체하고, 라이선스 상용구를 제거하며, 결과 속성 이름을 업데이트하는 작업이 포함됩니다. 대부분의 마이그레이션에는 코드를 추가하기보다는 줄이는 작업이 포함됩니다.

IronBarcode는 로고가 있는 QR 코드를 생성하나요?

예. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")는 구성 가능한 오류 수정을 통해 기본적으로 브랜드 이미지를 QR코드에 임베드합니다. ChangeBarCodeColor()를 통해 컬러 QR 코드도 지원됩니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해