Skip to content

Latest commit

 

History

History
39 lines (26 loc) · 1.71 KB

2.md

File metadata and controls

39 lines (26 loc) · 1.71 KB

모듈화란?

모듈화

모듈화는 프로그램을 기능 단위로 독립적인 부분으로 분리하는 과정이다. 이는 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 것을 의미한다.

모듈의 특징

  • 모듈은 독립적인 프로그램, 함수, 또는 메소드일 수 있다.
  • 다른 것들과 명확하게 구분되고 독립적인 기능을 수행해야한다.
  • 유일한 이름을 사용하여 식별 가능해야한다.
  • 다른 프로그램이나 모듈에서 호출하여 사용 가능해야한다.
  • 재사용 가능하고 독립적으로 컴파일 가능해야한다.
  • 다양한 형태로 존재할 수 있으며, 함수, 추상화된 자료, 객체, 메소드 등이 해당된다.

모듈화의 장점

  • 프로그램 복잡도 감소 및 프로젝트 흐름 이해 용이성 증가
  • 변경 용이성 향상, 모듈 간 영향력 최소화
  • 오류 감소 및 파급효과 최소화
  • 유지보수 효율성 향상 및 프로그램 효율적 관리 가능

모듈 분리 방법

처음의 호기심

  • 모듈이 작으면 작을수록 좋은가?
    • 아니다. 작은 모듈은 모듈의 개수 증가와 통신 횟수 증가로 인해 과부화와 복잡도 증가 가능성이 있다.

좋은 모듈의 특징

  • 모듈 간 결합은 느슨하게, 모듈 내 구성 요소 간 응집도는 강하게
  • 모듈 간 관련성 최소화하여 모듈 간 영향 최소화
  • 모듈이 제대로 실행되어야하고 변경이 용이하며 해석이 쉬워야한다.

클린 소프트웨어 저자 로버트 마틴의 말:

"모든 모듈은 제대로 실행되어야하고 변경이 용이해야하며 해석이 쉬워야한다."