모듈(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의 웹 프레임워크
'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 |
댓글