계층(Layered Architecture)
스프링 계층은 크게 Presentation Layer, Business Layer, Data Access Layer 로 나뉜다. 이렇게 계층을 여러 단계로 나누어 수정사항이 발생하더라도 전체 계층을 수정하는 것이 아닌 일부만을 수정하여 유지보수에 유리하다.

Presentation Layer(표현 계층)
- 브라우저상의 웹 클라이언트의 요청 및 응답을 처리
- 서비스계층, 데이터 엑세스 계층에서 발생하는 Exception을 처리
Controller
Business Layer(비즈니스 계층, Service Layer)
- 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증
- 트랜잭션 관리
- 프레젠테이션 계층과 데이터 엑세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하지 않게 함
Data Access Layer(데이터 엑세스 계층)
- ORM (Mybatis, Hibernate)를 주로 사용하는 계층
- DAO 인터페이스와 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스가 이 계층에 속함
- Dabase에 data를 CRUD(Create, Read, Update, Drop)하는 계층
Domain Model Layer(도메인 모델 계층)
- DB의 테이블과 매칭될 클래스
- Entity 클래스
객체
