반응형
모든 설명의 기준은 파이썬 기준으로 하는 게 설명이 편할 것 같다.
프로세스를 단순화하고 더 효과적으로 만들기 위해 개발자는 대규모 코딩 작업을 더 작고 관리하기 쉬운 하위 작업으로 나누는 방법인 모듈식 프로그래밍을 활용하는데, 이것이 Python에 많은 모듈, 패키지, 라이브러리 및 프레임워크가 있는 이유이다.
모듈
정의
- 모듈이란 .py 파일 하나하나를 의미한다. 예를 들어 날씨 데이터를 이용해 지도로 날씨 데이터를 표기한다고 했을 때main.py, weather.py, map.py 등으로 파일을 하나하나 나누고 main.py에서 각 python 파일들을 불러온다고 생각해보자. 그렇다면 weather.py, map.py 파일들이 모듈인 것이다.
- 즉, 모듈이란 파일 자체로도 실행 가능하고, 불러와서 변수,함수,클래스 등을 활용할 수도 있는 단위라고 생각하면 편할듯하다.
예시
- random
- datetime
패키지
정의
- 패키지는 모듈만으로 개발을 하는 것이 관리적 측면에서 어려워 모듈들을 그룹화 하고 조직화한 모듈 모음이라고 보면 될것같다.
- 기능적으로 유사한 모듈들을 모아놓은 것이라고 봐도 된다.
- 보통 계층(폴더) 구조로 __init__.py 파일을 이용해 각 폴더를 인식합니다.
- 패키지 하위에는 패키지가 들어가기도 한다.
예시
- numPy
- pandas
라이브러리
정의
- 모듈이 main.py를 구성하는 단위라고 생각하면 라이브러리는 이런 모듈이 잘 작동할수 있고, 모듈을 편리하게 작동하기 위한 코드들의 집합이라고 생각하면 된다. 또한 패키지는 모듈의 모음인 반면 라이브러리는 패키지의 모음이라고 가정하는 경우가 많다.(물론 100% 그렇다는 것은 아님)
- 또 다르게는 재사용 가능한 코드 덩어리를 가리키는 포괄적인 용어로 사용하기도 한다.
- 예를 들면 weather.py와 map.py를 연동해서 지역 별 날씨 데이터를 간단한 img 파일로 표시 해주는 라이브러리가 이미 구성되어 있을 때 개발자는 라이브러리를 불러와 이미 구성되어 있는 weather class 와 map class 를 라이브러리를 이용하여 연동하게 될수도 있을 것 같다.
예시
- pygame
- pyTorch
프레임워크
정의
- 라이브러리와 비슷하게 프레임워크는 프로그래머가 개발 프로세스를 빠르게 진행하는 데 도움이 되는 모듈 및 패키지 모음이다. 허나 프레임워크는 일반적으로 라이브러리보다 더 복잡하다.
- 프로그래머가 원하는 기능을 개발할 수 있도록 일정 형태와 기능을 갖춘 뼈대라고 생각하면 된다.
- 프레임워크는 응용 프로그램의 기본 흐름과 아키텍처가 포함 되어 있다.
- 예를 들어 주택을 구축한다고 가정했을 때 라이브러리는 설계도, 골조, 벽, 창 및 지붕 등의 세세한 부분까지 신경 써 건설해야하지만 프레임워크를 사용하게 되면 세세한 부분은 이미 구축 되어 있고 집의 가구 배치, 가전 제품 등등만 신경쓰면 된다.
예시
- Django
- Flask
- FastAPI
[참조] :
https://etloveguitar.tistory.com/138
https://learnpython.com/blog/python-modules-packages-libraries-frameworks/
반응형
'CS 지식' 카테고리의 다른 글
옵트 인(opt-in) / 옵트 아웃(opt-out)이란? (0) | 2023.07.07 |
---|---|
메시지 큐란? (0) | 2023.07.05 |
쿠키, 토큰, 세션이란? (0) | 2023.07.03 |
GB, GiB ( 기비바이트 ) 란? (0) | 2023.06.26 |
PDU(Protocol Data Unit)란? (0) | 2023.06.26 |