IT/CS 공부

[CS] MVC

박소민 2022. 4. 1. 18:44
MVC 아키텍처
  • MVC 란?

Model, View, Controller의 약자.

소프트웨어 디자인 패턴의 하나로, 

하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.

 

 

MVC 각 컴포넌트의 역할 <Who, When, What>
  • Controller
    • 일종의 조정자
    • Client의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 Model 컴포넌트를 호출한다
    • Client가 보낸 데이터가 있다면, Model에 전달하기 쉽게 데이터를 가공한다
    • Model이 업무를 마치면 그 결과를 View에게 전달한다
  •  Model
    • Controller가 호출할 때 요청에 맞는 역할 수행
    • 비즈니스 로직을 구현하는 영역으로, 응용프로그램에서 데이터를 처리하는 부분이다
      • 비즈니스 로직: 업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부
    • DB에 연결하고 데이터를 추출하거나 저장, 삭제, 업데이트, 변환 등의 작업을 수행한다.
    • 상태의 변화가 있을 때, Controller와 View에 통보해 후속 조치 명령을 받을 수 있게 한다.
  • View
    • Controller로부터 받은 모델의 결과값을 가지고 사용자에게 출력할 화면을 만든다
    • 만들어진 화면을 웹 브라우저에 전송하여 웹 브라우저가 출력하게 하는 것
    • 화면에 표시된 부분으로 추출한 데이터나 일반적인 텍스트 데이터를 표시하거나
    • 입력폼 또는 사용자와의 상호작용을 위한 인터페이스를 표시하는 영역

 

 

 

MVC 구동 원리 <How>

  • C/S (Client- Server) 구조로 요청하고 그에 맞는 응답을 하는 구조를 기본으로 한다
    1. Web Browser가 Web Server에 Web Application 실행을 요청한다. (MVC 구조가 WAS)
    2. Web Server는 들어온 요청을 처리할 수 있는 Servlet을 찾아서 요청을 전달한다. (매칭)
    3. Servlet은 Model 자바 객체의 메서드를 호출한다
    4. 데이터를 가공하여(DTO) 값 객체(VO)를 생성하거나, JDBC를 사용하여 database와의 인터랙션을 통해 값 객체 생성한다.
    5. 업무 수행을 마친 결과값을 Controller에게 반환한다.
    6. Controller는 Model로부터 받은 결과값을 View에게 전달한다.
    7. JSP는 전달받은 값을 참조하여 출력할 결과 화면을 만들고 Controller에 전달한다.
    8. View로부터 받은 화면을 Web Server에 전달한다.
    9. Web Browser는 Web Server로부터 요청한 결과값을 응답받으면 그 값을 화면에 출력한다.

참고 링크

https://velog.io/@mgm-dev/MVC%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

https://asfirstalways.tistory.com/180

 

'IT > CS 공부' 카테고리의 다른 글

[CS] 트리  (0) 2022.06.11
[CS] 해시테이블  (0) 2022.05.01
[CS] Servlet  (0) 2022.04.01
[CS] REST API  (0) 2022.03.08
[기술 면접 대비] Spring Framework  (0) 2022.03.08