웹 애플리케이션을 개발할 때 일반적인 기능이라면 이미 구현된 기능을 가져와서(다운로드해서) 쓰는 것이 직접 개발하는 것보다 관리나 시간적 측면에서 효율적이겠죠?
이미 구현된 기능들을 라이브러리(또는 패키지)라고 하며 프로젝트에서 사용하기 위해 다운로드된 라이브러리의 목록들을 dependency라고 합니다. dependecy의 작동을 위해 dependency가 사용하는 다른 도구들이 있다면 해당 파일도 다운로드하여야 하므로 사용하는 기능들이 많아지면 파일들의 관리가 개발보다 더 힘들어지겠죠. 패키지 매니저는 소프트웨어 개발도구의 설치, 업그레이드 및 구성을 자동화하고 정형화된 방식으로 관리할 수 있게 해 줍니다.
또 다른 장점은 패키지 매니저는 각 dependency의 이름과 버전 정보를 담은 리스트 파일 (장바구니 리스트)을 따로 관리하는 데 이는 여러 개발자가 하나의 애플리케이션에 참여하더라도 각 dependency의 버전 차이에 의해 발생가능한 오류를 사전에 방지해 주며 프로젝트 파일의 전송이 필요한 경우 큰 용량을 차지하는 dependency을 지우고 전송하더라도 설치 명령어를 통해 해당 장바구니 리스트 파일만 실행하면 dependency들을 다시 설치가능하므로 프로젝트를 업로드 또는 다운로드의 속도를 향상해 줍니다.
패키지 매니저들
Maven
Java 프로젝트에 많이 사용되는 패키지 매니저로 pom.xml파일을 장바구니 리스트로 사용합니다.
Gradle
Java, JavaScript 등 다양한 프로젝트에 사용가능한 패키지 매니저로 json형식의 파일을 장바구니 리스트로 사용합니다.
Npm
JavaScript 패키지 매니저로 package.json파일을 장바구니 리스트로 사용하며
dependency들은 node_modules폴더에 저장됩니다.
NuGet
.Net 프레임워크(C#) 패키지 매니저로 packages.config파일(XML 형식)을 장바구니 리스트로 사용합니다.
마이크로소프트답게 dependency의 설치는 아래와 같이 UI를 이용하는 것과 커맨드라인 사용 모두 가능합니다.
이상으로 패키지 매니저에 대해서 알아보았습니다.
참고
Concept of Package manager including its cons and pros (hashnode.dev)
How to Choose Between Package Managers: Maven, Gradle and More | Built In
'웹 개발 알아두기' 카테고리의 다른 글
폴더에서 프로그램 열기 (0) | 2023.08.31 |
---|---|
결제서비스 - 스트라이프 (0) | 2023.05.19 |
환경변수 사용하기 (0) | 2023.01.23 |
Single-Page-Application (0) | 2023.01.19 |
데프리케잇 (0) | 2023.01.08 |