본문 바로가기
CS

[Python] 모듈 vs 패키지 vs 라이브러리 + (메소드,컴포넌트,프레임워크) 구분

by KwonSoonBin 2022. 11. 18.

모듈(module)

모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일을 말한다. 다른 파이썬 파일에 저장되어있는 기능(함수,클래스)를 사용할 수 있개끔 만든 파이썬 파일이라고 할 수 있다. (파이썬에서 모듈은 하나의 .py 파일이다.)

하나의 소스 파일에 모든 함수를 작성하지 않고, 기능별로 함수를 나누어 모듈 파일로 구성하면 아래와 같은 장점이 있다. 

  • 프로그램의 효율적인 관리 및 성능 향상
  • 전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소
  • 소프트웨어 시험, 통합, 수정 시 용이성 제공
  • 기능의 분리가 가능, 인터페이스가 단순
  • 오류의 범위를 최소화
  • 모듈의 재사용 가능으로 개발과 유지보수가 용이

이처럼 프로그램 코드를 기능별로 나눠서 독립된 파일에 저장하여 관리하는 방식을 모듈화 프로그래밍이라고 한다.

 

 

패키지

모듈과 클래스를 모아 구조화하고, 모아 놓은 디렉토리(폴더)라고 할 수 있다. 모듈이 하나의 파이썬 파일이라면 패키지는 이러한 파일들을 포함하는 디렉터리(폴더)를 의미한다.

 

파이썬은 일반 디렉터리와 구분하기 위해 디렉터리 내부에 _init_.py 파일을 포함한다. _init_.py 파일을 가지고 있지 않다면 일반 디렉터리를 의미

 

큰 규모의 프로젝트를 진행할 때 여러 모듈이 생성될 수 있는데 서로 관련 있는 모듈&클래스를 패키징 함으로써 관리 및 편의성이 증가시킬 수 있다.

 

 

라이브러리

'도서관' 이라는 이름에서 부터 알 수 있듯이 수 많은 정보(기술)가 담겨있고, 그 중 원하는 책(모듈, 패키지)을 꺼내어 사용할 수 있다. (여러 패키지와 모듈들을 모아둔 장소)

모듈이 프로그램을 구성하는 작은 부품의 느낌이라면, 라이브러리는 자주 사용 되는 로직을 잘 정리한 집합 이라고 할 수 있다.

  • Python pip로 설치한 패키지/모듈 (tensorflow, pandas, numpy, beautifulsoup 등)

종류

표준라이브러리 : 파이썬 설치 시 기본으로 설치&제공되는 라이브러리

외부라이브러리 : 개발자기 필요에 의해 만든 라이브러리

 

라이브러리(패키지의 집합) >= 패키지(모듈의 집합) >= 모듈(클래스 & 함수의 집합)

 

 

프레임워크

프로그래밍에서 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임, 쉽고 빠르게 만들 수 있도록 개발자가 원하는 기능을 담은 일정한 형태와 기능을 갖춘 골격, 뼈대를 의미한다.

애플리케이션 개발 시 필수적인 코드, 알고리즘, DB연동과 같은 기능들을 위해 정해진 뼈대(구조)를 제공하고, 개발자는 이 구조 위에서 개발한다.

 

얼핏 보면 라이브러리와 비슷하다고 생각할 수 있지만 프래임워크는 정해진 규칙(구조) 안에서 움직일 수 있다는 것이 가장 큰 차이점이다. 

  • Spring: Java의 웹 프레임워크
  • Apache 시리즈 (Sling, Structs 2, Wicket 등)
  • JWT
  • Django: Python의 웹 프레임워크
  • Flask: Python의 마이크로 웹 프레임워크
  • Ruby on Rails: Ruby의 웹 프레임워크

 

 

참고 https://wikidocs.net/1418

'CS' 카테고리의 다른 글

[CS] 빅데이터란  (0) 2022.11.18
[Python, CS] 모듈과 컴포넌트의 차이점  (0) 2022.11.18
[Python] 함수와 메소드 차이  (0) 2022.11.18
[CS] 1GB = 1000MB? or 1024MB?  (0) 2022.11.16
[CS] 스토리지 종류 - DAS / NAS / SAN  (0) 2022.11.13

댓글