1. 이론과 현실 사이의 간극1-1. SRP와 OCP는 언제 충돌하는가 SOLID 원칙은 객체지향 설계에서 이상적인 구조를 안내해주는 나침반 같은 존재다. 그러나 이상은 이상일 뿐, 실무에서는 그 원칙들이 충돌하거나 현실과 괴리되는 순간들이 적지 않다. 특히 SRP(단일 책임 원칙)과 OCP(개방-폐쇄 원칙)은 애초에 지향하는 방향 자체가 다르기 때문에 실제 개발 현장에서는 둘 사이의 갈등이 빈번히 발생한다. SRP는 책임을 명확하게 나누라고 하고, OCP는 기존 코드를 수정하지 말고 확장하라고 요구한다. 그런데 책임을 나누다 보면 단일 클래스가 너무 작아지고, 그 조합을 위한 코드가 중첩되며, 새로운 기능이 들어올 때마다 확장을 고려해야 하는 OCP와 상충하게 된다. 반대로, 확장을 위해 공통된 인터..