티스토리 뷰

What I Learned

TIL_20220922_Module, Package, PIP

오베르 2022. 9. 22. 20:44

모듈(Module)

- 파이썬에서 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일이다.

 

패키지(Package)

- 패키지(Packages)는 도트(.)를 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있는 방법

- .<모듈 이름> 으로 모듈 속 내용에 접근할 수 있게 하는 네임스페이스

 

pip (Package Installer for Python)

- 파이썬에서 패키지를 관리하는 패키지 매니저

# 패키지설치
$ pip install <패키지 이름>

# 패키지 제거
$ pip uninstall <패키지 이름>

# 설치된 패키지 이름 및 버전 조회
$ pip freeze

# 설치된 패키지들의 목록을 requirements.txt로 덮어쓰며 내보내기
$ pip freeze > requirements.txt

# 설치된 패키지들의 목록을 requirements.txt로 누적하여 내보내기
$ pip freeze >> requirements.txt

# 꺽쇠가 두 개를 사용하면 requirements.txt에 누적하여 추가됩니다.
# 꺽쇠가 하나면 requirements.txt를 현재 패키지 목록으로 덮어쓰며 내보냅니다.

# requirements.txt 한번에 설치
$ cat requirements.txt

 

The Python Package Index

- A repository of software for the Python programming language

- 파이썬 패키지를 쉽게 찾을 수 있는 저장소

 

 

라이브러리

- 기능들을 모듈 혹은 패키지로 만들어 놓은 것

- 미리 준비된 모듈 혹은 패키지

 

프레임워크

- 개념적인 구조

   (an essential supporting structure which other things are built on top of)

- 프로그래밍에서는 개발을 도와주는 하나의 틀

- 웹프레임워크 : 웹 서비스 개발을 위한 프레임워크 ex) Django, Spring, React, etc..

 


정확히 칼처럼 구분되는 개념은 아니다. 개념은 혼용될 수 있다.

장고는 프레임워크이기도 하지만 패키지이다.

장고에서 추가적인 라이브러리 기능이 있기도 하다. 그러한 기능은 패키지이다.

패키지는 모듈을 포함하고 있기도 하나 모듈중에는 패키지가 아닌 것도 있다.

라이브러리와 프레임워크를 구분하는 것도 소모적인 논쟁이다.

 

모듈, 패키지, 라이브러리, 프레임워크 를 사용하는 이유는 시간이라는 자원은 유한하므로 코드를 재활용하여 프로그래밍을 효율적으로 하기 위해서이다.

 

한정적인 컴퓨팅 리소스를 최대로 활용하기 위해 자료구조, 알고리즘이 발전했다

20220921_TIL

 

컴퓨터의 역사와 마찬가지로 컴퓨터 과학에서의 방법론들은 한정적 자원을 효율적으로 쓰이기 위해서 고안되고 있다.


의존성 관리

- 효율적 개발을 위해 코드를 재활용하다보면 각기 코드간에 의존성이 생기게 된다.

- 협업을 할 때에 있어서 이러한 코드가 라이브러리를 바탕으로 짜여진 것이라 하면 코드를 사용하기 위한 라이브러리를 가지고 와야 한다.

 

파이썬에서의 의존성 관리

- 라이브러리를 관리하기 위해서 파이썬에서는 패키지를 requirements.txt 로 내보내 관리한다.

- requirements.txt 로 관리의 한계가 있을 경우에 (개발용과 배포용의 패키지가 다를 경우 등) 의존선 관리도구를 사용한다.

- pip-tools, pipenv, poetry 등이 있다.


 

 

참조 :

점프 투 파이썬 - 05장 파이썬 날개달기 05-3 패키지

파이썬대패키지시대 텍스트파일 하나만 믿어도 정말 괜찮은걸까 - 강민철 - PyCon Korea 2020

Havi.log - Dependency) 의존성 관리란?

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함