모듈, 패키지, 라이브러리, 프레임워크란?

2023. 7. 5. 11:16· CS 지식
목차
  1. 모듈
  2. 패키지
  3. 라이브러리
  4. 프레임워크
반응형

모든 설명의 기준은 파이썬 기준으로 하는 게 설명이 편할 것 같다.

프로세스를 단순화하고 더 효과적으로 만들기 위해 개발자는 대규모 코딩 작업을 더 작고 관리하기 쉬운 하위 작업으로 나누는 방법인 모듈식 프로그래밍을 활용하는데, 이것이 Python에 많은 모듈, 패키지, 라이브러리 및 프레임워크가 있는 이유이다.

 

모듈

정의

  • 모듈이란 .py 파일 하나하나를 의미한다. 예를 들어 날씨 데이터를 이용해 지도로 날씨 데이터를 표기한다고 했을 때main.py, weather.py, map.py 등으로 파일을 하나하나 나누고 main.py에서 각 python 파일들을 불러온다고 생각해보자. 그렇다면 weather.py, map.py 파일들이 모듈인 것이다.
  • 즉, 모듈이란 파일 자체로도 실행 가능하고, 불러와서 변수,함수,클래스 등을 활용할 수도 있는 단위라고 생각하면 편할듯하다. 

 

예시

  • random
  • datetime

 

패키지

정의

  • 패키지는 모듈만으로 개발을 하는 것이 관리적 측면에서 어려워 모듈들을 그룹화 하고 조직화한 모듈 모음이라고 보면 될것같다.
  • 기능적으로 유사한 모듈들을 모아놓은 것이라고 봐도 된다.
  • 보통 계층(폴더) 구조로 __init__.py 파일을 이용해 각 폴더를 인식합니다.
  • 패키지 하위에는 패키지가 들어가기도 한다.

https://learnpython.com/blog/python-modules-packages-libraries-frameworks/

 

예시

  • numPy
  • pandas

 

라이브러리

정의

  • 모듈이 main.py를 구성하는 단위라고 생각하면 라이브러리는 이런 모듈이 잘 작동할수 있고, 모듈을 편리하게 작동하기 위한 코드들의 집합이라고 생각하면 된다. 또한 패키지는 모듈의 모음인 반면 라이브러리는 패키지의 모음이라고 가정하는 경우가 많다.(물론 100% 그렇다는 것은 아님) 
  • 또 다르게는 재사용 가능한 코드 덩어리를 가리키는 포괄적인 용어로 사용하기도 한다. 
  • 예를 들면 weather.py와 map.py를 연동해서 지역 별 날씨 데이터를 간단한 img 파일로 표시 해주는 라이브러리가 이미 구성되어 있을 때 개발자는 라이브러리를 불러와 이미 구성되어 있는 weather class 와 map class 를 라이브러리를 이용하여 연동하게 될수도 있을 것 같다.

 

예시

  • pygame
  • pyTorch

 

프레임워크

정의

  • 라이브러리와 비슷하게 프레임워크는 프로그래머가 개발 프로세스를 빠르게 진행하는 데 도움이 되는 모듈 및 패키지 모음이다. 허나 프레임워크는 일반적으로 라이브러리보다 더 복잡하다.
  • 프로그래머가 원하는 기능을 개발할 수 있도록 일정 형태와 기능을 갖춘 뼈대라고 생각하면 된다.
  • 프레임워크는 응용 프로그램의 기본 흐름과 아키텍처가 포함 되어 있다.
  • 예를 들어 주택을 구축한다고 가정했을 때 라이브러리는 설계도, 골조, 벽, 창 및 지붕 등의 세세한 부분까지 신경 써 건설해야하지만 프레임워크를 사용하게 되면 세세한 부분은 이미 구축 되어 있고 집의 가구 배치, 가전 제품 등등만 신경쓰면 된다.

 

예시

  • Django
  • Flask
  • FastAPI

 

 

 

[참조] : 

https://blckchainetc.tistory.com/entry/%EB%AA%A8%EB%93%88-vs-%ED%8C%A8%ED%82%A4%EC%A7%80-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-vs-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

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
  1. 모듈
  2. 패키지
  3. 라이브러리
  4. 프레임워크
'CS 지식' 카테고리의 다른 글
  • 옵트 인(opt-in) / 옵트 아웃(opt-out)이란?
  • 메시지 큐란?
  • 쿠키, 토큰, 세션이란?
  • GB, GiB ( 기비바이트 ) 란?
Nowon9159
Nowon9159
반응형
Nowon9159
Nowon의 블로그
Nowon9159
전체
오늘
어제
  • DevOps Engineer (177) N
    • DevOps (7)
    • 서버 관리 (4)
      • 운영체제 (3)
      • 터미널 (0)
    • 프로그래밍 (13)
      • Python (11)
      • JavaScript (2)
      • Vue.js (0)
    • Cloud (6)
      • AWS (6)
      • NAVER Cloud (0)
    • Network (7)
      • Service Mesh (1)
    • CICD (0)
      • Git (0)
      • Jenkins (0)
      • Ansible (0)
    • IaC (0)
      • Terraform (0)
      • Helm (0)
    • Containers (3)
      • Docker (1)
      • Kubernetes (2)
    • 모니터링 (0)
      • 인프라 모니터링 (0)
      • 어플리케이션 모니터링 (0)
      • 로그 관리 (0)
    • DB (0)
      • MongoDB (0)
    • 자격증 (54)
      • 정보처리기사 (0)
      • AWS SAA (26)
      • AWS SAP (22)
      • AWS DOP (0)
      • Kubernetes CKA (4)
      • AWS SOA (2)
    • CS 지식 (47)
    • 책, 강의 (5)
    • 스터디 (12) N
      • k8sd (0)
      • Istio Hands-on Study (12) N
    • 기타 (14)
      • Problem Solve (4)
      • 사담 (4)
      • 토이프로젝트 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로거 소개 글

인기 글

태그

  • 파이썬
  • 코딩
  • k8s
  • SAA-C03
  • DevOps
  • 스터디
  • github
  • 이스티오
  • 가시다
  • gasida
  • SAP-C02
  • PYTHON
  • 문제 풀이
  • 책
  • cloud@net
  • 개발자
  • 티스토리챌린지
  • 토이프로젝트
  • 오블완
  • DevOps 엔지니어
  • CKA
  • 부트캠프
  • Practice
  • 자격증
  • 클라우드넷
  • familiar
  • Kubernetes
  • AWS
  • 쿠버네티스 인 액션
  • istio

최근 댓글

최근 글

글 보관함

hELLO · Designed By 정상우.v4.2.2
Nowon9159
모듈, 패키지, 라이브러리, 프레임워크란?
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.