모듈 vs 패키지 vs 라이브러리 vs 프레임워크
모듈
- 프로그램을 구성하는 소스코드가 들어 있음 (ex. function)
- 한 번 잘 만들어 놓은 모듈은 불러와서 재사용이 가능 (by import)
- 즉, import ~~~ 요렇게 가져오는 파일들은 모두 모듈
EX) 구구단 2단을 출력하는 소스코드가 들어 있는 한 파일 = 모듈
패키지(Package)
- 여러 모듈의 묶음이다.
- 특정 기능과 관련된 여러 모듈을 하나의 상위 폴더에 넣은 것
- "외부 패키지"란 외부 라이브러리에 있는 패키지를 의미
EX)
- 구구단 2~9단을 출력하는 소스코드가 각각 들어 있는 8개의 파일(모듈)을 묶어 놓은 => 패키지
- node.js 에서 npm 받아서 사용함 (npm = node package manager)
- Linux에서 apt (ex. apt-get ...)
프레임워크(Framework)
- 여러 패키지를 모아 하나의 프로그램을 구동할 수 있는 묶음이다.
- 폴더 트리가 존재 (정해진 폴더 안에서 작업을 해야 프로그램이 돌아간다)
EX) 리액트 - frontend framework ( react, react-dom, babel, webpack..etc.. )
- facebook 이 react, react-dom 만듬 그 외는 다른 개발자들 !
- Django(Python) , Spring(Java) ..
라이브러리(Library)
- 패키지와 모듈의 묶음
- 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것 (바로 실행 가능)
- 비휘발성 자원의 모임 - 구성 데이터, 문서, 도움말, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스 값, 자료형 등등이 포함된다.
- 표준 라이브러리(기본) + 외부 라이브러리(개발자가 필요에 의해 개발) 존재
- 회사, 개인, 단체 개발자들이 다양한 목적으로 수많은 라이브러리들을 개발하고 배포 -> 잘 쓰면 시간과 노력이 절약된다.
EX)
- 수학 풀이 프로그래밍 모음 라이브러리 => 안에 구구단 패키지 => 안에 2단 출력하는 모듈
references: