본문 바로가기
개발/Architecture & Design Pattern

SOLID - 객체 지향 설계 5대 원칙

by 피로물든딸기 2024. 2. 12.
반응형

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 연결과 같은 하위 모듈에 대한 의존성을 해결하기 위해 인터페이스를 제공하고,

  상위 모듈은 해당 인터페이스를 구현하게 하여 실제 코드가 변경되더라도 상위 모듈에 영향을 미치지 않게 된다.

반응형

댓글