푸터 콘텐츠로 바로가기
.NET 도움말

DuckDB C# (개발자를 위한 작동 방식)

DuckDB.NET은 DuckDB 네이티브 라이브러리를 위한 .NET 바인딩의 오픈 소스 제공자로, C#과 원활하게 통합되도록 설계되었습니다. 이는 ADO.NET 제공자를 제공하여, .NET 애플리케이션 내에서 DuckDB라는 로우 레벨 바인딩 라이브러리를 쉽게 사용할 수 있도록 합니다. 이 패키지는 C# 환경에서 DuckDB의 강력한 분석 기능을 활용하려는 개발자들에게 이상적입니다.

설치

DuckDB.NET의 설치는 간단합니다. 다음과 같이 .NET CLI를 사용하여 프로젝트에 추가할 수 있습니다:

dotnet add package DuckDB.NET.Data.Full
dotnet add package DuckDB.NET.Data.Full
SHELL

다른 방법으로, Visual Studio의 NuGet 패키지 관리자를 통해 설치할 수 있습니다.

기본 사용법

설치가 완료되면, C# 애플리케이션 내에서 DuckDB.NET을 사용하여 SQL 쿼리를 실행할 수 있습니다. 다음은 간단한 예입니다.

using System;
using DuckDB.NET.Data;

class Program
{
    static void Main()
    {
        // Create and open a connection to an in-memory DuckDB database
        using var duckdbconnection = new DuckDBConnection("Data Source=:memory:");
        duckdbconnection.Open();

        // Create a command associated with the connection
        using var command = duckdbconnection.CreateCommand();
        // Create a table named 'integers'
        command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);";
        command.ExecuteNonQuery();

        // Insert some data into the 'integers' table
        command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);";
        command.ExecuteNonQuery();

        // Retrieve the count of rows in the 'integers' table
        command.CommandText = "SELECT count(*) FROM integers";
        var executeScalar = command.ExecuteScalar();

        // Select all values from the 'integers' table
        command.CommandText = "SELECT foo, bar FROM integers;";

        // Execute the query and process the results
        using var reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine($"{reader.GetInt32(0)}, {reader.GetInt32(1)}");
        }
    }
}
using System;
using DuckDB.NET.Data;

class Program
{
    static void Main()
    {
        // Create and open a connection to an in-memory DuckDB database
        using var duckdbconnection = new DuckDBConnection("Data Source=:memory:");
        duckdbconnection.Open();

        // Create a command associated with the connection
        using var command = duckdbconnection.CreateCommand();
        // Create a table named 'integers'
        command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);";
        command.ExecuteNonQuery();

        // Insert some data into the 'integers' table
        command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);";
        command.ExecuteNonQuery();

        // Retrieve the count of rows in the 'integers' table
        command.CommandText = "SELECT count(*) FROM integers";
        var executeScalar = command.ExecuteScalar();

        // Select all values from the 'integers' table
        command.CommandText = "SELECT foo, bar FROM integers;";

        // Execute the query and process the results
        using var reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine($"{reader.GetInt32(0)}, {reader.GetInt32(1)}");
        }
    }
}
Imports System
Imports DuckDB.NET.Data

Friend Class Program
	Shared Sub Main()
		' Create and open a connection to an in-memory DuckDB database
		Dim duckdbconnection As New DuckDBConnection("Data Source=:memory:")
		duckdbconnection.Open()

		' Create a command associated with the connection
		Dim command = duckdbconnection.CreateCommand()
		' Create a table named 'integers'
		command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);"
		command.ExecuteNonQuery()

		' Insert some data into the 'integers' table
		command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);"
		command.ExecuteNonQuery()

		' Retrieve the count of rows in the 'integers' table
		command.CommandText = "SELECT count(*) FROM integers"
		Dim executeScalar = command.ExecuteScalar()

		' Select all values from the 'integers' table
		command.CommandText = "SELECT foo, bar FROM integers;"

		' Execute the query and process the results
		Dim reader = command.ExecuteReader()
		Do While reader.Read()
			Console.WriteLine($"{reader.GetInt32(0)}, {reader.GetInt32(1)}")
		Loop
	End Sub
End Class
$vbLabelText   $csharpLabel

이 예제는 DuckDB.NET을 사용하여 테이블을 생성하고, 데이터를 삽입하고, 데이터를 쿼리하는 방법을 보여줍니다.

출력

DuckDB C# (개발자를 위한 작동 방식): 그림 1 - DuckDB.NET 콘솔 출력

데이터 수집

DuckDB.NET은 CSV 및 Parquet 파일을 포함한 다양한 형식의 데이터를 읽는 것을 지원합니다. 여기 CSV 파일에서 데이터를 읽는 방법이 있습니다:

command.CommandText = "COPY integers FROM 'example.csv' (FORMAT CSV);";
command.ExecuteNonQuery();
command.CommandText = "COPY integers FROM 'example.csv' (FORMAT CSV);";
command.ExecuteNonQuery();
command.CommandText = "COPY integers FROM 'example.csv' (FORMAT CSV)"
command.ExecuteNonQuery()
$vbLabelText   $csharpLabel

DataFrames와의 통합

DuckDB.NET은 데이터 프레임과 통합할 수 있으며, 친숙한 SQL 구문을 사용하여 데이터를 조작할 수 있습니다. 이는 특히 데이터 분석 작업에 유용합니다.

결과 변환

쿼리 결과를 목록이나 사용자 지정 객체와 같은 다양한 형식으로 변환하여, 애플리케이션 내에서 데이터를 쉽게 다룰 수 있게 합니다:

var results = new List<(int foo, int bar)>();

// Read and store results to a List
while (reader.Read())
{
    results.Add((reader.GetInt32(0), reader.GetInt32(1))); 
    // You can also use a loop with an index to iterate the results
}
var results = new List<(int foo, int bar)>();

// Read and store results to a List
while (reader.Read())
{
    results.Add((reader.GetInt32(0), reader.GetInt32(1))); 
    // You can also use a loop with an index to iterate the results
}
Dim results = New List(Of (foo As Integer, bar As Integer))()

' Read and store results to a List
Do While reader.Read()
	results.Add((reader.GetInt32(0), reader.GetInt32(1)))
	' You can also use a loop with an index to iterate the results
Loop
$vbLabelText   $csharpLabel

디스크에 데이터 쓰기

DuckDB.NET은 다양한 형식으로 디스크에 데이터를 쓰는 것을 지원합니다. COPY 문을 사용하여 데이터를 CSV 파일로 내보낼 수 있습니다:

command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);";
command.ExecuteNonQuery();
command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);";
command.ExecuteNonQuery();
command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV)"
command.ExecuteNonQuery()
$vbLabelText   $csharpLabel

IronPDF 소개

DuckDB C# (개발자를 위한 작동 방식): 그림 2 - IronPDF

IronPDF는 .NET 프로젝트에서 PDF 문서의 생성, 관리 및 콘텐츠 추출을 허용하는 C# PDF 라이브러리입니다. 다음은 몇 가지 주요 기능입니다:

IronPDF는 웹페이지, URL, HTML을 PDF로 변환할 수 있는 편리한 도구입니다. 가장 큰 장점은 생성된 PDF가 원본 웹 페이지와 동일하게 보인다는 점입니다. 모든 서식과 스타일이 그대로 유지됩니다. 온라인 보고서나 청구서 등을 PDF로 생성해야 한다면 IronPDF를 활용하시기 바랍니다.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. HTML을 PDF로 변환:

    • HTML, CSS 및 JavaScript 콘텐츠를 PDF로 변환합니다.
    • 픽셀 완벽한 PDF 문서를 위한 Chrome 렌더링 엔진.
    • URL, HTML 파일 또는 HTML 문자열에서 PDF를 생성합니다.
  2. 이미지 및 콘텐츠 변환:

    • 이미지를 PDF 문서로 변환하고 그 반대로도 가능합니다.
    • 기존 PDF 문서에서 텍스트와 이미지를 추출합니다.
    • JPG, PNG 등 다양한 이미지 형식을 지원합니다.
  3. 편집 및 조작:

    • PDF 문서의 속성, 보안 및 권한을 설정합니다.
    • PDF에 디지털 서명을 추가합니다.
    • 메타데이터 및 수정 기록을 편집합니다.
  4. 크로스 플랫폼 지원:
    • .NET Core(8, 7, 6, 5, 및 3.1+), .NET Standard(2.0+) 및 .NET Framework(4.6.2+)와 함께 작동합니다.
    • Windows, Linux, macOS와 호환됩니다.
    • 간편한 설치를 위한 NuGet에서 사용 가능합니다.

IronPDF 및 DuckDB .NET을 사용하여 PDF 문서 생성하기

먼저, 아래와 같이 Visual Studio를 사용하여 콘솔 애플리케이션을 만듭니다.

DuckDB C# (개발자를 위한 작동 방식): 그림 3 - 콘솔 앱

프로젝트 이름을 제공합니다.

DuckDB C# (개발자를 위한 작동 방식): 그림 4 - 프로젝트 구성

.NET 버전을 제공합니다.

DuckDB C# (개발자를 위한 작동 방식): 그림 5 - 대상 프레임워크

IronPDF 패키지를 설치합니다.

DuckDB C# (개발자를 위한 작동 방식): 그림 6 - IronPDF

DuckDB.NET 패키지를 설치합니다.

DuckDB C# (개발자를 위한 작동 방식): 그림 7 - DuckDB.NET

using DuckDB.NET.Data;
using IronPdf;

namespace CodeSample
{
    public static class DuckDbDemo
    {
        public static void Execute()
        {
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo DuckDb and IronPDF</h1>";
            content += "<h2>Create DuckDBConnection</h2>";
            content += "<p>new DuckDBConnection(\"Data Source=:memory:\");</p>";
            content += "<p></p>";

            // Create and open a connection to an in-memory DuckDB database
            using var connection = new DuckDBConnection("Data Source=:memory:");
            connection.Open();
            using var command = connection.CreateCommand();

            // Create a table named 'integers'
            command.CommandText = "CREATE TABLE integers(book STRING, cost INTEGER);";
            command.ExecuteNonQuery();
            content += "<p>CREATE TABLE integers(book STRING, cost INTEGER);</p>";

            // Insert some data into the 'integers' table
            command.CommandText = "INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);";
            command.ExecuteNonQuery();
            content += "<p>INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);</p>";

            // Select all values from the 'integers' table
            command.CommandText = "SELECT book, cost FROM integers;";
            using var reader = command.ExecuteReader();
            content += "<p>SELECT book, cost FROM integers;</p>";

            // Execute the query and process the results, appending them to the HTML content
            while (reader.Read())
            {
                content += $"<p>{reader.GetString(0)}, {reader.GetInt32(1)}</p>";
                Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)}");
            }

            // Save data to CSV
            content += "<p>Save data to CSV with COPY integers TO 'output.csv' (FORMAT CSV);</p>";
            command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);";
            command.ExecuteNonQuery();

            // Generate and save PDF
            var pdf = renderer.RenderHtmlAsPdf(content);
            pdf.SaveAs("AwesomeDuckDbNet.pdf");
        }
    }
}
using DuckDB.NET.Data;
using IronPdf;

namespace CodeSample
{
    public static class DuckDbDemo
    {
        public static void Execute()
        {
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo DuckDb and IronPDF</h1>";
            content += "<h2>Create DuckDBConnection</h2>";
            content += "<p>new DuckDBConnection(\"Data Source=:memory:\");</p>";
            content += "<p></p>";

            // Create and open a connection to an in-memory DuckDB database
            using var connection = new DuckDBConnection("Data Source=:memory:");
            connection.Open();
            using var command = connection.CreateCommand();

            // Create a table named 'integers'
            command.CommandText = "CREATE TABLE integers(book STRING, cost INTEGER);";
            command.ExecuteNonQuery();
            content += "<p>CREATE TABLE integers(book STRING, cost INTEGER);</p>";

            // Insert some data into the 'integers' table
            command.CommandText = "INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);";
            command.ExecuteNonQuery();
            content += "<p>INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);</p>";

            // Select all values from the 'integers' table
            command.CommandText = "SELECT book, cost FROM integers;";
            using var reader = command.ExecuteReader();
            content += "<p>SELECT book, cost FROM integers;</p>";

            // Execute the query and process the results, appending them to the HTML content
            while (reader.Read())
            {
                content += $"<p>{reader.GetString(0)}, {reader.GetInt32(1)}</p>";
                Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)}");
            }

            // Save data to CSV
            content += "<p>Save data to CSV with COPY integers TO 'output.csv' (FORMAT CSV);</p>";
            command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);";
            command.ExecuteNonQuery();

            // Generate and save PDF
            var pdf = renderer.RenderHtmlAsPdf(content);
            pdf.SaveAs("AwesomeDuckDbNet.pdf");
        }
    }
}
Imports DuckDB.NET.Data
Imports IronPdf

Namespace CodeSample
	Public Module DuckDbDemo
		Public Sub Execute()
			' Instantiate Renderer
			Dim renderer = New ChromePdfRenderer()
			Dim content = "<h1>Demo DuckDb and IronPDF</h1>"
			content &= "<h2>Create DuckDBConnection</h2>"
			content &= "<p>new DuckDBConnection(""Data Source=:memory:"");</p>"
			content &= "<p></p>"

			' Create and open a connection to an in-memory DuckDB database
			Dim connection = New DuckDBConnection("Data Source=:memory:")
			connection.Open()
			Dim command = connection.CreateCommand()

			' Create a table named 'integers'
			command.CommandText = "CREATE TABLE integers(book STRING, cost INTEGER);"
			command.ExecuteNonQuery()
			content &= "<p>CREATE TABLE integers(book STRING, cost INTEGER);</p>"

			' Insert some data into the 'integers' table
			command.CommandText = "INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);"
			command.ExecuteNonQuery()
			content &= "<p>INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);</p>"

			' Select all values from the 'integers' table
			command.CommandText = "SELECT book, cost FROM integers;"
			Dim reader = command.ExecuteReader()
			content &= "<p>SELECT book, cost FROM integers;</p>"

			' Execute the query and process the results, appending them to the HTML content
			Do While reader.Read()
				content &= $"<p>{reader.GetString(0)}, {reader.GetInt32(1)}</p>"
				Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)}")
			Loop

			' Save data to CSV
			content &= "<p>Save data to CSV with COPY integers TO 'output.csv' (FORMAT CSV);</p>"
			command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);"
			command.ExecuteNonQuery()

			' Generate and save PDF
			Dim pdf = renderer.RenderHtmlAsPdf(content)
			pdf.SaveAs("AwesomeDuckDbNet.pdf")
		End Sub
	End Module
End Namespace
$vbLabelText   $csharpLabel

코드 설명

이 코드는 DuckDB.NET을 데이터베이스 작업에 사용하고 IronPDF를 사용하여 데이터베이스 쿼리 결과가 포함된 PDF 보고서를 생성하는 방법을 보여주려 합니다.

핵심 구성 요소

  1. DuckDB.NET:

    • DuckDBConnection: 메모리에 저장된 DuckDB 데이터베이스 파일('Data Source=:memory:')에 연결을 설정합니다. 이 연결은 SQL 명령을 실행하는 데 코드 전반에 사용됩니다.
  2. 데이터베이스 작업:

    • 테이블 생성: SQL 명령(CREATE TABLE integers(book STRING, cost INTEGER);)을 정의하여 book (STRING)과 cost (INTEGER)의 열이 있는 이름이 integers인 테이블을 생성합니다.
    • 데이터 삽입: integers 테이블에 행을 삽입합니다 (INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);).
    • 데이터 검색: SELECT 쿼리 (SELECT book, cost FROM integers;)를 실행하여 integers 테이블에서 데이터를 가져옵니다. 검색된 데이터는 HTML (content)로 형식화되어 콘솔에 출력됩니다.
  3. IronPDF를 사용한 PDF 생성:
    • HTML을 PDF로 렌더링: IronPDF의 ChromePdfRenderer를 사용하여 HTML 콘텐츠 (content)를 PDF 문서 (pdf)로 변환합니다.
    • PDF 저장: 생성된 PDF를 현재 디렉토리에 'AwesomeDuckDbNet.pdf'로 저장합니다.

출력

DuckDB C# (개발자를 위한 작동 방식): 그림 8 - 콘솔 출력

PDF

DuckDB C# (개발자를 위한 작동 방식): 그림 9 - PDF 출력

IronPDF 라이선스

IronPDF 패키지는 실행하기 위해 라이센스가 필요합니다. 패키지에 접근하기 전에 애플리케이션의 시작 부분에 아래 코드를 추가하십시오.

IronPdf.License.LicenseKey = "IRONPDF-KEY";
IronPdf.License.LicenseKey = "IRONPDF-KEY";
Imports IronPdf

IronPdf.License.LicenseKey = "IRONPDF-KEY"
$vbLabelText   $csharpLabel

IronPDF의 체험판 라이센스 페이지에서 체험판 라이센스를 사용할 수 있습니다.

결론

DuckDB.NET C# 패키지는 .NET 애플리케이션에 DuckDB의 분석 기능을 통합하기 위한 강력한 도구입니다. 사용의 용이성, 다양한 데이터 형식 지원 및 C#과의 매끄러운 통합은 데이터 중심 애플리케이션에서 작업하는 개발자에게 탁월한 선택입니다. 데이터 분석 도구, ETL 파이프라인 또는 다른 데이터 중심 애플리케이션 구축 여부에 관계없이 DuckDB.NET은 목표를 효율적으로 달성하는 데 도움이 될 수 있습니다.

자주 묻는 질문

C# 애플리케이션에서 DuckDB.NET은 무엇에 사용되나요?

DuckDB.NET은 C# 애플리케이션 내에서 DuckDB 네이티브 라이브러리를 통합하여 개발자에게 ADO.NET 공급자를 통한 강력한 분석 기능을 제공합니다.

C# 프로젝트에 DuckDB.NET을 어떻게 설치할 수 있나요?

.NET CLI 명령 dotnet add package DuckDB.NET.Data.Full을 사용하거나 Visual Studio의 NuGet 패키지 관리자에서 DuckDB.NET을 설치할 수 있습니다.

DuckDB.NET을 사용하여 SQL 쿼리를 어떻게 실행하나요?

DuckDBConnection으로 연결을 설정하고 SQL 명령을 실행하여 테이블을 생성하고 데이터 삽입 및 검색을 수행하여 SQL 쿼리를 실행할 수 있습니다.

DuckDB.NET이 CSV 및 Parquet 파일에서 데이터를 읽는 것을 지원할 수 있나요?

네, DuckDB.NET은 C# 애플리케이션 내에서 이러한 데이터 유형의 원활한 통합 및 조작을 허용하여 CSV 및 Parquet 파일을 포함한 다양한 형식의 데이터 수집을 지원합니다.

C#에서 HTML을 PDF로 변환하는 방법은 무엇인가요?

IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 또한 RenderHtmlFileAsPdf 사용하여 HTML 파일을 PDF로 변환할 수도 있습니다.

데이터 집약 프로젝트에서 DuckDB.NET을 사용하는 이점은 무엇인가요?

DuckDB.NET은 강력한 분석 기능을 제공하며 SQL 기반 데이터 조작을 지원하고 C# 애플리케이션과 쉽게 통합되어 데이터 집약적인 프로젝트에 이상적입니다.

DuckDB.NET이 데이터 프레임과 어떻게 통합될 수 있나요?

DuckDB.NET은 데이터 프레임과 통합되어 SQL 기반의 데이터 조작을 가능하게 하며, 이는 복잡한 데이터 분석 작업을 수행하는 데 특히 유용합니다.

DuckDB.NET을 사용하여 데이터를 CSV 파일로 어떻게 내보내나요?

COPY 명령문을 사용하여 데이터를 CSV 파일로 내보낼 수 있습니다. 예를 들어, COPY integers TO 'output.csv' (FORMAT CSV);를 사용하여 테이블 데이터를 CSV 파일로 내보낼 수 있습니다.

IronPDF는 어떤 플랫폼을 지원하나요?

IronPDF는 .NET Core (8, 7, 6, 5 및 3.1+), .NET Standard (2.0+), .NET Framework (4.6.2+)을 지원하며, Windows, Linux, macOS와 호환됩니다.

리포트를 생성하기 위해 DuckDB.NET과 IronPDF를 결합할 수 있나요?

네, DuckDB.NET을 데이터베이스 작업에 사용하고 IronPDF를 PDF 리포트 생성에 결합하여 DuckDB의 데이터베이스 기능과 IronPDF의 PDF 생성 기능을 활용할 수 있습니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다.

그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다.

아이언 서포트 팀

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