MVC 패턴
MVC 패턴이란 ?
Model - View - Controller의 약자로, 애플리케이션을 세 가지 역할로 구분한 개발 방법론.
이 패턴을 성공적으로 사용하면 , 사용자 인터페이스(UI)로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있음.
Model(모델)
- 데이터를 가진 객체
- Model은 data와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비즈니스 로직을 처리하기 위한 역할
- 즉 모델은 컨트롤러가 호출하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 연관된 비즈니스 로직을 처리함
모델 규칙
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야만 함
- 뷰나 컨트롤러에 대해서 어떠한 정보도 알지 말아야 함
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 함
View(뷰)
- View는 사용자에게 보여주는 화면(UI)에 해당
- 사용자와 상호작용을 하며 컨트롤로부터 받은 모델의 결과값을 사용자에게 화면으로 출력
- HTML / CSS / JavaScript들을 모아둔 컨테이너
뷰의 규칙
- 모델이 가지고 있는 정보를 따로 저장해서는 안됨
- 모델이나 컨트롤러와 같이 다른 구성 요소를 몰라야 함
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 함
Controller(컨트롤러)
- 컨트롤러는 모델과 뷰 사이를 이어주는 인터페이스 역할
- 모델이 데이터를 어떻게 처리할지 알려주는 역할
- 사용자로부터 요청이 있으면 컨트롤러는 해당 업무를 수행하는 Model을 호출하고 모델이 업무를 수행하면 다시 결과를 뷰에 전달하는 역할
컨롤러의 규칙
- 모델이나 뷰에 대해서 알고 있어야 함
- 모델이나 뷰의 변경을 모니터링해야 함
Model 1 방식
- 컨트롤러 영역에 뷰 영역을 같이 구현하는 방식으로, 사용자의 요청을 JSP가 전부 처리함
- 요청을 받은 JSP는 JavaBean Service Class를 사용하여 웹 브라우저 사용자가 요청한 작업을 처리하고 그 결과를 출력
- 백엔드와 프론트엔드의 역할 분담이 모호해져 협업이 어려움 , 실제 서비스에서 거의 사용되지 않음
Model 2 방식
- 웹브라우저 사용자의 요청을 서블릿이 받고 서블릿은 해당 요청으로 뷰로 보여줄 것인지 모델로 보낼 것인지 판단하여 전송.
- HTML 소스와 JAVA 소스를 분리해놓기 때문에 모델1방식에 비해 확장 및 유지보수 용이함
- 사용자의 Request(요청)를 Controller가 받음
- Controller는 Service에서 비즈니스 로직 처리 후 결과를 Model에 담음
- Model에 저장된 결과를 바탕으로 시각적 요소 출력을 담당하는 View를 제어하여 사용자에게 전달
Web에서 사용 시
- User: 사용자가 웹 사이트에 접속
- Manipulates: Controller는 사용자가 요청한 웹 페이지를 보여주기 위해 Model을 호출
- Updates: Model은 비즈니스 로직을 통해 DB 및 파일과 같은 데이터를 제어한 후 결과를 반환. 이후 Controller는 Model에게 반환받은 결과를 View에 반영
- Sees: 데이터를 받아온 View가 사용자에게 웹 페이지를 출력하여 보여줌
'📚CS(Computer Science) > 개발상식' 카테고리의 다른 글
[개발상식] 프레임워크(Framework)와 라이브러리(Library)의 차이 (0) | 2024.02.08 |
---|---|
[개발상식] SPA,MPA 개념과 장단점 (0) | 2024.01.23 |
[개발상식] Garbage, GC(Garbage Collection) (1) | 2024.01.06 |
[개발상식] 힙 메모리(Heap Memory) (0) | 2024.01.06 |
[개발상식] 알고리즘(Algorithm)이란 ? (0) | 2023.12.18 |