문제 인식 대부분 프로젝트를 할 때 Service를 인터페이스로 만들고 ServiceImpl을 구현체 클래스로 만들게 됩니다. 이렇게 인터페이스와 클래스로 분리하는 이유는 구현체를 독립적으로 확장할 수 있으며, 구현체 클래스를 변경하거나 확장해도 클라이언트의 코드에 영향을 주지 않기 때문입니다. 또한 위와 같은 추상화 방식을 사용하여 구현하므로써 객체지향의 다섯가지 원칙 중 하나인 OCP원칙을 잘 지키는 설계 방식이라고 할 수 있습니다. [Spring] 객체 지향 설계의 다섯 가지 기본 원칙 - SOLID SOLID 다섯 가지 설계 원칙 단일 책임 원칙(SRP: Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 한다. 책임 영역이 확실해지고, 한 클래스의 변경이..