SOLID는 소프트웨어 디자인의 다섯 가지 핵심 원칙을 머리글자어로 만든 용어— 단일 책임(Single responsibility) 하나의 객체는 하나의 의무만 가지도록 설계한다. — 개방-폐쇄(Open-closed) 기존에 구현된 코드를 변경하지 않으면서 새로운 기능을 추가할 수 있도록 설계한다. — 리스코프 치환(Liskov substitution) 자식 객체를 부모 객체로 변경해도 작동에 문제 없을 정도로 상속을 단순히 사용한다. — 인터페이스 분리(Interface segregation) 객체가 구현해야할 기능이 많다면 이들을 여러 개의 단순한 인터페이스들로 분리해 설계한다. — 종속성 역전(Dependency inversion) 구현된 실물보다 구축해야 할 추상적 개념에 의존한다. SOLID 원..