3-tier Layered Architecture와 MVC

PPakSSam·2022년 1월 17일
1

MVC 패턴을 적용하였고 3tier 구조로 되어있는 프레임워크를 갖추고 있다.

스프링도 위와 같은 프레임워크 중 하나이다.
사실 스프링을 공부하면서 MVC패턴과 3tier에 대해 얕게만 공부하여 둘의 개념이 비슷한 걸로 알고 있었다. 그러나 엄연히 차이가 있었으며 이에 대해 정리하고자 한다.

아래의 포스트를 읽기전에 MVC 패턴에 대한 개념이 부족하다면 MVC 패턴을 먼저 읽고 오기를 바란다.

3-tier Architecture

프레젠테이션 계층 - 비즈니스 계층 - 데이터 계층을 각각 물리적으로 독립된 모듈로 개발하고 유지하는 구조를 말한다.

Web Layer(Presentation Layer)

  • 흔히 사용하는 Controller와 JSP/freemarker 등 View 템플릿 영역이다.
  • 이외에도 Filter, Intercepter, ControllerAdvice외부 요청과 응답에 대한 전반적인 영역을 말한다.

Service Layer(Business Layer)

  • 일반적으로 ControllerDao의 중간 영역에서 사용된다.
  • @Transactional이 사용되어야 하는 영역이다.
  • 보통 여기서 비즈니스 로직을 처리하나 관점에 따라 Domain Model에서 비즈니스 로직을 처리하기도 한다.

Repository Layer(Persistence Layer)

  • DB에 접근하는 영역
  • Dao(Data Access Object) 영역

Dtos

  • 계층 간에 데이터 교환을 위한 객체

Domain Model(Business Layer)

  • 도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화 시킨 것을 도메인 모델이라고 한다.
    ex) 택시 앱 -> 배차, 탑승, 요금 등이 모두 도메인이 될 수 있다.

  • @Entity가 사용된 영역이 도메인 모델이다.

3tier와 MVC의 관계

Presentation Layer에는 MVC의 Controller와 View가
Buisiness Layer에는 MVC의 Model
Persistence Layer에는 DAO가 있는 것으로 보인다.

profile
성장에 대한 경험을 공유하고픈 자발적 경험주의자

0개의 댓글