오늘은 맨날 맨날 헷갈리는 각종 용어들을 한 번 정리해놓고자 한다.
1. 라이브러리 (Library)
정의 : 관련된 여러 패키지나 모듈들을 모아놓은 집합
보통 module/package의 상위 개념으로 사용되고, 이런 것들이 publish 되면 library 라고 부른다.
Python에서는 "library"라는 용어가 명확한 기술적 구조를 지칭하기보단, 패키지나 모듈들의 묶음 개념으로 사용된다.
그런데, 솔직히 library는 pakage랑 자주 혼용되는 용어긴 하다.
엄밀히 말하자면 python의 numpy나 pandas도 패키지지만 라이브러리라고 부르기도 하기 때문이다.
그래서 그냥 패키지보다 조금 더 상위 개념으로 더 큰 기능의 집합체라고 이해하는 게 편할 것 같다.
2. 패키지(Package)
정의 : 여러 모듈을 모아놓은 폴더 구조이며, __init__.py 파일이 포함된 디렉토리
패키지 내부에는 여러 모듈(.py 파일) 또는 서브 패키지가 들어있다.
예를 들어, pandas는 하나의 대형 패키지고, 그 안에 여러 서브 패키지와 모듈들이 들어있다.
3. 모듈(Module)
정의: 하나의 .py 파일, 즉 파이썬 코드가 담긴 파일
함수, 클래스, 변수 등을 모아 재사용 가능하게 만든 파일 단위로 특정 작업을 수행하는 독립된 단위이다.
4. 함수(Function)
정의 : 특정 작업을 수행하는 코드 블록, def 키워드로 정의
독립적으로 존재할 수 있으며 (클래스 외부에서도 존재 가능), 특정 작업을 수행하는 코드 블록 자체인데, 메서드 보다는 상위 개념
5. 메서드(Method)
정의 : 클래스 내부에 정의된 함수로 객체를 통해 호출
즉, 메서드는 클래스, 구조체, 열거형 등에 포함되어 있는 함수를 메소드라고 한다.
메서드는 반드시 첫 번째 인자로 self를 받으며, 객체의 상태나 동작에 접근 가능
포함 관계 정리
라이브러리 >= 패키지 >= 모듈 >= 함수 >= 메서드
정리하자면 이런 관계가 될 것 같다.
개념 정의 예시
| 라이브러리 | 패키지나 모듈의 집합 | pandas, scikit-learn |
| 패키지 | 모듈들을 모아둔 폴더, __init__.py 포함 | pandas.core, sklearn.linear_model |
| 모듈 | .py 파일 | math.py, frame.py |
| 함수 | 독립적인 기능 단위 (def) | def sum(a, b): return a + b |
| 메서드 | 클래스 내부 함수 | df.head(), list.append() |
'Python & Code Issue' 카테고리의 다른 글
| [python] poetry 환경에서 pyproject.toml 파일을 requirements.txt 파일로 변환하기 (0) | 2025.06.26 |
|---|---|
| [Python] Vscode에 Github 연동하기 (0) | 2025.04.27 |
| [Python] Konlpy, Mecab 설치 & 사용자 사전 정의 Issue 정리(Window 기준) (0) | 2025.03.03 |
| [AWS s3] Python Boto3의 list_objects_v2를 활용한 s3 데이터 불러오기 (0) | 2025.02.16 |
| [python] Pyspark local 환경 설정 및 AWS S3 데이터 읽기, Window 환경, Error 해결 (2) | 2025.01.25 |