모듈(Module)/모듈화(Modularization)프로그래밍
모듈 Module 이란?
개발을 하면서 모듈화 프로그래밍의 중요성에 대해 한번쯤은 들어본 적이 있을 것이다.
모듈이란 무엇이며, 모듈화가 왜 중요한 걸까?
다음은 네이버에서 모듈(module)을 검색했을 때 나오는 결과이다.
프로그램의 기능을 독립적인 부품으로 분리한 것을 모듈이라고 한다. 일반적으로 서브루틴과 데이터 구조의 집합체로서, 그 자체로서 컴파일 가능한 단위이며, 재사용 가능하고 동시에 여러 다른 모듈의 개발에 사용될 수 있다.
무슨 말인지 알 것 같긴 한데.... 모듈에 대해 처음 접한다면 알듯말듯 한 설명이다.
쉽게 말하면, 모듈이란 특정 기능별로 나누어지는 프로그램 덩어리 라고 할 수 있다.
우리가 몇만줄의 코드를 짜야 한다고 할 때, 모든 코드를 한 파일에 작성한다면?
몇만줄의 코드를 일일히 읽기란 자신이 짠 코드라도 매우 힘든 일이며, 더군다나 다른 개발자가 코드를 읽어야 하는 상황에서는 효율성이 떨어질 것이다. 자연히 코드의 유지보수와 재사용은 불가능에 가까워진다.
우리는 항상 효율적인 코드를 짜고 효율적인 프로그램을 만들기 위해 노력해야한다.
이때 필요한 것이 모듈, 모듈화 프로그래밍이다.
모듈화가 제대로 된 프로그램을 짠다면 나뿐만 아니라 다른 사람들이 필요한 기능을 구현할 때 유용하게 사용될 수 있다. 언어 자체적으로 모듈을 제공하는 언어로는 대표적으로 파이썬, 루비, 포트란 등이 있다.
예시로, 파이썬을 이용해 개발하는 경우 난수와 관련된 기능을 사용하기 위해 다음과 같은 코드를 쓰는 것을 본 적이 있을 것이다.
import random
이 코드는 random이라는 모듈을 가져와 사용하겠다는 의미로, random.py라는 파일을 읽어오게 된다. 이렇게 자주 사용하는 클래스와 함수들을 모듈화 하여 프로그래밍 하는 것을 모듈화 프로그래밍이라 한다. 모듈화가 잘 된 프로그램은 추후에 코드를 재사용하기가 매우 용이하며, 또한 코드를 유지 보수 해야 할 경우 모듈화가 필수적이다.
비슷한 개념으로 관련 함수와 클래스,로직등을 함께 모아놓은 라이브러리(Library)가 있다.