2025-08-03 09:33
Status:
Tags: 소프트웨어 공학
모듈화(Modularity)
모듈화는 복잡한 시스템을 독립적으로 기능하는 작은 단위들로 분리하는 원칙이다. 한 번에 해결하기 어려운 문제를 해결할 수 있는 작은 단위로 쪼개서 하나씩 정복하는 것 (분할 정복) 이다. 이럴 경우 크게 3가지 장점이 있다.
- 첫째, 재사용하기 좋아지고
- 둘째, 작은 단위 각각을 정복하여 복잡도를 통제할 수 있으며
- 셋째, 각 모듈을 블록처럼 쌓아 전체 시스템을 만들 수 있다.
예컨대 리액트의 경우 컴포넌트( 리액트 컴포넌트 ) 단위로 코딩하고 이를 마치 블록 쌓듯이 코딩한다. 난폭하게 표현하면 커스텀 html 태그를 만들어 여러 곳에서 사용한다고도 말할 수 있다. 이상적으로 컴포넌트는 독립적이고 가장 작은 단위로 만들며 여러 곳에서 재사용할 것을 염두하여 작성한다. 이러한 방식은 모듈화의 원칙이 매우 잘 적용된 예시라고 할 수 있다.
일상 생활에서 직접 PC를 조립한다면 이는 모듈화의 예시라 할 수 있다. 일반적으로 노트북을 산다면 모든 부품들이 하나의 노트북으로 합쳐져 추상화 되어있다. 그러나 만약 직접 PC를 조립한다면 모니터, 키보드, CPU, GPU, 메인보드, RAM. 쿨러, 전원장치 등 각각의 독립적인 부품들을 모아서 하나의 전체 PC를 만든다. 이 경우 원하면 각 부품을 독립적으로 추가하거나 교체할 수 있다. 즉 각각의 독립적인 단위들을 조립하여 하나의 시스템을 만드는 모듈화의 예시라 할 수 있다.