[WEB] MVC pattern

728x90

 

■  MVC ( Model-View-Controller ) pattern

  :  사용자 인터페이스, 데이터, 논리 제어를 분리하는 소프트웨어의 개발 방법( Software Design Pattern )

  -  소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점
  -  소프트웨어의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있음

  •  Model  --  데이터( 정보 )
  • 포함해야 할 데이터가 무엇인지 정의
  • 일반적으로 데이터베이스 테이블에 대응됨
  • 모델의 상태가 변경되면 컨트롤러와 뷰에 이를 통보  ( 어떨 땐 컨트롤러나 뷰가 직접 모델의 상태를 읽어 오기도 함 )
  • 어떠한 동작을 수행하는 코드
    -  표시 형식에 의존하지 않음
    -  순수하게 Public 함수로만 이루어짐

    -  몇몇 함수들은 사용자의 질의(쿼리)에 대해 상태 정보를 제공.
    -  나머지 함수들은 상태를 수정
  •  View  --  사용자 인터페이스
  • 데이터를 보여주는 방식 정의
  • 클라이언트 측 기술인 html/css/javascript들을 모아둔 컨테이너
  • 레이아웃, 화면 처리
  • 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어와 업데이트 함 (반드시 필요)
  • 모델은 여러 개의 뷰를 가질 수 있음
  •  Controller  --  논리 제어
  • 사용자로부터의 입력에 대한 응답으로 모델/뷰를 업데이트하는 로직 포함
  • 데이터와 비즈니스 로직 사이의 상호 동작 관리
  • 명령을 모델과 뷰 부분으로 라우팅( routing )
    ( 사용자의 요청사항에 맞는 데이터를 Model을 통해서 가져오고, 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달 )
  • 모델에 명령을 보냄으로써 모델의 상태 변경 가능
  • 뷰는 여러 개의 컨드롤러를 가지고 있음

참고 : 
위키백과  ko.wikipedia.org/wiki/모델-뷰-컨트롤러
MDN  developer.mozilla.org/ko/docs/Glossary/MVC
생활코딩  opentutorials.org/course/697/3828

 

반응형

'웹 개발 ( Web Development ) > 백엔드 ( Back-end )' 카테고리의 다른 글

[WEB] HTTP  (0) 2021.07.06
[WEB] URL & URI  (0) 2021.07.05
[WEB] MVC - Model ( VO, DTO, DAO )  (0) 2021.07.05
[MyBatis] SQL insert 시 주 키 리턴하기  (0) 2021.05.11
[JDBC] SQL & Java Type Matching  (0) 2021.05.10