패키지 원칙
Package principles![]() |
컴퓨터 프로그래밍에서 패키지 원칙은 보다 체계적이고 관리하기 쉽게 하기 위해 더 큰 시스템에서 클래스를 구성하는 방법입니다.어떤 클래스가 어떤 패키지에 포함되어야 하는지(패키지 응집)와 이러한 패키지가 서로 어떻게 관련지어져야 하는지(패키지 커플링)를 이해하는 데 도움이 됩니다.패키지 원칙에는 의존 구조를 정량화하는 데 도움이 되는 소프트웨어 패키지 메트릭도 포함되어 클래스 및 패키지의 전체 구조에 대한 서로 다른 통찰력 및/또는 더 정확한 통찰력을 제공합니다.
개요
패키지 응집성의 원칙
- Reuse-Release Equivalence 원칙(REP)
- REP는 기본적으로 패키지가 재사용 가능한 클래스로 작성되어야 함을 의미합니다.즉, 패키지 내의 모든 클래스는 재사용이 가능하거나 모두 재사용할 수 없습니다.클래스도 같은 가족이어야 합니다.패키지의 목적과 무관한 클래스는 포함하지 마십시오.재사용 가능한 클래스의 패밀리로 작성된 패키지가 가장 유용하고 재사용 가능한 경우가 많습니다.
- 공통 재사용 원칙(CRP)
- CRP는 함께 재사용되는 경향이 있는 클래스가 같은 패키지에 함께 속한다고 기술하고 있습니다.이것은 어떤 클래스가 어떤 패키지에 속하는지 결정하는 데 도움이 되는 방법입니다.
- 패키지에 의존할 때는 클래스가 분리할 수 없고 상호의존적인지 확인해야 합니다.이것은 패키지에 속하지 않는 클래스를 꺼낼 때도 편리합니다.
- 공통 클로저 원칙(CCP)
- CCP 에서는, 패키지에 변경이 필요한 이유는 복수일 수 없다고 기술되어 있습니다.여러 패키지에 의존하는 응용 프로그램에서 변경이 발생하는 경우 이상적으로는 변경이 여러 패키지가 아닌 하나의 패키지로만 이루어지는 것이 좋습니다.
- 이를 통해 변경 가능성이 높은 클래스를 식별하고 동일한 이유로 함께 패키지화할 수 있습니다.클래스가 밀접하게 결합되어 있는 경우는, 같은 패키지에 속합니다.
패키지 커플링의 원리
- ADP(Acyclic Dependencies Principle)
- 복수의 개발자가 있는 개발 사이클에서는, 소규모의 증분 릴리스로 협력과 통합을 실시할 필요가 있습니다.ADP는 의존관계 구조에는 사이클이 존재할 수 없으며 증분 릴리스가 이루어지면 다른 개발자가 이를 채택하여 구축할 수 있다고 명시하고 있습니다.
- 안정 의존성 원칙(SDP)
- 디자인은 사용 환경에 따라 변화하고 있습니다.따라서 패키지 디자인도 변화를 지원해야 합니다.SDP는 휘발성을 필요로 하는 패키지는 변경이 어려운 패키지에 의존해서는 안 된다고 규정하고 있습니다.
- 안정추출원칙(SAP)
- SAP는 안정적인 패키지도 추상적이어야 하며, 따라서 그 안정성이 확장되는 것을 방해하지 않는다고 말합니다.
- 또한 불안정한 패키지의 경우 패키지의 구체적인 코드를 쉽게 변경할 수 있으므로 패키지가 구체화되어야 한다고 명시되어 있습니다.
「 」를 참조해 주세요.
레퍼런스
- "Principles of OOD". Archived from the original on 2022-01-21.
- Martin, Robert C. (1996). "Granularity". C++ Report. SIGS Publications Group. Nov-Dec 1996.
- Martin, Robert C. (2002). Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. ISBN 978-0135974445.