모듈화는 프로그램을 작은 단위로 분할하는 개념입니다. 각각의 모듈은 특정 기능을 수행하는 코드의 집합이며, 독립적으로 개발 및 테스트, 유지보수를 할 수 있습니다. 모듈화를 통해서 코드의 재사용성, 가독성, 유지보수성을 향상 시킬 수 있습니다. 언리얼에서 대표적으로 게임 플레이 기능 단위의 모듈화인 컴포넌트(Component) 와 코드 레벨, 프로젝트 구조 차원의 모듈화인 모듈시스템("Core", "CoreUObject", "Engine", "InputCore", ...)이 있습니다.
모듈화 프로그래밍의 이점
모듈화는 코드의 재사용성과 유지보수성을 크게 향상시킵니다. 인터페이스를 통해 모듈 간의 상호 작용을 명확히 할 수 있고 소프트웨어의 확장성도 모듈화를 통해 개선됩니다. 독립적으로 작동하기에 새로운 기능을 추가하거나 기존 기능을 수정할 때 전체 시스템을 변경하지 않고도 필요한 모듈만을 업데이트 할 수 있으며 한 모듈의 오류가 다른 모듈로 전파될 가능성이 낮기에 개발 과정의 오류를 줄이는 데에도 기여합니다.
모듈화 프로그래밍의 주의
모듈화 프로그래밍은 인터페이스와 구현의 분리 원칙을 적용하여 모듈간 결합도를 낮추고 의존성을 최소화하는 것을 지향합니다. 각 모듈이 독립적으로 개발되고 테스트 될 수 있도록 해야 모듈화 프로그래밍의 이점을 크게 살릴 수 있기 때문입니다. 모듈 역시 단일 책임 원칙(SRP)을 따라 하나의 주요 역할 또는 기능 단위를 담당해야 하며, 역할이 많아지면 응집도가 떨어지고 결합도가 높아질 수 있습니다.
'Software Engineering > Software Development Principles' 카테고리의 다른 글
응집도 (Cohesion) (0) | 2025.06.15 |
---|---|
결합도 (Coupling) (5) | 2025.06.14 |
칸반 보드 (Kanban Board) (0) | 2025.06.12 |
Dead Lock ( 교착 상태 ) (0) | 2025.05.27 |
Hash Code (해시 코드) (0) | 2025.05.26 |