특징
– clinet에게 : clinet가 사용하기 쉽도록 시스템의 기능을 까칠하게(coarse grained interace) 표현해준다.
– system에게 : Service Layer의 메소드는 작업의 처리 가능한 단위(Transactional Unit)를 표현한다.
– Stateless : 실행시에 이 계층의 객체들이 여러 쓰레드를 다룰수 있다. 이때 Stateless 해야 어떤 쓰레드가 다른 쓰레드를 폐끼치는 것을 피할 수 있다.
– 하나의 Use Case를 Transactional Unit of work
– 이 계층을 사용함으로써 system과 client 간의 결합도를 줄인다.

종속성
– Domain Model, Persistence Layer
– View나 Web Layer에 종속성을 가지면 안된다.
– 프레임웍에 종속적인 코드가 필요없다.
사용자 삽입 이미지
Spring’s Support
– 거의없다.
– ApplicationContext는 Web Layer에 객체를 주입(Injection)한다.
– Transactional management, Performance monitoring, pooling을 원한다면 지원해 줄 수 있다.