MVC

김동헌·2023년 10월 31일
0

CS

목록 보기
1/9
post-thumbnail

사실 스프링 시리즈에서 정리를 한번 했었습니다.
우테코를 진행하면서 적용하는 것이 낯설어 간략하게 한번 더 정리하고 해당 포스트를 보며 개발하기 위해 포스팅을 하겠습니다.

Model -> Controller -> View 순으로 개발하는 것이 일반적




🔍 Model

데이터를 처리하는 영역 비즈니스 로직
DB와 연동하여 사용자가 입력한 데이터를 입력하거나, 사용자에게 출력할 데이터를 관리한다.

DB와 연동하는 DAO(Data Access Object)
데이터 구조를 표현하는 DO(Data Object) || Entity로 구성된다.

View와 Controller에 의존하지 않는다.

개발할 때 가장 먼저 구현한다


🔍 Controller

MVC패턴의 핵심으로 모든 사용자 요청의 중심, 위 사진의 Application Server을 보면 사용자가 어떤 작업을 수행(request)시에 특정 뷰로 요청이 가는 것이 아니라, 컨트롤러에서 우선적으로 요청을 받아서 처리한다.

만약 사용자가 아이디 중복체크를 클릭했을 경우 해당 아이디가 현재 존재하는지 여부를 알기 위해서 Model을 통해 DB를 조회, 결과값을 받아 뷰에게 전달한다.

간략하게 클라이언트 요청을 적절한 서비스로 라우팅하는 역할

특정 뷰를 지정하기 때문에 뷰와 종속 관계

만약 프로그램의 규모가 점점 커진다면 컨트롤러의 역할이 상당이 커지고 복잡해져 관리 및 유지보수가 어려워진다.

이를 해결하기 위한 Service단이 존재한다.


🔍 Service

Controller의 비중을 줄여주기 위해 실무에서 많이 사용된다. Controller에서는 매핑을 위주로 하고, 실질적인 요청 처리 함수는 Service에 집중한다. 비즈니스 로직임


🔍 View

사용자에게 보여지는 UI 부분
View는 Model에서 정보를 받아 출력을 하는 역할

Model, Controller와의 종속성 없이 구현한다.


🔍 Domain, Repository

Domain객체의 정보를 담는 역할을 하는 컴포넌트로, 주로 데이터 모델을 나타냄. 이는 애플리케이션에서 사용하는 주요 데이터 구조와 엔티티를 정의
Domain → 실제 다루고자 하는 서비스의 비즈니스 로직.(계산등을 하는 행위)

Repository DB에 접근하고 데이터를 읽고 쓰는 역할을 하는 컴포넌트 Repository는 데이터베이스와 상호 작용하여 데이터를 가져오고 저장

Model은 서비스 로직과 DB 연동을 담당하는데
그 크기가 굉장히 커질 수 있고, 애플리케이션의 핵심역할로 볼 수 있다. 이러한 Model이 하나의 구조로 모든 기능을 수행한다면 유지보수에 문제가 있을 수 있어 DomainRepository로 나눠서 개발한다.


아래 링크 참고하시면 좋아요 :>

설명을 잘해주셨어요
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

profile
백엔드 기록 공간😁

0개의 댓글