푸터 콘텐츠로 바로가기
.NET 도움말
NuGet이란 무엇인가 (개발자를 위한 작동 튜토리얼)

NuGet이란?

개발자가 함수 코드를 작성, 교환 및 사용할 수 있게 하는 시스템은 모든 현대 개발 플랫폼의 중요한 구성 요소입니다. 이 함수 코드는 프로젝트에서 사용하는 다른 자료들과 함께 "패키지"로 묶여 있으며, 컴파일된 코드(DLL 형태)와 같은 것을 포함합니다.

Microsoft가 지원하는 .NET(또는 .NET Core 포함)에 대한 코드를 공유하는 방법은 NuGet입니다. NuGet은 .NET Framework용 패키지의 생성, 호스팅 및 검색을 가능하게 합니다. NuGet이 관리하는 소프트웨어 패키지는 NuGet 패키지라고 합니다.

NuGet이란? NuGet 패키지는 .nupkg 확장자를 가진 그냥 zip 파일입니다. 이것은 소프트웨어의 기능을 발휘하도록 하는 모든 DLL을 포함합니다. 또한 패키지의 버전 번호를 나열하는 설명적인 매니페스트를 포함합니다. 개발자는 NuGet 패키지를 설치하기만 하면 해당 패키지가 제공하는 메소드를 사용할 수 있습니다.

NuGet 기능

  • NuGet은 중앙 nuget.org 리포지토리에 비공개 호스팅 지원을 추가합니다.
  • NuGet은 개발자가 패키지를 만들고, 게시하고, 설치하는 데 필요한 도구를 제공합니다.
  • NuGet은 프로젝트에서 사용되는 패키지를 추적하여 그 목록에서 패키지를 복원하고 업데이트 할 수 있게 해줍니다.
  • NuGet은 패키지의 구조화 방법, 로컬리제이션 및 참조 방법과 관련된 모든 사양을 추적합니다.
  • NuGet은 모든 서비스와 프로그램적으로 상호 작용할 수 있는 다양한 API를 제공하며, Visual Studio 확장을 게시하는 개발자를 지원합니다.
  • NuGet은 설치 및 재설치를 쉽게 하기 위해 패키지 캐시와 글로벌 폴더를 포함합니다. 패키지가 로컬 컴퓨터에 이미 존재하는 경우, 캐시는 중앙 리포지토리에서 다운로드하지 않고 캐시에서 패키지를 제공합니다.

NuGet 패키지 작동 방식

NuGet은 공개 호스트로서 100,000개 이상의 고유 패키지 중앙 리포지토리를 유지 관리합니다. 매일 수백만의 .NET/.NET Core 개발자가 이 패키지를 사용합니다. NuGet은 Azure DevOps와 같은 클라우드에서, 비공개 네트워크 또는 로컬 파일 시스템에서도 패키지를 비공개로 호스팅할 수 있게 합니다. 결과적으로, 이 패키지들은 호스트에 접근 권한이 있는 개발자에게만 제공되며, 특정 소비자 그룹에만 패키지를 제공할 수 있게 합니다.

호스트는 그 성격에 관계없이 패키지 제작자와 소비자를 연결하는 링크 역할을 합니다. 제작자는 유용한 NuGet 패키지를 개발하고 호스트에 배포합니다. 소비자는 유용하고 호환 가능한 패키지를 찾기 위해 호스트를 검색하여 해당 패키지를 다운로드하고 프로젝트에 포함합니다. 프로젝트에 설치되면 패키지의 API는 나머지 프로젝트 코드에서 접근할 수 있습니다.

What is NuGet, Figure 1

NuGet 도구

NuGet 패키지를 관리하는데 사용되는 여섯 가지 도구가 있습니다.

.NET CLI

.NET Core 및 .NET Standard 라이브러리, 그리고 .NET Framework을 목표로 하는 SDK 스타일 프로젝트를 위한 명령줄 인터페이스(CLI)입니다 (SDK 속성 참조). 일부 NuGet CLI 기능은 .NET Core 도구 체인 내에서 직접 사용할 수 있습니다. .NET CLI는 nuget.exe CLI와 마찬가지로 Visual Studio 프로젝트와 상호 작용하지 않습니다.

NuGet.exe CLI

이것은 .NET Framework 라이브러리와 .NET Standard 라이브러리를 목표로 하는 비 SDK 스타일 프로젝트를 위한 CLI입니다. .NET CLI의 모든 기능을 제공하며, 일부 명령은 패키지 제작자에게만 적용되고 다른 명령은 소비자에게만 적용됩니다. 패키지 제작자는 예를 들어 NuGet pack 명령을 사용하여 다양한 어셈블리 및 관련 파일에서 패키지를 생성합니다. 패키지 사용자는 NuGet install를 사용하여 패키지를 프로젝트 폴더에 포함시킵니다. 패키지 개발자와 패키지 사용자 모두 NuGet config를 사용하여 NuGet 설정 변수를 설정합니다.

NuGet CLI는 플랫폼에 구애받지 않는 도구이기 때문에 Visual Studio 프로젝트와 상호 작용하지 않습니다.

패키지 관리자 콘솔

패키지 관리자 콘솔은 Visual Studio 프로젝트 내에서 패키지를 설치하고 관리하기 위한 PowerShell 명령을 제공합니다.

패키지 관리자 UI

패키지 관리자 UI는 Visual Studio의 프로젝트 내에서 패키지를 설치하고 관리하기 위한 사용자 친화적인 인터페이스를 제공합니다.

NuGet 패키지 관리자 UI 관리

이 도구는 또한 Visual Studio의 프로젝트에서 패키지를 설치하고 관리하기 위한 사용자 친화적인 인터페이스를 제공합니다. 이 도구는 Mac 사용자에게만 제공됩니다.

MSBuild

MSBuild는 사용자가 프로젝트 내에서 사용되는 패키지를 MSBuild 도구 체인에서 직접 생성 및 복원할 수 있도록 합니다.

패키지 관리자 UI와 패키지 관리자 콘솔은 NuGet 패키지를 관리하는 데 가장 널리 사용되는 도구입니다. 이제 그들이 어떻게 사용되는지 탐구해보겠습니다.

NuGet 패키지 관리자 UI 사용

Visual Studio에서 상단 메뉴 바에서 도구를 클릭하고 NuGet 패키지 관리자 > 솔루션용 NuGet 패키지 관리자를 선택하세요.

아래와 같이 새 창이 나타납니다.

What is NuGet, Figure 2

설치된 탭에서는 이미 설치된 모든 NuGet 패키지가 여기에 표시됩니다.

탐색 버튼을 클릭하고 검색 막대에 패키지 이름을 입력하세요. IronBarcode를 예시로 검색해볼 것입니다.

What is NuGet, Figure 3

설치 버튼을 클릭하면 라이브러리가 설치되고 사용 준비가 완료됩니다.

IronBarcode NuGet 패키지 세부 정보는 Iron Software에서 개발 및 유지 관리하는 라이브러리로, .NET 애플리케이션에서 C# 소프트웨어 엔지니어가 바코드 및 QR 코드를 읽고 쓰는 데 도움이 됩니다.

핵심 기능에는 다음이 포함됩니다:

  • 이미지 또는 PDF에서 단일 또는 다중 바코드 및 QR 코드를 읽습니다.
  • 기울어짐, 방향, 노이즈, 저해상도, 대비 등의 이미지 수정.
  • 바코드를 생성하고 이를 이미지 또는 PDF 문서에 적용합니다.
  • HTML 문서에 바코드를 포함합니다.
  • 바코드 스타일을 설정하고 주석 텍스트를 추가합니다.
  • QR 코드 쓰기는 로고, 색상 및 고급 QR 정렬의 추가를 허용합니다.

제품 문서 페이지에서 IronBarcode에 대해 자세히 알아보세요.

패키지 관리자 콘솔 사용

Visual Studio에서 상단 메뉴 바의 도구를 클릭하고 NuGet 패키지 관리자 => 패키지 관리자 콘솔을 선택합니다.

패키지 관리자 콘솔 창이 아래와 같이 나타납니다.

What is NuGet, Figure 4

패키지 관리자 콘솔을 사용하여 패키지를 설치해 보겠습니다.

Install-Package 'package-Name' 명령은 패키지를 설치하는 데 사용됩니다. 예를 들어, IronOCR 패키지를 설치하려면:

Install-Package IronPdf

IronOCR NuGet 패키지 탐색는 .NET 소프트웨어 개발자가 이미지와 PDF 문서에서 텍스트를 감지하고 읽을 수 있도록 하는 C# 소프트웨어 라이브러리입니다. 최첨단 Tesseract 엔진을 사용합니다. IronOCR는 결함이 많은 실제 이미지(즉, 디지털 노이즈, 저해상도 등)를 다루는 데 있어 다른 OCR 라이브러리보다 뛰어납니다. 여러 프로그래밍 언어를 지원합니다.

IronOCR에 대한 기술 문서제품 웹사이트에서 더 읽어보세요.

유용한 NuGet 패키지

이 섹션에서는 데이터베이스 및 파일 작업에 사용할 수 있는 몇 가지 유용한 NuGet 패키지를 설명합니다.

엔터티 프레임워크

엔터티 프레임워크 NuGet 패키지 발견는 .NET 애플리케이션에서 데이터베이스 작업에 가장 일반적이고 강력한 NuGet 패키지입니다.

Microsoft가 지원하는 오픈 소스 ORM 프레임워크로, 개발자가 데이터를 저장된 데이터베이스 테이블 및 열을 사용하는 대신 도메인별 객체를 사용하여 데이터와 작업할 수 있도록 합니다. 데이터를 다룰 때, 개발자는 더 높은 수준의 추상화에서 작업할 수 있습니다. 이렇게 하면 전통적인 애플리케이션보다 더 적은 코드로 데이터 지향 애플리케이션을 생성하고 유지할 수 있습니다.

SQL 서버, Oracle, MySQL 및 PostgreSQL 데이터베이스 서버를 관리하기 위한 별도의 NuGet 패키지가 있습니다.

엔터티 프레임워크 시작하기 가이드는 엔터티 프레임워크의 기능에 대한 자세한 정보를 제공합니다.

IronPDF

IronPDF NuGet 패키지는 앱에 PDF 처리 기능을 추가하는 어려운 문제를 해결합니다. IronPDF는 포맷된 문서를 PDF로 변환하고 개발자가 PDF 문서를 생성, 편집 및 내보낼 수 있도록 자동화합니다.

IronPDF의 주요 기능에는 다음이 포함됩니다:

  • 웹 폼, 로컬 HTML 페이지 및 기타 웹 페이지를 .NET으로 PDF로 변환합니다.
  • 사용자에게 문서를 다운로드, 이메일로 전송하거나 클라우드에 저장할 수 있도록 허용합니다.
  • 송장, 견적서, 보고서, 계약서 및 기타 문서를 제작합니다.
  • ASP .NET, ASP .NET Core, 웹 폼, MVC, .NET Framework 및 .NET Core에서의 웹 API와 함께 작업합니다.

IronPDF에 대해 자세히 알아보려면 제품 문서 페이지를 참조하세요.

IronXL

IronXL NuGet 패키지는 C# 소프트웨어 엔지니어가 .NET 애플리케이션에서 스프레드시트 파일을 읽고 생성하고 편집할 수 있도록 도와줍니다. IronXL은 Office Excel Interop을 사용하지 않고도 잘 작동하며 추가 종속성이나 Microsoft Office 설치가 필요하지 않습니다.

IronXL에 대해 더 알고 싶다면 포괄적인 제품 문서를 참조하세요.

Iron Software는 다섯 가지 라이브러리(IronPDF, IronXL, IronBarcode, IronWebScraper 및 IronOCR)를 단일 .NET Suite로 제공합니다. 전체 Suite를 구매하면 다섯 개의 라이브러리를 두 개의 가격으로 얻을 수 있습니다. 모든 구매에는 평생 제품 지원이 포함됩니다.

요약

NuGet은 .NET 애플리케이션을 위한 패키지 관리자입니다. NuGet 클라이언트 도구는 패키지를 생성, 공유 및 검색할 수 있는 기능을 제공합니다. NuGet 갤러리는 모든 패키지 저자와 소비자가 사용한 중앙 패키지 저장소입니다.

  • NuGet은 비공개 호스팅을 지원하는 중앙 nuget.org 리포지토리를 제공합니다.
  • NuGet은 개발자가 패키지를 생성, 게시 및 설치하는 데 필요한 도구를 제공합니다.
  • NuGet은 프로젝트에서 사용된 패키지의 참조를 유지하고 그 목록에서 패키지를 복원하고 업데이트할 수 있는 기능을 제공합니다.

자주 묻는 질문

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

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

NuGet이란 무엇이며 .NET 개발자에게 왜 중요한가요?

NuGet은 .NET 개발자들이 패키지화된 코드를 효율적으로 생성, 공유 및 활용할 수 있게 하는 패키지 관리 시스템입니다. 이는 서드 파티 라이브러리와 종속성 관리를 단순화하여 올바른 버전을 사용하도록 보장하고 패키지 업데이트와 복구를 쉽게 만듭니다.

.NET CLI를 사용하여 NuGet 패키지를 어떻게 설치하나요?

.NET CLI를 사용하여 NuGet 패키지를 설치하려면 dotnet add package [PackageName] 명령을 사용할 수 있습니다. 이 명령은 지정된 패키지를 프로젝트에 추가하여, 패키지 관리 프로세스를 간소화합니다.

Visual Studio에서 NuGet 패키지를 관리하기 위한 필수 도구는 무엇입니까?

Visual Studio에서 NuGet 패키지를 관리하기 위한 필수 도구는 패키지 관리자 UI, 패키지 관리자 콘솔 및 .NET CLI입니다. 이 도구들은 프로젝트 내에서 패키지를 효율적으로 탐색, 설치 및 업데이트하는 데 사용됩니다.

NuGet 패키지에 대한 사설 호스팅의 이점은 무엇입니까?

NuGet 패키지에 대한 사설 호스팅은 개발자들이 특정 그룹이나 조직 내에서 안전하게 패키지를 공유할 수 있게 합니다. 이는 특정 패키지에 접근할 수 있는 사용자가 인증된 사용자로 제한됨을 보장하여, 코드 배포에 대한 보안성과 제어력을 높입니다.

NuGet 패키지 관리자 콘솔은 패키지 관리를 어떻게 용이하게 합니까?

Visual Studio의 NuGet 패키지 관리자 콘솔은 개발자들이 그들의 개발 환경 내에서 직접 패키지를 설치, 업데이트, 관리하기 위한 명령을 실행할 수 있게 합니다. 이는 패키지 종속성과 버전을 효율적으로 관리할 수 있는 강력한 인터페이스를 제공합니다.

NuGet 패키지에서 매니페스트는 어떤 역할을 합니까?

NuGet 패키지에서 매니페스트는 패키지의 버전 번호 및 다른 중요한 정보를 포함하는 메타데이터를 가지고 있습니다. 이 메타데이터는 프로젝트 내에서의 종속성 식별, 관리 및 해결에 매우 중요합니다.

NuGet은 비 .NET 프로젝트에도 사용될 수 있습니까?

NuGet은 주로 .NET 프로젝트를 위해 설계되었지만, 그것의 인프라는 다양한 다른 프로젝트에 대한 패키지 관리도 지원할 수 있습니다. 그러나 그것의 모든 기능과 가능성은 .NET 생태계 내에서 가장 잘 활용됩니다.

NuGet의 캐싱 메커니즘은 패키지 관리를 어떻게 단순화합니까?

NuGet의 캐싱 메커니즘은 패키지 데이터를 로컬에 저장하여 쉽게 패키지를 설치하고 재설치할 수 있게 합니다. 이것은 중앙 저장소에서 패키지를 반복해서 다운로드할 필요성을 줄여, 개발 속도를 높입니다.

인기 있는 NuGet 패키지의 예시는 무엇입니까?

인기 있는 NuGet 패키지에는 데이터베이스 상호작용을 위한 Entity Framework, PDF 처리를 위한 IronPDF, 스프레드시트 조작을 위한 IronXL이 있습니다. 이 패키지들은 개발자들에게 그들의 .NET 애플리케이션을 향상시킬 수 있는 강력한 도구를 제공합니다.

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

제이콥 멜러는 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시간 온라인으로 운영합니다.
채팅
이메일
전화해