-
[Spring] 스프링 MVC 3-tier 구성WEB/Spring 2020. 7. 18. 16:12
Presentation Tier <-> Business Tier <-> Persistence Tier
EX)
(Spring MVC) <-> (Spring core) <-> (MyBatis) <-> DB
Presentation Tier(화면 계층)
화면에 보여주는 기술을 사용하는 영역
프로젝트의 성격에 맞춰 앱으로 제작하거나, 클라이언트-서버로 구성되는 경우가 있음
스프링 MVC와 JSP 등을 이용한 화면 구성이 이에 속함
Business Tier(비즈니스 계층)
순수한 비즈니스 로직을 담고 있는 영역
고객이 원하는 요구사항을 반영하는 계층이므로 중요
영역의 설계는 고객의 요구사항과 정확히 일치해야함
주로 'xxxService'와 같은 이름으로 구성, 메서드의 이름 역시 고객들이 사용하는 용어 그대로 사용
Persistence Tier(영속 계층 or 데이터 계층)
데이터를 어떤 방식으로 보관하고 사용하는가에 대한 설계가 들어가는 계층
일반적으로 데이터베이스를 많이 이용하지만, 네트워크 호출, 원격 호출 등의 기술이 접목될 수 있음
일반적으로 웹 프로젝트를 다음과 같이 3-tier로 구성하는 이유
=> 유지보수가 용이
==> 각 영역이 독립적으로 설계되어 특정 부분이 변하면 그 부분만 쉽게 변경 가능
프로젝트를 진행할 때 다음과 같은 네이밍 규칙을 가지고 작성
xxxController
스프링 MVC에서 동작하는 Controller 클래스를 설계할 때 사용
xxxService, xxxServiceImpl
비즈니스 영역을 담당하는 인터페이스는 'xxxService'
인터페이스를 구현한 클래스는 'xxxServiceImpl' 라는 이름을 사용
xxxDAO, xxxRepository
DAO(Data-Access-Object)나 Repository(저장소) 라는 이름으로 영역을 따로 구성하는 것이 보편적
MyBatis 이용시 별도의 DAO 구성대신 Mapper 인터페이스를 활용
VO, DTO
VO와 DTO는 일반적으로 둘다 데이터를 담고 있는 객체를 의미로 사용
VO의 경우는 주로 Read Only의 목적이 강하고, 데이터 자체도 Immutable(불변)하게 설계
DTO는 주로 데이터 수집의 용도가 좀 더 강함
출처 : http://www.yes24.com/Product/Goods/64340061
'WEB > Spring' 카테고리의 다른 글
[Spring] 스프링 개념 잡기 (0) 2020.09.13 [Spring] 스프링 MVC 프레임워크 설계 구조 (0) 2020.07.19 [Spring] 스프링의 주요 특징 (0) 2020.07.17 [Spring] Level3 REST API 구현을 위한 HATEOAS 적용 (0) 2020.07.05 [Spring Boot] java.sql.SQLNonTransientConnectionException: Could not create connection to database server. (0) 2020.06.06