Skip to content

Commit e883bd1

Browse files
authored
Merge pull request #7 from soo-ni/sooni
Add etc folder and package manager
2 parents 67dcd32 + e4626aa commit e883bd1

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

etc/Package Manager.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Package Manager?
2+
3+
패키지 매니저란, 패키지를 다루는 작업(설치, 업데이트, 수정, 삭제)을 편리하고 안전하게 수행하기 위해 사용되는 툴이다.
4+
5+
## Package
6+
7+
* 라이브러리와 유사한 개념
8+
9+
* 라이브러리: **코드의 작성**을 위해 사용되는 코드의 묶음
10+
* 패키지: **코드의 배포**를 위해 사용되는 코드의 묶음
11+
12+
* 일반적으로 라이브러리나 실행파일(executable)을 포함
13+
14+
* 3가지 정보를 가지고 있는 코드의 배포단위
15+
16+
* 컴파일한 소프트웨어의 바이너리
17+
18+
* 환경설정(configuration)에 관련된 정보
19+
20+
* 의존(dependency)에 관련된 정보
21+
22+
> Dependency?
23+
>
24+
> * 기존 패키지를 제대로 동작시키기 위해 필요한 다른 패키지
25+
> * 패키지를 사용하고자 할 때 dependency에 해당되는 다른 패키지들은 전부 설치해야함
26+
> * dependency hell: dependency의 dependency를 설치하는 경우가 끊임없이 이어질 경우, 사용자가 수동으로 패키지를 관리하기가 불가능에 가까운 상황
27+
> * 각각의 패키지가 자신의 dependency에 대한 정보를 가지게 한다면, 사용자가 사용하고자 하는 패키지의 dependency를 패키지 매니저를 통해 쉽게 설치하도록 도울 수 있다.
28+
29+
## Package manager
30+
31+
- 패키지 매니저는 운영체제와 프로그래밍 언어에서 사용되는 툴이다.
32+
- Ubuntu 운영체제의 apt(Advanced Package Tool)가 대표적인 운영체제 패키지 매니저의 예다.
33+
- 예를 들어 콘솔을 사용한 sudo apt-get install 명령어를 통해 패키지를 설치할 수 있다.
34+
- Python과 PHP, Node.js 등 많은 프로그래밍 언어들은 각각 자신만의 패키지 매니저와 software repository를 가지고 있다.
35+
- 여러 종류의 패키지 매니저와 software repository를 가진 언어도 존재한다. (Node.js, Java, Ruby...)
36+
37+
### 수행하는 일
38+
39+
1. 패키지의 dependency 관리
40+
2. 패키지의 보안 관리 - 신뢰(authenticity), 무결성(integrity)
41+
3. 여러 패키지를 기능에 따라 그룹으로 묶어 정리
42+
4. 패키지 압축 해제
43+
5. Software repository로부터 패키지를 검색, 다운로드, 설치, 업데이트
44+
45+
### Package manager example
46+
47+
| Language | Package manager | Software repository |
48+
| -------- | ----------------- | ------------------- |
49+
| Python | pip | PyPI |
50+
| PHP | Composer | Packagist |
51+
| Node.js | NPM, Yarn | NPM, Yarn |
52+
| Java | Maven, Gradle | Maven |
53+
| Ruby | RubyGems, Bundler | RubyGems, Bundler |
54+
55+
56+
57+
### 참고
58+
59+
* https://aahc.tistory.com/14

0 commit comments

Comments
 (0)