Untitled

Clean Code의 저자로도 유명한 미국의 소프트웨어 엔지니어인 Robert C. Martin(a.k.a Uncle Bob)이 2000년대 초반에 발표하였다.

객체지향에서 꼭 지켜야 할 5개의 원칙을 **‘객체지향 5원칙’**이라 한다. 각각의 앞글자를 따서 SOLID 라고도 부른다.

유지보수가 쉬운 견고한 코드를 작성하는 데에 도움이 된다. 다만 작고 간단한 프로그램에서 SOLID를 적용하는 것은 비효율적일 수 있다.

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


<aside> 🚧 THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.

</aside>

클래스는 오직 하나의 책임을 가져야 한다.

이 책임의 기준은 또 사람마다 다를 수 있는데, 로버트 마틴은 이를 *‘변경하려는 이유’*로 정의하고, 클래스나 모듈은 변경하려는 단 하나의 이유만을 가져야 한다고 결론지었다.

내가 생각하는 방법은 다음과 같다.

  1. 사용자의 요구사항 변경에 따라 변경되는 부분을 파악하고, 변경되지 않는 부분을 파악한다.
  2. 변경되는 부분들을 역할에 따라 최대한 나눈다.
  3. (인터페이스와 상속을 활용해) 클래스를 분리한다.

개방-폐쇄 원칙 (OCP; Open-Closed Principle)