S : SRP(Single Responsibility Principle) - 단일 책임 원칙
클래스는 하나의 역할이나 기능만 담당해야 유지보수에 용이하므로
하나의 클래스는 하나의 책임만 가져야한다!!!!
O : OCP(Open/Closed Principle) - 개방-폐쇄 원칙
클래스는 확장에 열려있고, 수정에는 닫혀 있어야 한다!
새로운 기능 추가 시 기존 코드를 수정하지 않고 확장할 수 있어야하며 이를 위해 인터페이스나 추상 클래스를 사용하여 기능을 확장하고 구체적인 구현은 외부에서 추가한다.
L : LSP(Liskov Substitution Principle) - 리스코프 치환 원칙
자식 클래스는 언제나 부모 클래스를 대체할 수 있어야한다!!
부모 클래스를 사용해야하는 상황에서 자식 클래스를 사용해도 프로그램이 정상적으로 작동해야한다.
I : ISP (Interface Segregation Principle) - 인터페이스 분리 원칙
클라이언트는 자신이 사용하지 않는 기능에 의존하지 않아야한다.
인터페이스를 자잘하게 나누어 필요한 기능만 사용하도록 구성하여 인터페이스가 너무 비대해지지 않도록 하여 필요하지 않은 기능으로 인해 불필요한 코드 의존성을 줄인다.
D : DIP (Dependency Inversion Principle) - 의존성 역전 원칙
구체적인 클래스에 의존하지 않고 인터페이스나 추상 클래스와 같은 추상화된 개체에 의존해야한다. 이를 통해 유연하고 확장성이 높은 설계 가능
Share article