SOLID Principles

SOLID Principles SOLID 원칙은 2000 년 Robert C. Martin 에 의해 체계화된 객체 지향 설계의 5 대 핵심 원칙이다. 단일 책임 (SRP), 개방/폐쇄 (OCP), 리스코프 치환 (LSP), 인터페이스 분리 (ISP), 의존성 역전 (DIP) 원칙으로 구성되어 있다. 이 원칙들은 코드의 결합도를 낮추고, 변경에 유연하며, 테스트와 유지보수를 쉽게 만들어준다. SOLID 는 현대 소프트웨어 개발에서 품질 높은 시스템 구축의 표준이자 필수 지침으로 널리 사용된다 핵심 개념 SOLID 원칙의 정의 SRP (Single Responsibility Principle): 클래스는 하나의 책임만 가져야 하며, 변경되는 이유도 하나여야 함 OCP (Open/Closed Principle): 소프트웨어 개체는 확장에는 열려있고 수정에는 닫혀있어야 함 LSP (Liskov Substitution Principle): 하위 타입은 상위 타입으로 대체 가능해야 함 ISP (Interface Segregation Principle): 클라이언트는 사용하지 않는 인터페이스에 의존하지 않아야 함 DIP (Dependency Inversion Principle): 상위 모듈은 하위 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 함 핵심 목표 코드의 유지보수성 (Maintainability) 향상 시스템 확장성 (Extensibility) 보장 코드 재사용성 (Reusability) 증대 테스트 용이성 (Testability) 확보 결합도 (Coupling) 감소 및 응집도 (Cohesion) 증가 배경 SOLID 원칙은 2000 년 Robert C. Martin(Uncle Bob) 이 “Design Principles and Design Patterns” 논문에서 처음 제시했다. 이후 Michael Feathers 가 SOLID 라는 약어를 도입했다. 이 원칙들은 수십 년간의 객체 지향 프로그래밍 경험과 모범 사례를 바탕으로 체계화되었으며, 애자일 소프트웨어 개발과 클린 코드 철학의 기초가 되었다. ...

September 23, 2024 · 25 min · Me

Component Principles

Component Principles 소프트웨어 아키텍처에서 컴포넌트 원칙은 시스템을 구성하는 모듈들의 설계와 상호작용을 정의하는 핵심 지침이다. 이 원칙들은 컴포넌트의 응집도와 결합도를 조절하여 시스템의 유지보수성, 확장성, 재사용성을 향상시키는 데 중점을 둔다. 소프트웨어 시스템을 독립적이고 재사용 가능한 컴포넌트 단위로 분리·설계함으로써 각 컴포넌트는 명확한 인터페이스와 단일 책임을 가지며, 캡슐화를 통해 내부 구현을 숨기고 외부와의 종속성을 최소화한다. 이를 통해 각 컴포넌트는 명확한 책임, 높은 응집도, 낮은 결합도를 갖추며, 독립적으로 개발, 테스트, 배포, 유지보수가 가능하다. 대표적으로 REP(재사용/릴리즈 동등성), CCP(공통 폐쇄), CRP(공통 재사용), ADP(비순환 의존성), SDP(안정적 의존성), SAP(안정적 추상화) 원칙이 있으며, 이들은 시스템의 확장성, 품질, 변경 용이성, 협업 효율성을 극대화한다. ...

December 21, 2024 · 24 min · Me

Core Principles

0 min · Me