패키지 설계의 원칙

zwundzwzig·2023년 6월 10일
0

OOP

목록 보기
3/3

어플리케이션의 크기와 복잡성이 커지면서 높은 차원의 조직화가 요구되고, 클래스보다 높은 큰 단위 개념인 패키지의 중요성을 체감하게 된다.

패키지를 관리할 때 중요하게 생각해야 하는 점은

  • 클래스를 패키지로 할당할 때 따를 원칙?
  • 어떤 설계 원칙들이 패키지 사이의 의존 관계를 지배하는 가?
  • 하향식, 상향식 방식 중 어떤 것을 따라야 하는 가?
  • 패키지는 물리적으로 어떻게 표현해야 하는가?

이제 정리해보자.

패키지 응집도의 원칙

이 세 가지 원칙은 개발자가 어떻게 클래스를 패키지에 분류해 넣을지 결정할 때 도움이 된다. 이 원칙은 클래스를 먼저 설계하는 상향식 접근 방식이다.

Reuse-Release Equivalence Principle

재사용의 단위가 릴리즈의 단위이다.

재사용 릴리즈 등가 원칙에 따르면, 재사용하는 모든 것은 반드시 릴리즈된 다음 추적돼야 한다. 잠재적 재사용자들에게 필요한 통보, 안정성, 지원에 대한 보장을 제공하는 추적 시스템을 우선적으로 만든 뒤 재사용성에 대한 언급이 있을 것이다.

패키지 관점에서 보자면 패키지의 모든 클래스가 재사용 가능하든지, 모두 그렇지 않든지 해야 한다.

그리고 재사용자의 수요에 알맞게 분류돼야 한다.

Common-Release Principle

패키지 안의 클래스들은 함께 재사용돼야 한다. 어떤 패키지의 클래스 하나를 재사용한다면 나머지도 모두 사용해야 한다.

공통 재사용 원칙은 어떤 클래스가 어느 패키지에 포함돼야 하는지를 결정할 때 도움이 된다. 이 원칙에 따르면 자주 함께 사용되는 클래스들은 같은 패키지에 속해야 한다.

또한 클래스로 의존성을 갖는 패키지 관계는 함께 포함돼야 하고 그렇지 않은 경우 같은 패키지에 넣을 필요 없다.

Common-Closure Principle

같은 패키지 안의 클래스들은 동일한 종류의 변화엔 모두 폐쇄적이어야 한다.
패키지에 어떤 변화가 영향을 미친다면 그 변화는 그 패키지의 모든 클래스에 영향을 미쳐야 하고 다른 패키지에는 영향을 미치지 않아야 한다.

패키지를 대상으로 하는 단일 책임 원칙이다. 재사용성보다 유지보수성에 집중하는 원칙이다.

또한 개방 폐쇄 원칙과도 밀접한 관련이 있다.

따라서 패키지 구성은 프로젝트의 초점이 개발 용이성에서 재사용성으로 옮겨감에 따라 시간이 흐르며 진화하기 마련이다.

🧷 참조 교재

  • [제이펍] 클린 소프트웨어: 애자일 원칙과 패턴, 그리고 실천 - 로버트 C. 마틴
profile
개발이란?

0개의 댓글