사실 스프링 시리즈에서 정리를 한번 했었습니다.
우테코를 진행하면서 적용하는 것이 낯설어 간략하게 한번 더 정리하고 해당 포스트를 보며 개발하기 위해 포스팅을 하겠습니다.Model -> Controller -> View 순으로 개발하는 것이 일반적
데이터를 처리하는 영역
비즈니스 로직
DB와 연동하여 사용자가 입력한 데이터를 입력하거나, 사용자에게 출력할 데이터를 관리한다.DB와 연동하는
DAO(Data Access Object)
와
데이터 구조를 표현하는DO(Data Object) || Entity
로 구성된다.View와 Controller에 의존하지 않는다.
개발할 때 가장 먼저 구현한다
MVC패턴의 핵심으로
모든 사용자 요청의 중심
, 위 사진의 Application Server을 보면 사용자가 어떤 작업을 수행(request)시에 특정 뷰로 요청이 가는 것이 아니라, 컨트롤러에서 우선적으로 요청을 받아서 처리한다.만약 사용자가 아이디 중복체크를 클릭했을 경우 해당 아이디가 현재 존재하는지 여부를 알기 위해서 Model을 통해 DB를 조회, 결과값을 받아 뷰에게 전달한다.
간략하게
클라이언트 요청을 적절한 서비스로 라우팅
하는 역할특정 뷰를 지정하기 때문에 뷰와 종속 관계
만약 프로그램의 규모가 점점 커진다면 컨트롤러의 역할이 상당이 커지고 복잡해져 관리 및 유지보수가 어려워진다.
이를 해결하기 위한
Service
단이 존재한다.
Controller
의 비중을 줄여주기 위해 실무에서 많이 사용된다.Controller
에서는 매핑을 위주로 하고, 실질적인 요청 처리 함수는Service
에 집중한다.비즈니스 로직임
사용자에게 보여지는
UI
부분
View는 Model에서 정보를 받아 출력을 하는 역할Model, Controller와의 종속성 없이 구현한다.
Domain
→객체의 정보를 담는 역할
을 하는 컴포넌트로, 주로 데이터 모델을 나타냄. 이는 애플리케이션에서 사용하는 주요 데이터 구조와 엔티티를 정의
Domain
→ 실제 다루고자 하는 서비스의 비즈니스 로직.(계산등을 하는 행위)
Repository
→DB에 접근하고 데이터를 읽고 쓰는 역할
을 하는 컴포넌트Repository
는 데이터베이스와 상호 작용하여 데이터를 가져오고 저장
Model
은 서비스 로직과 DB 연동을 담당하는데
그 크기가 굉장히 커질 수 있고, 애플리케이션의 핵심역할로 볼 수 있다. 이러한Model
이 하나의 구조로 모든 기능을 수행한다면 유지보수에 문제가 있을 수 있어Domain
과Repository
로 나눠서 개발한다.
설명을 잘해주셨어요
https://binco.tistory.com/entry/Java-MVC%ED%8C%A8%ED%84%B4-%EB%B0%94%EB%A1%9C%EC%95%8C%EA%B8%B0