카테고리 없음
왜 Interface와 Impl을 만들까?
VvsJaemin
2021. 3. 25. 18:52
구글링을 하다가 왜 인터페이스와 Impl을 만드는 이유에 대한 블로그의 글을 보고 정리를 하고자 한다.
1. OOP의 인터페이스와 Loose coupling
Interface는 객체의 사용 방법을 정의한 타입이다. 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다. 즉, 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 해준다.
인터페이스 타입에 어떤 구현 객체를 대입하는지에 따라 실행결과가 달라지도록 만드는 기술이므로 기존 구현 객체(ServiceImpl1)와 비즈니스 로직이 다른 기능을 추가해야할 경우 다른 구현 객체(ServiceImpl2)를 만들어 사용하면 된다. 따라서 유지보수 측면에서 매우 좋다.
그리고 객체지향 프로그래밍에서는 클래스를 작게 나누어 다른 클래스와 의존관계를 낮추는것이 중요하다. 즉, 결합도를 낮추는것인데 이 또한 유지보수가 쉽다는 장점을 갖는다.
2. AOP
AOP와 트랜잭션은 서비스 인터페이스에서 처리한다.
스프링에서 AOP를 구현할 때 JDK의 기본 프록시를 사용하는데, 이 프록시는 인터페이스 기반으로 동작하기 때문에 Service인터페이스를 만들어 사용한다.
반응형