서비스레이어안에 다른 서비스레이어를 참조할 경우 아래와같은 문제가 발생한다.

일단,

서비스가하는 역할은 controller에서 요청을넘거받은것을 비즈니스로직을 처리하는것인데

참조되는 서비스는 역할이 다르기 때문에 서비스레이거 계층이 무너저 다른 개발자가 볼 때 이해하기 어려워진다.

 

또한,

A서비스가 B서비스를 참조할때 B서비스는 A서비스에 참조되기 위해 서비스가 설계될것이다.

그러다보면, B서비스는 확장성이 낮고 재사용성이 낮게 설계될 가능성이 크다.

 

특히, A서비스가 B서비스에 종속되어있어 B서비스없이는 독립적으로 작동이 불가하기 때문에

특히 서비스레이어는 비즈니스로직을 처리하는 레이어인데 종속되어있으면

독립적인 테스트가 어렵고, 이식성이 낮아 서비스를 옮기거나 모듈별로 타서버에 이식할때 어려움이 존재한다.

 

그렇기때문에,

만약 서비스내에서 서비스를 사용하려면 Controller Layer에서

B서비스의 리턴값을 받고 A서비스로 넘겨주는것이 바람직하다고 생각한다.

+ Recent posts