티스토리 뷰

1. SOLID란?


객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙


◆ SRP (Single Responsibility Principle) 단일 책임 원칙

"어떤 클래스를 변경 해야 하는 이유는 오직 하나 뿐이어야 한다."

- 모든 클래스 또는 메서드는 단 하나의 책임을 가져야 한다는 의미

 

◆ OCP (Open/Close Principle) 개방/폐쇄 원칙

"소프트웨어 엔티티(클래스, 모듈, 함수)는 확장에 대해서는 열려 있어야 하지만 변경에 대해서는 닫혀 있어야 한다."

- 확장은 할 수 있지만 수정은 하지 않을 수 있도록 프로그램을 작성 해야 한다는 의미

 

◆ LSP (Liskov Substitution Principle) 리스코프 치환 원칙

"서브 타입은 언제든 자신의 기반 타입으로 교체할 수 있어야 한다."

- 하위 클래스의 인스턴스는 상위형 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다는 의미

 

◆ ISP (Interface Segregation Principle) 인터페이스 분리 원칙

"클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다."

- 인터페이스를 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다는 의미

 

◆ DIP (Dependency Inversion Principle) 의존 역전 원칙

"고차원 모듈은 저차원 모듈에 의존하면 안 된다. 이 두 모듈 모두 다른 추상화된 것에 의존해야 한다."

"추상화된 것은 구체적은 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다."

"자주 변경되는 구체(Concrete) 클래스에 의존 하지 마라"

"자신보다 변하기 쉬운 것에 의존 하지 마라"

- 상위 클래스, 인터페이스, 추상 클래스일수록 변하지 않을 가능성이 높기에 하위 클래스나 구체 클래스가 아닌 상위 클래스, 인터페이스, 추상 클래스를 통해 의존하라는 의미

댓글
Notice
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함