MVC Pattern이란?

맘비·2023년 1월 3일
0

Back-end

목록 보기
1/3

용어 설명

  • Model: 어플리케이션 계층의 정보, 데이터 의미
  • View: 화면 출력 로직을 담당
  • Controller: Model과 View의 연결하는 제어 로직을 담당 (api 주소, 어떤 파라미터를 받을건지 return으로 결과 객체)
  • DAO(=Repository): DB를 사용하여 데이터의 조회 및 조작하는 기능을 전담
  • DTO: 로직을 가지고 있지 않은 순수한 데이터의 객체
  • Service: Controller의 요청에 맞추어 데이터를 가공하고 Controller에게 넘겨주는 비즈니스 로직
  • Servlet: Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술

✔️ DAO와 Repository
DAO와 Repository는 데이터에 접근한다는 점에서 공통점을 갖지만, DAO는 데이터 저장소(DB table) 중심이고, Repository는 객체 중심이라는 차이점이 있다. 또한 DAO는 Repository를 사용해 구현할 수 없지만 Repository는 DAO를 사용해 구현할 수 있기에 Repository가 DAO보다 higher layer라고 할 수 있다.

특징

MVC 패턴은 각각 수행하는 역할이 구분되고 분리되어 있어 기능이 복잡하더라도 가독성과 재사용성이 뛰어나다. 하지만 View와 Model 사이의 의존성이 높다는 것이 큰 단점이다. 어플리케이션이 커질수록 복잡해지고 유지보수가 어려워질 수 있다.

흐름

  1. 사용자의 요청에 따라 적절한 Controller를 찾아 호출
  2. Controller는 해당 Service객체를 찾아 호출
  3. Service객체는 DAO 객체를 이용하여 원하는 Data를 요청
  4. DAO객체는 MyBatis를 이용하는 Mapper를 통해 작업을 수행
  5. Service를 통해 처리된 데이터를 Controller에 전달
  6. Controller는 다시 스프링 MVC 쪽으로 데이터를 전달

참조: Spring MVC model2 패턴 정리 (tistory.com)
[Spring] Spring MVC 패턴 · linked2ev
DAO와 Repository의 차이점 | Dev.Isaac (isaac56.github.io)

profile
기록만이 살 길 ... 말하는 감자애오

0개의 댓글