Clean Code의 저자로도 유명한 미국의 소프트웨어 엔지니어인 Robert C. Martin(a.k.a Uncle Bob)이 2000년대 초반에 발표하였다.
객체지향에서 꼭 지켜야 할 5개의 원칙을 **‘객체지향 5원칙’**이라 한다. 각각의 앞글자를 따서 SOLID 라고도 부른다.
유지보수가 쉬운 견고한 코드를 작성하는 데에 도움이 된다. 다만 작고 간단한 프로그램에서 SOLID를 적용하는 것은 비효율적일 수 있다.
<aside> 🚧 THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.
</aside>
클래스는 오직 하나의 책임을 가져야 한다.
이 책임의 기준은 또 사람마다 다를 수 있는데, 로버트 마틴은 이를 *‘변경하려는 이유’*로 정의하고, 클래스나 모듈은 변경하려는 단 하나의 이유만을 가져야 한다고 결론지었다.
내가 생각하는 방법은 다음과 같다.