학습 목표SOLID 다섯 원칙의 의도와 위반 신호를 설명할 수 있다.SRP·OCP·ISP가 변경 이유·확장·인터페이스를 분리하는 방법을 예제로 설명할 수 있다.LSP가 대체 가능성을 보장하는 조건임을 설명할 수 있다.DIP가 헥사고날·클린의 의존 방향과 어떻게 맞물리는지 설명할 수 있다.문제 상황OrderService 800줄 — 주문·결제·알림·PDF·통계가 한 클래스알림 템플릿 바꿀 때마다 주문 로직 회귀 테스트할인 정책 추가할 때마다 if (type == …) 분기만 늘어남Square extends Rectangle — setWidth만 바꿨는데 height도 바뀜, 테스트 깨짐Repository 인터페이스에 save, sendEmail, generateReport가 같이 있음mock 구현하려면 쓰..