특징
- 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을 원한다면 지원해 줄 수 있다.