CS

[Package] Package manager

s_omi 2023. 11. 30. 23:49
728x90
반응형
SMALL

우리는 프로젝트를 만들 때 npm과 yarn을 통해서 패키지를 다운받은 후 개발을 시작한다. 이때 npm과 yarn은 패키지 관리자라고 불리는데 패키지 관리자란 무엇일까?

 

패키지 관리자(Package manager)

패키지 관리자는 패키지를 관리하는 작업을 편리하고 안전하게 수행하기 위해 사용되는 툴을 말합니다. 여기서 패키지를 관리하는 작업이란 패키지를 설치, 업데이트, 수정, 삭제하는 작업을 의미합니다.

 

패키지(Package)

라이브러리와 유사하게 코드의 배포를 위해 사용되는 코드의 묶음이라고 생각하면 됩니다. 

패키지는 아래의 정보를 가지고 있는 코드의 배포 단위입니다.

  • 라이브러리
  • 실행 파일
  • 컴파일한 소프트웨어의 바이너리(binary)
  • 환경설정(configuration) 정보 
  • 의존성(dependency) 정보 

 

여기서 의존성이란 하나의 패키지를 동작하기 위해서 필수적으로 필요한 다른 패키지를 의존성이라고 합니다. 따라서 의존성에 해당되는 다른 패키지들을 전부 설치하게 되고 의존성의 의존성을 설치하는 경우가 생기게 되면 하나의 패키지에 대해 수많은 의존성이 존재하게 됩니다. 이럴 땐 사용자가 수동으로 패키지 관리하기가 불가능하기 때문에 각각의 패키지에게 자신의 의존성 정보를 가지게 하여 패키지 관리자가 자동으로 쉽게 설치하도록 하였습니다.

 

패키지 관리자가 하는 일

  • 패키지의 의존성(dependency) 관리
  • 패키지의 보안(신뢰성과 손상되지 않음을 보장) 관리
  • 패키지의 압축 해제
  • 여러 패키지를 기능에 따라 그룹으로 묶어 분류
  • 소프트웨어 저장소(Software repository)로부터 패키지를 찾고, 다운로드, 설치, 업데이트

 

여기서 소프트웨어 저장소는 패키지를 저장하고 관리하는 저장소이며 성능 문제와 위기상황 대처를 위해서 여러 개로 분리되어 있고 각각의 저장소가 동일한 기능을 수행합니다. 소프트웨어 저장소에 대한 위치 정보를 관리하는 환경 설정 파일에 있는 경로를 참고하여 패키지에 접근하는 방식입니다. 

 

 


참고

https://velog.io/@doomchit_3/%ED%8C%A8%ED%82%A4%EC%A7%80-%EB%A7%A4%EB%8B%88%EC%A0%80-Pakage-Manager-%EB%9E%80

728x90
반응형
LIST

'CS' 카테고리의 다른 글

[Network] TCP/IP 프로토콜  (1) 2023.12.02
[Package] npm vs yarn  (1) 2023.12.01
[Network] What is hosting?  (0) 2023.11.29
[Network] DNS and how it work?  (1) 2023.11.28
[Network] What is Domain Name?  (0) 2023.11.27