Service와 ServiceImpl 분리이유

종원유·2021년 8월 8일
0

Spring

목록 보기
1/10

스프링 웹 개발을 하면서 항상 Service 인터페이스와 구현체 ServiceImpl 클래스로 구성하여 비즈니스 로직을 처리하는 구조로 개발해왔다. 그러던 도중 이렇게 분리하는 이유가 궁금해졌고 그 궁금증을 해결하고자 이에 대해 알아가면서 이해한 내용을 정리하고자 한다.

객체 지향 프로그래밍(OOP)
Object-Oriented Programming의 약자로 여러 개의 독립된 단위, "객체"
들의 모임으로 파악하고자 하는 것이다.
OOP는 프로그램을 변경에 용이하게 만듬으로써 유연하게 만든다.
그로인해, 대규모 소프트웨어 개발에 많이 사용된다고 한다.

예로 들자면,
특정 기능을 구현하는 구현체1과 구현체2가 있을 때, 구현체 1은 기능을 A방법으로 구현하고 구현체 2는 기능을 B방법으로 구현한다.

이 때 특정 기능(역할)을 정의하는 것을 Service(Interface)
interface를 Implement하는 구현체 1, 2(Class)
로 나눌 수 있고, Interface로 정의한 구현체를 새로운 방식으로 구현해야할 때 구현체만 손쉽게 바꿀 수 있기 때문에 Service라는 Interface를 만들고 해당 역할을 ServiceImpl Class로 구현하는 것이다.

Service와 ServiceImpl로 작성하는 이유는 Sevice를 Interface로 만들고, 자식인 ServiceImpl 클래스가 부모를 상속받아 Implement하는 구현체이기 때문이다.
이런식의 Naming 규칙은 해외 개발자들도 따르는 naming 규칙이다.

profile
개발자 호소인

0개의 댓글