닷넷과 패키지
닷넷에는 파일 관리, HTTP, 파일 압축에 이르는 모든 것을 처리하는 많은 핵심 라이브러리가 함께 제공됩니다. 타사 라이브러리로 구성된 대규모 에코시스템도 있습니다. 닷넷 패키지 관리자인 NuGet을 사용하여 핵심 라이브러리를 설치하고 애플리케이션에서 사용할 수 있습니다.
닷넷 및 해당 에코시스템은 ‘종속성’이라는 단어를 많이 사용합니다. 패키지 종속성은 타사 라이브러리입니다. 종속성은 특정 기능을 수행하며 애플리케이션에 추가될 수 있는 재사용 가능한 코드 조각입니다. 타사 라이브러리는 애플리케이션이 작동하기 위해 ‘의존’하는 항목이며, 그래서 ‘종속성’이라는 단어를 사용합니다.
타사 라이브러리는 패키지로 간주하며 리포지토리에 저장될 수 있습니다. 패키지는 관련 기능을 활용할 수 있도록 애플리케이션에 추가할 수 있는 하나 이상의 라이브러리로 구성됩니다.
패키지를 설치할지 여부
닷넷 프로젝트에 패키지가 필요할지 몇가지 고려사항입니다.
더 나은 코드 : 예를 들어 보안과 같은 작업을 처리하고 있으며 인증 및 권한 부여를 구현하려고 할때 개발자 데이터와 고객 데이터를 보호하기 위해 정확하게 수행하는 작업입니다. 많은 개발자가 사용하는 라이브러리와 표준 패턴이 있는데 이와 같은 라이브러리는 개발자에게 항상 필요할 수 있는 기능을 구현하고 문제가 발생하면 패치가 적용됩니다. 직접 만드는 대신 이러한 라이브러리를 사용하는 것이 시간도 절약하고 생산성 및 다른 개발자가 알아보기 쉽습니다. 개발을 할때 고려해야 하는 사항이 너무 많기 때문에 직접 코드를 생산하는 것보다 더 나은 선택이 될 수 있습니다.
시간을 절약 : 위에서도 말씀드린 부분인데 유틸리티 라이브러리나 UI 구성 요소 라이브러리와 같은 대부분의 항목을 직접 빌드할 수 있습니다. 하지만 시간이 걸립니다. 직접 빌드한 결과가 사용 가능한 항목과 비슷하더라도, 필요하지 않다면 이 코드를 작성하는 작업을 복제하는 데 시간을 들이지 않는 것이 좋습니다.
유지 관리 : 개발도 중요하지만 유지보수도 중요합니다. 이는 모든 라이브러리 및 앱을 유지 관리해야 하는 것과 같은 맥락인데요. 유지 관리에는 새 기능 추가 및 버그 수정이 포함됩니다. 라이브러리를 유지 관리하는 것이 개발자나 팀의 시간을 잘 활용하는 것은 아닙니다. 오픈 소스 소프트웨어 팀이 유지 관리하게 하는 것이 더 좋다는 건 누구나 아는 사실입니다.
좋은 패키지 선택
라이브러리를 설치하기 전에 라이브러리의 종속성을 검사하는 것이 좋습니다. 이러한 종속성은 패키지를 사용하도록 결정하는 요인이 될 수도, 사용하지 않을 이유가 될 수도 있습니다. 프로젝트의 종속성을 선택할 때 고려할 몇 가지 요소는 다음과 같습니다.
크기 : 너무 큰 패키지 즉, 종속성 수가 많으면 큰 메모리 공간이 생성될 수 있습니다. 대역폭이 제한되거나 다른 하드웨어 제한이 있는 경우 이 요인은 프로젝트가 느려진다던지 하는 문제가 발생할 수 있습니다.
라이선스 : 라이브러리에 부여된 라이선스가 상업적, 개인적, 교육용 등 의도한 모든 용도에 사용해도 되는지 확인이 필요합니다.
활성 유지 관리 : 꼭 필요한 패키지가 있더라도 오랫동안 업데이트되지 않거나 사용되지 않는 패키지는 결국 문제가 될 수 있습니다.
패키지를 설치하기 전에 https://www.nuget.org/packages/<package name>
으로 이동하여 패키지에 대해 자세히 알아볼 수 있습니다. 이 URL을 선택하면 패키지의 상세 페이지로 이동합니다. 설치 전에 한번 방문해서 알아보는 습관이 중요합니다.