SOLID는 다섯 가지 원칙에 대한 약자이다. 단일 책임 원칙 Single Responsiblity Principle (SRP) 한 클래스 하나의 책임(기능). 한 클래스에 여러 가지 기능들이 쏠리게 되면 내부 코드를 수정할 때 다른 코드들도 함께 영향을 받을 확률이 높아진다. 즉, 결합도가 올라가게 되어 유지보수가 어려워진다. 그렇기 때문에 책임 단위로 캡슐화시켜 코드의 응집도는 높이고 결합도는 낮추어야한다. 개방-폐쇄 원칙 Open Closed Principle (OCP) 수정에는 닫혀있고, 확장에는 열려있고. 이를 위해서는 어떤 부분이 바뀌는(update) 부분인지를 먼저 찾아야한다. 바뀌는 부분은 따로 뽑아서 캡슐화시킨다. 그렇게 하면 시스템의 유연성이 높아져, 해당 코드를 수정 혹은 확장하더라도..