더북(TheBook)

1.2.6 좋은 모듈화

소프트웨어 시스템이 성장함에 따라 모든 것을 한 컴포넌트나 모듈에 맞추는 것이 어려워진다. 단순한 객체지향 디자인은 대규모 시스템을 공통 목표를 달성하기 위해 서로 상호작용하는 독립적인 컴포넌트들로 나눈다.

시스템을 더 작은 컴포넌트로 나누면 유지보수와 이해가 쉬워진다. 또한 여러 팀이 충돌 없이 개별 컴포넌트를 다룰 수 있도록 도와준다. 작은 컴포넌트는 관리와 테스트가 더 용이하다.

예를 들어 인보이스(Invoice), 청구(Billing), 배송(Delivery)이라는 세 가지 도메인을 가진 소프트웨어 시스템을 생각해보자. 세 도메인은 서로 협력해야 하며, 인보이스와 배송은 청구의 정보를 필요로 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.