역할과 구현을 분리한다.
SRP(Single Responsibility Principle) : 단일 책임의 원칙
OCP(Open/Closed Principle) : 개방-폐쇄 원칙
LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
DIP(Dependency Inversion Principle) : 의존관계 역전 원칙