Spring

Spring의 3-tier

block_626 2022. 4. 24. 14:12

3 Tier 란 사용자 인터페이스, 비즈니스 로직, 데이터베이스를 말하며, 이들을 각각 독립된 모듈로 개발하고 유지하는 구조로, 일반적으로 이들은 각각 다른 플랫폼 상에서 구동된다.

"3tier Architecture” 라고 명명한 것을 보면 알 수 있듯인 3 tier는 아키텍처적인 관점으로 봐라봐야 한다.



Presentation Tier(화면 계층)

  • 화면에 보여주는 기술을 사용하는 영역

컨트롤러에서 사용자의 요청에 맞는 응답처리를 진행하며, HTML엔진(thymeleaf), HTML등이 담당하는 영역이다.

Spring MVC 객체를 말한다.

프로젝트의 성격에 맞춰 앱으로 제작하거나, 클라이언트-서버로 구성되는 경우가 있다.

스프링 MVC와 JSP 등을 이용한 화면 구성이 이에 속한다.

프론트 컨트롤러(DispatcherServlet), 컨트롤러, 뷰, 모델이 포함된다.

Servlet/JSP, HTML, Spring MVC 등이 해당됩니다.

 

Business Tier(비즈니스 계층)

  • 순수한 비즈니스 로직을 담고 있는 영역

고객이 원하는 요구사항과 정확히 일치해야한다.

영역의 설계는 고객의 요구사항과 정확히 일치해야한다.

주로 ‘xxxService’와 같은 이름으로 구성, 메서드의 이름 역시 고객들이 사용하는 용어 그대로 사용

 

프레젠테이션 계층(View)와 영속 계층(DBMS)의 중간다리 역할을 한다.

영속 계층은 DBMS를 기준으로, 비지니스 계층은 로직을 기준으로 처리한다.

예를 들어 쇼핑몰에서 상품을 구매 시 포인트 적립을 한다고 가정한다면, 영속 계층의 설계는 '상품', '회원'으로 나누어 설계하지만 비지니스 계층은 상품 영역과 회원 영역을 동시에 사용해서 하나의 로직을 처리하게 된다.

 

일반적으로 비지니스 영역에 있는 객체들은 서비스(Service)라는 용어를 많이 사용한다.

크게 백앤드로 말할 수 있습니다.

 

Persistence Tier(영속 계층 or 데이터 계층)

  • 데이터를 어떤 방식으로 보관하고 사용하는가에 대한 설계가 들어가는 계층

일반적으로 데이터베이스를 많이 이용하지만, 네트워크 호출, 원격 호출 등의 기술이 접목될 수 있다.

데이터의 CRUD 연산을 수행하는 Mapper와 결과를 객체로 리턴하는 DAO까지 영속 계층에 속합니다.

데이터 베이스, MyBatis, mybatis-spring 등이 해당된다.

 



3tier는 물리적인 분리가 되어진 아키텍쳐이다.

특히, "각각 독립된 모듈하고 유지하는 구조로 일반적으로 이들은 각각 다른 플랫폼 상에서 구동 된다”라는 설명이 핵심적인데, 각 레이어는 선형적인 구조로 설게되어있으며, 직접적인 하위 레이어만 알면 된다.

즉, 프레젠테이션 계층은 직접적으로 데이터계층과 통신하지 않는다.

다시말해, 프레젠테이션/데이터 각 계층은 반드시 미들웨어인 비지니스 계층을 통해서만 통신이 가능하다.

 


'Spring' 카테고리의 다른 글

비동기통신과 동기통신  (0) 2022.04.24
Ajax와 xmlhttprequest  (0) 2022.04.24
페이징처리  (0) 2022.04.24
HttpServletRequest과 HttpServletResponse  (0) 2022.04.24
JSTL과 EL에 대해서  (0) 2022.04.24