스프링 MVC 패턴
MVC 패턴의 구조는 크게 Model, View, Contoller 세 가지로 나누어진다.
•
Model
◦
어떠한 동작을 수행하는 코드
◦
무엇을 할지 정하고, 비즈니스 로직과 DB 에 대한 처리를 수행
•
Contoller
◦
View 와 Model 을 이어주는 역할
◦
View 의 요청에 따라 Model 의 상태를 바꾸고 이를 다시 View 에 전달
•
View
◦
사용자에게 보이는 영역
◦
Controller 를 통해 Model 에 질의를 던지고 반환되는 값을 사용자에게 제공
스프링의 웹 계층
스프링이 아닌 스프링 부트를 이용해 프로젝트를 진행하고 있기 때문에 다른 요소들은 제외하고 Contoller, Service, DTO, Repository, Domain 에 대한 내용을 작성하려한다.
•
Web Layer
◦
@Controller
◦
외부 요청과 응답에 대한 영역을 담당
•
Service Layer
◦
@Service
◦
Controller 와 저장소(Repository) 의 중간에 위치
◦
@Transactional 과 도메인 간의 연산 순서를 보장
◦
비즈니스 로직을 처리하는 곳이 아닌, 비즈니스 로직을 순서대로 호출해주고, 트랜잭션을 보장하면서 Repository Layer 를 통해 DB 와의 연산을 수행하는
•
Repository Layer
◦
DB 와 같은 데이터 저장소에 접근하는 영역
•
DTO
◦
계층간의 데이터 교환을 위한 객체
•
Domain model
◦
비즈니스 로직을 처리하는 영역