반응형
스프링에 대한 기본적인 이해는 있을 것이라는 전제하에,
(만약 스프링에 대한 이해도가 없다면 아래 참고포스팅을 참고하여 스프링 예제를 한번 해보고 오는것을 추천한다.)
service를 구현할때 service를 클래스로 구현할지,
아니면 interface로 구성 후에 implements 로 구현을 할지에 대한 고민을 한다.
하지만 요즘 코딩의 추세는 나누는것이 목적이다.
그 이유는 아래와 같다.
- Loose Coupling 객체 간의 결합도를 낮추어 변화에 유연한 개발을 하기 위해서이다.
하나의 인터페이스를 구현하는 여러 구현체가 있고 기능에 따라 적절한 구현체가 들어가서 다형성을 주기 위함이다.
또 하나의 인터페이스만 바라보니 의존관계도 줄일 수 있다. - Spring 에서 JDK Dynamic Proxy 를 사용하여 AOP Proxy 를 만드는 만들기 위해 JDK Dynamic Proxy는 인터페이스 기반으로 프록시 객체를 만들게 되어 있다.
예를 들어, 인터페이스가 있어야지 @Transactional 어노테이션이 동작하게 된다.
하지만 무조건 Service인터페이스와 ServiceImpl로 나누어 구현하기보단,
OCP를 준수하며 전략을 쉽게 바꿀 이유가 있는지에 대한 여부를 판단 후 구현하는게 좋다.
참고 포스팅
https://thenicesj.tistory.com/41
반응형
'IT > Java' 카테고리의 다른 글
JPA에서의 어노테이션 (44) | 2022.07.22 |
---|---|
LocalDateTime 날짜 비교 (36) | 2022.07.21 |
Spring Bean 이란? (31) | 2022.07.17 |
이클립스 자바 버전 변경 (35) | 2022.07.16 |
jdbc URL (29) | 2022.07.15 |
댓글