티스토리 뷰
📍 MVC 패턴
– Model, View, Controller의 약자이며, Model2 개발 방식과 거의 유사한 의미.
– 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴.
– 화면 출력 부분 (디자인 부분)을 View로 칭하고, 데이터베이스와 연동하는 부분 등의 로직 부분을 Model이라 칭하고,
Controller는 이 두 부분을 적절하게 연결시켜주는 역할을 함.
– 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 둠.
→ 내꺼만 알아서 잘하자, "관심사의 분리"
– 최소한의 연결로 최소한의 코드 (= 좋은 프로그램)만 써서 프로그램을 만들기 위해 필요한 패턴.
→ 리펙터링 (재정비)이 잘 되야 좋은 코드.
– 이 패턴을 잘 익히면 다른 언어로 넘어가도 적응 잘함.
▸ MVC 패턴의 흐름
– Controller는 중앙에 위치하여 View와 Model 사이에 연동을 담당.
– MVC로 구성된 사이트에 요청을 하면 초기 진입점은 Controller.
– 반드시 처리할 비즈니스 로직이 존재한다면 Controller를 호출하여 Model에서 비즈니스 로직을 수행하고,
그 결과를 가지고 View에서 보여지게 해야만 함.
– 출력된 View 페이지에서 또 다른 요청을 할 경우도 Controller에게 요청을 하게 되며,
Controller는 요청 내용을 받은 후 Model을 호출하여 요청에 해당하는 비즈니스 로직을 수행함.
그리고 Controller는 Model의 결과값을 얻어 View 페이지로 보내게 됨.
– 모든 요청과 전달은 Controller를 통해 이루어짐.
▸ MVC 패턴의 구성
1. controller (서블릿)
– MVC 패턴에서 View와 Model을 연결시켜주는 핵심 요소.
– 초기 진입점이자 View와 Model을 연동하는 역할을 하기 때문에 서블릿으로 구성되어 있음.
→ 웹에서 요청을 받을 수 있는 Java코드 형태는 서블릿.
– Controller는 요청을 받아서 요청에 해당하는 Model과 View를 호출하는 역할만 담당.
보여지는 페이지가 아닌 연결시켜주는 통로 역할.
– MVC 패턴에서 중심역할을 하며, 반드시 서블릿으로 이루어져야 함.
2. View (JSP)
– MVC 패턴 중 화면 출력 부분에 해당하므로 JSP페이지로 구성, 코드는 거의 디자인에 관한 것으로 이루어져 있음.
→ 단순히 결과를 화면에 보여주는 정도로만 사용됨.
– View에서는 절대 데이터베이스 연동과 같은 비즈니스 로직을 구성하지 않음.
– Controller를 통하여 Model에서 처리한 결과를 화면에 출력할 때 사용.
3. Model (POJO)
– MVC 패턴에서 실제로 비즈니스 로직을 실행하는 부분.
– Mode 클래스 파일 (Plain Old Java Object = POJO)로 이루어져 있으며, 개발할 시스템의 비즈니스 로직이 작성됨.
– 비즈니스 로직을 처리하여 얻은 결과를 Controller를 통해 View 페이지로 전달하여 처리된 내용이 화면에 표시됨.
– 데이터베이스 작업을 할 경우 Model부분에서 이루어짐.
🐾 참조 도서 및 사이트 🐾
— JSP 2.3 & Servlet 3.1
'JSP' 카테고리의 다른 글
코드의 기본 실행 순서 / Model1과 Model2의 개요 (0) | 2023.04.16 |
---|---|
JSTL 국제화 & 형식화 액션 — fmt (0) | 2023.04.14 |
JSTL의 기본액션 — core (0) | 2023.04.13 |
서블릿과 JSP페이지 연결 / 정보 (데이터) 전달 (0) | 2023.04.13 |
JSTL (JSP Standard Tag Library)과 EL (Expression Language) (0) | 2023.04.13 |
- Total
- Today
- Yesterday
- 오버라이딩
- 로컬저장소
- 출력문
- jsp
- Dao
- 원격저장소
- null
- Java
- Git
- 주석문
- 숫자형
- 논리형
- model2
- 다형성
- 인자
- 제어문
- 데이터타입
- 매개변수
- javascript
- 단일행함수
- DB
- JSTL
- Method
- 문자형
- gitbash
- github
- Object
- mysql
- 업캐스팅
- 내장객체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |