흔히들 Design Pattern을 처음 공부하면, SOLID Principles
이라는 단어를 접하게 된다.
이게 뭔지를 간단하게 설명하면, Software를 개발할 때 지키면 좋은 5개의 Principle을 앞 글자만 따서 한 단어로 만들어 놓은 것인데, 각 Principle은 아래와 같다.
S
: Single Responsibility PrincipleO
: Open/Close PrincipleL
: Liskov Substitution PrincipleI
: Interface Segregation PrincipleD
: Dependency Inversion PrincipleRobert Martin이라는 사람이 Agile Software Development, Principles, Patterns, and Practices
라는 저서에서 처음 도입한 개념인데, 모든 원칙을 다 지켜야 한다는 강박으로 받아들이기보다는 좋은 Software란 무엇인가를 평가하는 척도 정도로만 생각하면 족하다.
실제로 모든 원칙을 다 지키려는 노력은 대부분의 경우 실제로 필요한 것보다 Software를 더 복잡하게 만들게 된다.
이제 각 원칙에 대해 이어지는 포스팅에서 한 개씩 설명해보도록 하겠다.