배우다 보니 모듈은 뭐고 패키지는 뭐고... 궁금증이 생겨 구글링을 해보았다.
하나하나 알아가보니까 결국 비슷한것들이 아닌가?
도대체 이것들의 차이가 무엇인가?
라는 궁금증에 휩싸이게 된것이다!
모듈이란 프로그램을 구성하는 구성요소 => 프로그램 기능의 일부분을 분리한 코드 덩어리들!
즉, 파이썬으로 얘기하자면 .py확장자로 끝나는 파일들은 그냥 다 모듈이라고 보면된다..ㅎ
여기서 modular programming 이라는 말을 들어 봤을텐대,
이말은 프로그램밍을 구현할때, 필요한 기능들을 따로 분리해둔다는 의미이다.
왜냐?
한 파일에 만줄된 코드가 있으면...? 어떻게 쉽게 에러를 찾고 읽고 협업을 하겠는가?
가독성을 높이고, 오류범위를 최소화하며 협업이쉽게 이루어질수 있게 효율적 관리를 위한 필수적 방법이다!
패키지는 뭔데?
패키지는 좀더 크게 생각하면 된다.
규모가 큰 앱을 개발하다보면 모듈만으로는 관리가 어려워지는데(파일의 크기가 크기 때문), 이러한 모듈을 다시 그룹핑하고 정리해준것이 패키지다.
즉, 모듈을 모아놓은 특정 디렉토리라고 보면 된다.
폴더안에 폴더를 사용해서 파일을 분리하는 방식과 동일하게 모듈을 분리할 수 있지만, 일반 디렉토리가 아닌 패키지임을 인식하기 위해선 각 폴더마다 init.py라는 파일을 생성해야한다.
파이썬에서는 라이브러리란 파이썬패키지의 의미와 상통한다고 보는데, (패키지 안의 sub패키지 생성이 가능하지만) 구체적으로는 패키지의 집합체가 라이브러리라고 생각하면 된다.
개발자들이 커뮤니티에 재사용한 코드를 모아둔 라이브러리를 임포트하여 가져다 쓰면 훨씬 편리하여 많이 사용한다.]
제일 헷갈렸던게 이점이였는데 이제 확실히 알겠다.
그냥 library 나 framework나 여러개의 재사용가능한 모듈과 패키지를 모아둔 코드 집합체이다.
차이점은 :
library => 특정 operation을 수행할 수 있는 패키지들을 개발자가 원할때 필요해 의해 가져다 쓰는것.
framework => 라이브러리와 동일하지만 + 앱의 아키텍쳐와 동작의 기본인 flow까지 포함 :: 프레임워크에 정해둔 틀과 문법안에서 필요한 코드를 작성한다.
참고한 사이트를 첨부한다
:https://etloveguitar.tistory.com/138