JSP Model1, Model2(MVC)
Model1 구조
-
View와 로직을 모두 JSP 페이지 하나에서 처리하는 구조
-
구성 요소는 크게 JSP와 JavaBean or Service Class 2개로 나뉘어짐.
-
JSP 페이지 내에서 로직 처리를 위한 자바 코드가 출력을 위한 코드와 섞여 삽입됨.
-
브라우저에서 요청이 들어오면 JSP는 자신이 직접 JavaBean이나 따로 작성한 ServiceClass를 이용해 작업을 처리하고, 그 처리한 정보를 클라이언트에 출력.
-
장점
- 구조가 단순해 익히기 쉬움.
- 숙련된 개발자가 아니더라도 구현이 용이
-
단점
- 출력을 위한 View 코드와 로직 처리를 위한 자바 코드가 함께 섞이기 때문에 JSP 코드 복잡
- JSP 코드에서 백엔드와 프론트엔드가 혼재되기 때문에 분업 용이 X
- 코드가 복잡해져 유지보수 어려워짐
Model2 방식구조
-
현대 웹 개발방식은 대부분 Model2 사용
-
크게 서블릿, JSP, JavaBean or ServiceClass 3가지로 나뉨
-
요청이 들어오면 요청에 따른 로직 처리는 이를 처리할 모델인 ServerClass or JavaBean이 담당.
-
요청 결과는 뷰(View)단인 JSP에 출력
-
흐름 제어는 컨트롤러(Controller)인 서블릿에서 담당.
-
장점
- 출력을 위한 View 코드와 로직 처리를 위한 자바 코드를 분리하기 때문에 Model1에 비해 코드가 복잡하지 않음.
- View, 로직 처리에 대한 분업 용이
- 기능에 따라 분리되었기 때문에 유지보수 용이
-
단점
- 구조가 복잡해 습득이 어렵고 작업량 많음
- Java에 대한 깊은 이해 필요
MVC(Model-View-Controller)
어플리케이션을 세 가지 역할로 구분한 개발 방법론
-
JSP를 기반으로 한 웹 어플리케이션 구조.
-
사용자 인터페이스로부터 비즈니스 로직을 분리하여 어플리케이션의 시각적 요소와, 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 수정 및 유지보수 할 수 있음.
Model
- 애플리케이션에 비즈니스 로직과 사용되는 데이터를 다루는 영역
- 프로그램 내부 상태, 즉 프로그램의 정보(데이터)
- 사용자에게 보여줄 데이터
- 일반적으로 비즈니스 데이터는 DBMS에 의해 관리되고, 데이터를 다루는 연산은 SQL문을 통해 구현
View
- 최종적으로 사용자에게 보여줄 프리젠테이션 로직을 담당하는 영역.
- 사용자가 보는 화면(사용자 인터페이스)
Controller
-
사용자의 요청을 받아 이를 수행하기 위한 비즈니스 로직을 선택하고 호출하며, 수행한 비즈니스 로직의 결과를 View를 통해 보여준다.
- 사용자가 Controller에게 요청을 보내고, Controller는 Model을 통해 데이터를 가져온다. 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해 사용자에게 전달함.
- 데이터와 비즈니스 로직간의 상호작용을 뜻함
- 화면에 보여질 URL을 Mapping 시키는 역할
donate.html