태그 보관물: 패키지

닷넷 패키지 검색 및 설치

패키지 설치

패키지를 설치하는 데는 몇 가지 방법이 있습니다. 비쥬얼스튜디오에는 기본 제공되는 패키지 관리자 명령줄과 그래픽 사용자 인터페이스가 있습니다. 프로젝트 파일에 패키지 참조를 수동으로 추가할 수 있습니다. 또는 Paket이나 닷넷 Core CLI 같은 CLI(명령줄 인터페이스) 도구를 통해 설치할 수 있습니다.

닷넷 Core CLI은 터미널에서 명령을 호출하여 .NET 프로젝트에 패키지를 추가할 수 있습니다. 일반적인 설치 명령은 dotnet add package <name of package>와 같습니다. add package 명령을 실행하면 명령줄 도구는 전역 레지스트리에 연결되고 패키지를 가져와서 모든 프로젝트가 사용할 수 있는 캐시된 폴더 위치에 저장합니다.

패키지 검색

개별 개발자는 NuGet.org에서 전역 레지스트리를 사용하여 앱에 필요한 패키지를 찾고 다운로드할 수 있습니다.

패키지는 전부 공개될수도 일부만 공개적으로 제공될 수도 있습니다. 일부는 제한되어 특정 기업의 직원에게만 제공될 수도 있습니다. 패키지가 있을 수 있는 위치는 다음과 같습니다.

  • 레지스트리 : NuGet.org 레지스트리와 같은 전역 레지스트리를 예로 들 수 있습니다. 프라이빗 또는 퍼블릭일 수 있는 고유한 레지스트리를 호스트할 수 있습니다. GitHub 및 Azure DevOps 같은 서비스는 프라이빗 레지스트리를 사용 가능하게 만듭니다.
  • 파일 : 로컬 폴더에서 패키지를 설치할 수 있습니다. 고유한 닷넷 라이브러리를 개발하려고 하고 로컬에서 패키지를 테스트하려고 하거나 특정 이유로 레지스트리를 사용하지 않으려는 경우에는 패키지에서 설치하는 것이 일반적입니다.

닷넷 명령어 상세

닷넷 Core CLI에는 매우 많은 명령이 있습니다. 이러한 명령은 패키지 설치, 패키지 작성, 닷넷 프로젝트 초기화 등의 작업에 도움이 됩니다. 허나 모든 명령을 자세히 알 필요는 없습니다. 닷넷을 사용하기 위해선 일부 명령어만 알면 되고 닷넷 사용이 많아질수록 나도 모르게 다양한 범주의 명령을 사용하게 될 겁니다.

기본적으로 “종속성 관리”, “프로그램 실행”, “패키지 작성 및 게시” 쪽의 몇가지 명령어 정도만 숙지하면 좋을 것 같고 모든 명령의 자세한 목록을 보려면 터미널에 dotnet --help를 입력하면 찾아볼 수 있습니다.

패키지 설치 명령어

dotnet add package <dependency name> 명령을 사용하면 애플리케이션의 일부로 사용되어야 하는 일반 종속성을 설치합니다.

폴더에 있는 패키지를 확인하려면 dotnet list package를 입력하면 됩니다.

종속성 복원

프로젝트를 만들거나 복제하는 경우 포함된 종속성은 프로젝트 빌드 시까지 다운로드되거나 설치되지 않습니다. dotnet restore 명령을 실행하여 프로젝트 파일에 지정된 프로젝트 특정 도구뿐만 아니라 종속성도 수동으로 복원할 수 있습니다.

종속성 삭제

패키지가 더 이상 필요없거나 더 나은 패키지를 발견했을때 기존의 패키지는 삭제해야 퍼포먼스에 도움을 줍니다. 이때 어떤 이유로든 사용하지 않는 종속성 또한 삭제되어야 합니다.

프로젝트에서 패키지를 제거하려면 dotnet remove package <name of dependency>와 같이 remove 명령을 사용합니다. 이 명령은 프로젝트의 .csproj 파일에서 패키지를 제거합니다.

최신글

닷넷 프로젝트와 패키지

닷넷과 패키지

닷넷에는 파일 관리, HTTP, 파일 압축에 이르는 모든 것을 처리하는 많은 핵심 라이브러리가 함께 제공됩니다. 타사 라이브러리로 구성된 대규모 에코시스템도 있습니다. 닷넷 패키지 관리자인 NuGet을 사용하여 핵심 라이브러리를 설치하고 애플리케이션에서 사용할 수 있습니다.

닷넷 및 해당 에코시스템은 ‘종속성’이라는 단어를 많이 사용합니다. 패키지 종속성은 타사 라이브러리입니다. 종속성은 특정 기능을 수행하며 애플리케이션에 추가될 수 있는 재사용 가능한 코드 조각입니다. 타사 라이브러리는 애플리케이션이 작동하기 위해 ‘의존’하는 항목이며, 그래서 ‘종속성’이라는 단어를 사용합니다.

타사 라이브러리는 패키지로 간주하며 리포지토리에 저장될 수 있습니다. 패키지는 관련 기능을 활용할 수 있도록 애플리케이션에 추가할 수 있는 하나 이상의 라이브러리로 구성됩니다.

패키지를 설치할지 여부

닷넷 프로젝트에 패키지가 필요할지 몇가지 고려사항입니다.

더 나은 코드 : 예를 들어 보안과 같은 작업을 처리하고 있으며 인증 및 권한 부여를 구현하려고 할때 개발자 데이터와 고객 데이터를 보호하기 위해 정확하게 수행하는 작업입니다. 많은 개발자가 사용하는 라이브러리와 표준 패턴이 있는데 이와 같은 라이브러리는 개발자에게 항상 필요할 수 있는 기능을 구현하고 문제가 발생하면 패치가 적용됩니다. 직접 만드는 대신 이러한 라이브러리를 사용하는 것이 시간도 절약하고 생산성 및 다른 개발자가 알아보기 쉽습니다. 개발을 할때 고려해야 하는 사항이 너무 많기 때문에 직접 코드를 생산하는 것보다 더 나은 선택이 될 수 있습니다.

시간을 절약 : 위에서도 말씀드린 부분인데 유틸리티 라이브러리나 UI 구성 요소 라이브러리와 같은 대부분의 항목을 직접 빌드할 수 있습니다. 하지만 시간이 걸립니다. 직접 빌드한 결과가 사용 가능한 항목과 비슷하더라도, 필요하지 않다면 이 코드를 작성하는 작업을 복제하는 데 시간을 들이지 않는 것이 좋습니다.

유지 관리 : 개발도 중요하지만 유지보수도 중요합니다. 이는 모든 라이브러리 및 앱을 유지 관리해야 하는 것과 같은 맥락인데요. 유지 관리에는 새 기능 추가 및 버그 수정이 포함됩니다. 라이브러리를 유지 관리하는 것이 개발자나 팀의 시간을 잘 활용하는 것은 아닙니다. 오픈 소스 소프트웨어 팀이 유지 관리하게 하는 것이 더 좋다는 건 누구나 아는 사실입니다.

좋은 패키지 선택

라이브러리를 설치하기 전에 라이브러리의 종속성을 검사하는 것이 좋습니다. 이러한 종속성은 패키지를 사용하도록 결정하는 요인이 될 수도, 사용하지 않을 이유가 될 수도 있습니다. 프로젝트의 종속성을 선택할 때 고려할 몇 가지 요소는 다음과 같습니다.

크기 : 너무 큰 패키지 즉, 종속성 수가 많으면 큰 메모리 공간이 생성될 수 있습니다. 대역폭이 제한되거나 다른 하드웨어 제한이 있는 경우 이 요인은 프로젝트가 느려진다던지 하는 문제가 발생할 수 있습니다.

라이선스 : 라이브러리에 부여된 라이선스가 상업적, 개인적, 교육용 등 의도한 모든 용도에 사용해도 되는지 확인이 필요합니다.

활성 유지 관리 : 꼭 필요한 패키지가 있더라도 오랫동안 업데이트되지 않거나 사용되지 않는 패키지는 결국 문제가 될 수 있습니다.

패키지를 설치하기 전에 https://www.nuget.org/packages/<package name>으로 이동하여 패키지에 대해 자세히 알아볼 수 있습니다. 이 URL을 선택하면 패키지의 상세 페이지로 이동합니다. 설치 전에 한번 방문해서 알아보는 습관이 중요합니다.

최신글