MVC 패턴을 적용하였고 3tier 구조로 되어있는 프레임워크를 갖추고 있다.
스프링도 위와 같은 프레임워크 중 하나이다.
사실 스프링을 공부하면서 MVC패턴과 3tier에 대해 얕게만 공부하여 둘의 개념이 비슷한 걸로 알고 있었다. 그러나 엄연히 차이가 있었으며 이에 대해 정리하고자 한다.
아래의 포스트를 읽기전에 MVC 패턴에 대한 개념이 부족하다면 MVC 패턴을 먼저 읽고 오기를 바란다.
프레젠테이션 계층 - 비즈니스 계층 - 데이터 계층을 각각 물리적으로 독립된 모듈로 개발하고 유지하는 구조를 말한다.
Controller
와 JSP/freemarker 등 View 템플릿
영역이다.Filter
, Intercepter
, ControllerAdvice
등 외부 요청과 응답에 대한 전반적인 영역을 말한다.Controller
와 Dao
의 중간 영역에서 사용된다.@Transactional
이 사용되어야 하는 영역이다.Domain Model
에서 비즈니스 로직을 처리하기도 한다.도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화 시킨 것을 도메인 모델이라고 한다.
ex) 택시 앱 -> 배차, 탑승, 요금 등이 모두 도메인이 될 수 있다.
@Entity
가 사용된 영역이 도메인 모델이다.
Presentation Layer에는 MVC의 Controller와 View가
Buisiness Layer에는 MVC의 Model
Persistence Layer에는 DAO가 있는 것으로 보인다.