페이지

Include Lists

2017년 3월 9일 목요일

NuGet이란?



 What
   - NuGet, Package 란 무엇인지에 대해 개념 정립

 Why
   - NuGet, CMake등의 환경설정하기 위한 Tool들에 대한 학습이 필요하기 때문.


NuGet이란?
NuPack 기반의 NuGet free and open-source package manager desigend for the MS developer platform 이다.
.Net 프레임워크를 위한 소스코드 관리자이다. ( 소스코드 관리자라고 하는지는 뒤에서 설명한다.)
C# 기반으로 시작되어, 2013 부터 native c++ 프로젝트를 지원하면서 visual studio에서 가장 대표적인 오픈소스 지원 프로젝트
2010부터 시작되어, 2012 vs 버전 부터는 기본설치로 제공 되었음.
NuGet visual studio add-in 으로서, .net 기본으로 하여, c++, cross-platform 지원 등을 통해, 범위를 넓혀 다양한 오픈소스 프로젝트들을 지원함으로서, NuGet Eco-System 구축해 나아가고 있다.

NuGet Eco-System
NuGet 장점을 소스코드나 결과물을 이용하는 , 환경 설정을 자동으로 해준다는 측면이 있는게 아니라, 기본적으로 오픈소스를 활발히 운영하기 위해 필요한 기본적인 것들을 무료로 제공하는 것을 Nuget Eco-System이라는 것으로 지원하고 있다.
개발자들이 편하게 사용할 있도록 Open-Source 제공, Source code Repository, 커뮤니티, 
비주얼 스튜디오와 연결된 오픈소스 툴, 온오프라인 컨퍼런스 등의 토털 셋을 제공하고 있다.

NuGet Eco-System

출처: <https://www.codeproject.com/reference/628210/an-overview-of-the-nuget-ecosystem>


Package Manager - Package Manager System 이란 무엇인가.

"Collection of software tools" 이다.
OS 따른, SW개발에 필요한 모든 기능들, 설치, 업그레이드, 설정, 제거 등을 자동으로 관리해주는 .
이러한 시스템은, 기존의 SW 또는 라이브러리의 수동 설치 수동 업데이트를 개선하기 위해 고안되었다, 오픈소스 라이브러리 또는 프로젝트를 추가할 필요한, 일련의 설정을 하는 동작(link, include )들을 자동으로 관리한다새로운 버전이 나와도, 원클릭으로 추가 작업없이 설정이 가능하다.

Package ?

이러한 관리가 가능한 이유는, Package 해당 필요한 정보들이 모두 기술되어져 있기 때문이다.
Package 이러한 기능을 실행하는데 필요한 파일(소스코드, 라이브러리, 예제, 버전등의 기본정보)들을 담고 있는 것을 말한다. ".nupkg"라는 확장자로 사용된다.
nupkg 파일 안에, 빌드에 필요한 모든 정보가 들어 있다. 그렇기 때문에, 해당 프로젝트에서는 어떠한 추가 설정 없이, install만으로 빌드 , 라이브러리 설정들이 자동으로 설정이 되어진다.

그렇다면 많은 Package들을 어디서 어떻게 설치하고, 관리되고 있을까?

NuGet Gallery

NuGet 패키지를 검색//다운로드가 가능한 웹페이지.

7만여개의 프로젝트가 80만개의 프로젝트 패키지로서 관리가 되고 있고주당 평균 5천만건의 다운로드가 발생




   






















이번에는 NuGet 대한 기본적으로 개념을 알아 보았다.


다음번엔 Package 설치하는 방법에 대해서 알아 보겠다.

사실 Package를 한번 만들어보고 다운로드 받아보면, 실제로 어떤 동작을 하는지 정확히 알 수 있다.

    - http://www.kodb.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=39&dbnum=175916&mode=detail&type=techreport
     - https://en.wikipedia.org/wiki/NuGet

댓글 없음:

댓글 쓰기