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 |