Architecture & Design Pattern 전체 링크
객체지향 설계 5대 원칙 (SOLID)
- SW 설계를 더 유연하고, 유지보수하기 쉽게 만드는 것을 목적으로 하는 원칙.
- 각 원칙은 특정한 설계 문제를 해결하고, 코드 품질을 높이는 데 도움을 준다.
단일 책임 원칙 (SRP, Single Responsibility Principle)
- 소프트웨어의 모듈 또는 클래스는 단 하나의 책임만 가져야 한다.
- 클래스를 바꾸는 이유는 한 가지뿐이어야 한다.
- 유지 보수, 재사용성, 테스트 용이성에 이점이 있다.
개방-폐쇄 원칙 (OCP, Open-Closed Principle)
- Open : 소프트웨어의 기능을 추가할 때, 기존의 코드를 변경하지 않고 확장할 수 있어야 한다.
- Closed : 이미 동작하는 코드에 대한 변경이 필요 없이 새로운 기능을 추가할 수 있어야 한다.
- 클래스는 확장에 대해서는 열려 있어야 하고, 코드 변경에 대해서는 닫혀 있어야 한다.
리스코프 치환 원칙 (LCP, Liskov Substitution Principle)
- 객체의 하위 타입은 기본 타입으로 대체될 수 있어야 한다.
- 상속 관계에 있는 클래스들 사이에서 자식 클래스는 부모 클래스의 기능을 완전히 대체해야 한다.
인터페이스 분리 원칙 (ISP, Interface Segregation Principle)
- 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하지 않아야 한다.
- 일반적인 인터페이스들은 더 작고, 구체적인 인터페이스들로 분리해야 한다.
의존 역전 원칙 (DIP, Dependency Inversion Principle)
- 구체화에 의존하지 말고 추상화에 의존해야 한다.
- 상위 모듈은 하위 모듈에 의존해서는 안 되며, 모든 모듈은 추상화된 것에 의존해야 한다.
- 이 원칙으로 하위 모듈의 변경이 상위 모듈에 영향을 주지 않고, 상위 모듈이 하위 모듈에 종속되지 않도록 한다.
- 예를 들어, DB 연결과 같은 하위 모듈에 대한 의존성을 해결하기 위해 인터페이스를 제공하고,
상위 모듈은 해당 인터페이스를 구현하게 하여 실제 코드가 변경되더라도 상위 모듈에 영향을 미치지 않게 된다.
'개발 > Architecture & Design Pattern' 카테고리의 다른 글
C++ - 상태, 스테이트 패턴 (State Pattern) (0) | 2024.02.20 |
---|---|
C++ - 추상 팩토리 패턴 (Abstract Factory Pattern) (0) | 2024.02.14 |
C++ - 인터페이스 분리 원칙 (ISP, Interface Segregation Principle) (0) | 2024.02.12 |
C++ - 리스코프 치환 원칙 (LCP, Liskov Substitution Principle) (0) | 2024.02.12 |
C++ - 팩토리 메서드 패턴 (Factory Method Pattern) (1) | 2024.02.12 |
댓글