엔지니어링을 위한 피지컬 컴퓨팅, 프로그래밍, 데이터 분석을 하는 과정에서 라이브러리, 모듈, 프레임워크의 활용은 필수적인 요소이다. 개발을 하는 사람 입장에서 모든 것을 설계하고 정의하기는 어려기 때문이다. 따라서 전 세계의 똑똑한 석학분들이 세상의 발전을 위해 공개하고 공유한 라이브러리와 모듈, 프레임워크를 활용하게 된다. 세상에는 정말 다양한 라이브러리와 모듈이 존재하고 이를 활용하는 방법 또만 문서로 정리되어 있다.
코딩 공부를 하다보면 라이브러리, 모듈, 프레임워크의 차이를 혼동하게 된다. 본 교사 또한 정의하라고 하면 하지 못하기에 여러 래퍼런스를 참고하여 내가 이해한 3가지의 차이를 설명하려 한다.
어떤 프로젝트를 진행하던 지속적으로 유지, 보수, 업그레이드를 진행하면 단순한 것에서 복잡한 것으로 진화하게 된다. 너무 복잡한 상태에서는 다시 단순함을 목적으로 재설계를 하게 된다. 그런 과정에서 3가지 용어가 자주 등장하게 되며, 이를 명확하게 정의하는 것 또한 중요하다고 생각된다.
라이브러리와 모듈을 이해함에 있어서 선행되어 이해해야 할 지식은 함수와 클래스의 구조이다. 파이썬을 기준으로 이해하면 수월하다.
Module
별도의 파일로 분리된 독립된 기능을 말한다.
그 독립된 기능을 하는 파일 안에는 변수, 함수, 클래스, 매서드(클래스에서 기능,동작에 해당하는 코드 부분) 등을 정의할 수 있습니다.
사용자(개발자)는 다른 개발자가 설계해 놓은 모듈을 Import하여 가져다 사용할 수 있습니다.
Library
(Package)
코드를 작성할 필요 없이 어떤 동작을 수행할 수 있게 도와주는 함수, 매서드, 클래스의 집합니다.
그 어떤 목적이 있는 동작을 수행할 수 있는 기능이 갖추어진 모듈들을 묶어놓은 것을 라이브러리라고 한다.
즉, 모듈을 모아놓은 폴더라고 생각하면 된다.
비유하자면, 어떤 사람이 글을 쓰는데 '공학백과사전'이라는 책을 참고해야 한다. 하지만 거기서 모든 내용을 참고할 필요는 없이 '전자 제품의 원리'만 참고하고 싶다. 여기서 공학백과사전은 하나의 라이브러리가 되고, 전자제품의 원리는 모듈이라 생각하면 된다. 전자제품의 원리 중 다양한 전자 소자의 종류, 법칙들이 쓰여져 있을 것이다. 그 내용을 클래스라고 생각하면 되고, 그 클래스는 다양한 함수, 매서드 등으로 정의되는데 그렇다면 전자 소자의 종류 중 LED의 원리는 하나의 함수가 되는 것이다.
'Peace be with you.'
by Learnmore'