MVC 패턴

개비의 끄적끄적·2023년 2월 24일

💡 MVC 패턴이란?

Model, View, Controller의 약자로 하나의 프로젝트를 구성할 때 그 구성 요소를 3가지의 역할로 구분한 패턴.
-> controller는 model을 통해 데이터를 가져오고, 가져온 정보를 바탕으로 시각적 표현을 담당하는 view를 제어해 사용자에게 전달한다!
-> '유지보수의 편리성'이라는 장점을 갖는다.

☝ 모델(Model)

모델은 애플리케이션의 정보, 데이터를 나타낸다.
컨트롤러가 호출하면 DB와 연동하여 데이터와 연관된 비즈니스 로직을 처리하는 역할(데이터 추출, 저장, 삭제, 업뎃 등)을 수행~

☝ 뷰(View)

사용자에게 보여지는 부분. 여러 개의 뷰(view)가 존재할 수 있으며 전달 받은 데이터를 화면에 표시해주는 역할을 한다.

☝ 컨트롤러(Controller)

모델(model)과 뷰(view) 사이를 이어주는 인터페이스 역할을 한다.
사용자로부터 뷰에 요청이 있으면 컨트롤러(controller)는 해당 업무를 수행하는 모델을 호출하고, 모델이 업무를 수행해내면 결과를 뷰에 다시 전달~

🔎 Model1과 Model2

  1. Model1
    뷰(view)와 컨트롤러(controller)가 JSP에서 모두 구현되는 구조. 즉 사용자의 요청과 응답이 모두 하나의 JSP에서 수행된다.
    JSP가 사용자의 요청을 받아 자바빈(DTO, DAO)을 호출, 컨트롤러의 역할을 JSP가 담당~

    1-1. (jsp로 화면 및 비즈니스 로직 처리)
     1-2. (jsp 태그가 살아있으면 화면, 태그를 다 죽이면 비즈니스 로직)
     1-3. (jsp가 jsp를 부르는 스타일!)
  2. Model2
    Model1과 달리 뷰(view)와 컨트롤러(controller)가 분리되어 있는 구조.
    컨트롤러는 Servlet에서 담당, 뷰는 JSP에서 담당하는 방식으로 분리시킴으로써 사용자의 요청에 대한 처리와 응답에 대한 처리를 독립적으로 수행. 개발 및 유지보수가 비교적 쉽고 코드 재사용 가능하다는 장점!

    2-1. (java와 jsp를 분리)
     2-2. (대표적인 패턴이 mvc 패턴)
     2-3. (비즈니스 로직 처리 - Model(java 클래스 사용))
         (화면 처리 - View(jsp 사용))
         (요청 처리 - Controller(servlet 사용))

    📌 jsp가 요청하면 모든 요청은 controller가 받음.(요청 인식, 요청 확인 후 요청 처리할 model 실행. 즉, 어떤 model이 이 요청을 처리할 수 있는지 파악하고 그 모델을 실행시킴)
    -> model에서 처리 결과를 받음
    -> 응답할 view로 이동

    :: 요청과 model을 연결해주는 것이 Controller의 역할.


📢 참고
https://osy0907.tistory.com/63
https://junhyunny.github.io/information/design-pattern/mvc-pattern/
https://velog.io/@ovan/MVC-Model1%EA%B3%BC-MVC-Model2

profile
앗녕하세요! 블비의 개적발적🐾

0개의 댓글