GRASP vs. SOLID
GRASP vs. SOLID GRASP 와 SOLID 는 상호 보완적인 객체지향 설계 원칙으로, GRASP 는 " 누가 무엇을 해야 하는가 " 에 대한 구체적인 책임 할당 패턴을 제공하고, SOLID 는 " 어떻게 설계해야 하는가 " 에 대한 포괄적인 설계 원칙을 제시한다. 두 원칙 모두 낮은 결합도, 높은 응집도, 확장성, 유지보수성을 목표로 하며, 현대 소프트웨어 개발에서 필수적인 설계 가이드라인이다. 핵심 개념 구분 항목 정의/설명 설계 목적 및 효과 GRASP 정의 객체지향 설계에서 책임 할당과 객체 간 협력을 효과적으로 하기 위한 9 가지 설계 패턴 세트 책임 분산, 구조적 안정성 확보, 결합도 최소화 핵심 패턴 - Information Expert - Creator - Controller - Low Coupling - High Cohesion - Polymorphism - Pure Fabrication - Indirection - Protected Variations 객체 간 책임 할당 원칙, 협력 방식 정의 주요 설계 방향 객체에 적절한 책임 부여, 변화에 강한 유연한 구조 설계 응집도 ↑, 결합도 ↓, 변경 영향 최소화 SOLID 정의 객체지향 설계에서 유지보수성과 확장성을 높이기 위한 5 가지 원칙을 나타내는 약어 확장 가능하고 견고한 소프트웨어 구조 확립 핵심 원칙 - SRP (단일 책임 원칙) - OCP (개방 - 폐쇄 원칙) - LSP (리스코프 치환 원칙) - ISP (인터페이스 분리 원칙) - DIP (의존 역전 원칙) 클래스와 모듈 단위의 구조 품질 향상 주요 설계 방향 변화에 유연한 클래스 설계, 테스트 용이성 강화, 인터페이스 기반 추상화 유지보수성 ↑, 재사용성 ↑, 확장성 ↑ GRASP vs. SOLID 비교 GRASP 와 SOLID 는 객체지향 설계에서 서로 다른 측면을 강조한다. GRASP 는 객체에 책임을 어떻게 할당할지를 중심으로 하며, SOLID 는 클래스 설계의 원칙을 통해 코드의 유연성과 유지보수성을 강조한다. ...