SOLID란

객체 지향 프로그래밍(OOP)를 하면서 지켜야하는 5대 원칙이다

각각 **S**RP(단일 책임 원칙), **O**CP(개방-폐쇄 원칙), **L**SP(리스코프 치환 원칙),

**I**SP(인터페이스 분리 원칙), **D**IP(의존 역전 원칙)의 앞 글자를 따서 만들어진 것이다

응집도 결합도

위와 같은 원칙을 철저히 지킨다면 변경이 쉽고 유지보수와 확장성이 높은 소프트웨어를 개발하는데 도움이 된다


SRP(단일 책임의 원칙 : Single Responsibility Principle)

하나의 클래스는 하나의 책임만을 가지며, 클래스가 제공하는

모든 서비스는 그 **하나의 책임을 수행하는데 집중**되어 있어야 한다는 원칙

정확히 말하자면, 어떤 변화에 의해 클래스를 변경하는 이유는 오직 하나뿐이어야 함을 의미

코드가 변경되는 이유가 여러개면 여러 장소에서 코드가 바뀌기 때문에 유지보수, 확장이 어렵다

적용

**책임 영역이 확실**하기 때문에 한 책임의 변경에서 다른 책임의 변경으로의 연쇄 작용을 피할 수 있음

또한 책임을 적절히 분배함으로써 가독성, 유지보수성까지 챙길 수 있음