MVC패턴

yunuyununu·2024년 10월 26일
0

개발 상식

목록 보기
2/17

MVC패턴이란?

MVC(Model-View-Controller)패턴은 애플리케이션을 세가지 역할로 구분한 개발 방법론이다. 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다.
이 패턴을 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있게 된다.


위 개념을 WEB에 적용 시 (동작순서)
1. 사용자가 웹사이트에 접속 (Users)
2. Controller는 사용자가 요청한 웹페이지를 서비스하기 위해 모델을 호출 (Manipulates)
3. Model은 DB나 파일과 같은 데이터 소스를 제어한 후 그 결과를 리턴
4. Controller는 Model이 리턴한 결과를 View에 반영 (Updates)
5. 데이터가 반영된 View는 사용자에게 보여짐 (Sees)


MVC패턴 구성요소

📲 Model

  • 애플리케이션의 핵심 데이터와 비즈니스 로직을 나타냄.
  • 데이터 저장소와의 상호작용, 데이터 처리 및 유효성 검사와 같은 작업 수행.
  • 독립적으로 작동하며, 뷰와 컨트롤러와 직접적으로 통신X

💻 View

  • 사용자에게 보여지는 애플리케이션의 UI 부분.
  • 모델에서 데이터를 받아 사용자에게 표시함.
  • 사용자의 입력을 컨트롤러에 전달함.
  • 애플리케이션의 데이터 표시와 관련된 모든 작업을 처리함.

🔧 Controller

  • 사용자 입력을 처리하고, 애플리케이션의 흐름을 관리함.
  • 뷰에서 전달된 사용자 입력을 분석하고 적절한 모델 기능을 호출하여 데이터를 조작하거나 수정함.
  • 그 결과를 다시 뷰에 전달하여 화면에 표시 할 수 있음.

MVC패턴 방식

MVC패턴에는 모델1 방식과 모델2 방식이 있다.

📌 MODEL1
: JSP에서 출력과 로직을 전부 처리

모델1 방식은 Controller영역에 View 영역을 같이 구현하는 방식이며, 사용자의 요청을 JSP가 전부 처리한다. 요청 받은 JSP는 JavaBean Service Class를 사용하여 웹브라우저 사용자가 요청한 작업을 처리하고 그 결과를 출력한다.

📌 MODEL2
: JSP에서 출력만 처리

모델2 방식은 웹브라우저 사용자의 요청을 서블릿이 받고 서블릿은 해당 요청으로 View로 보여줄 것인지 Model로 보낼 것인지를 판단하여 전송한다. 또한 HTML 소스와 Java 소스를 분리해놓았기 때문에 모델1 방식에 비해 확장과 유지보수가 쉽다.

* Model1 방식은 백엔드와 프론트엔드 역할분담이 모호해져 협업이 어렵기 때문에 거의 쓰지 않음.

출처: https://cocoon1787.tistory.com/733

profile
코딩이의 끄적끄적

0개의 댓글