객체지향 설계원칙(SOLID) 단일 책임원칙(Single Responsibility Principle) 개방-폐쇄 원칙(Open/Closed Principle) 리스코프 치환 원칙 인터페이스 분리 원칙 의존관계 역전 원칙