상세 컨텐츠

본문 제목

Model2

Spring

by ssu_jo 2021. 5. 2. 23:39

본문

728x90

1. Model2 방식이란?

요청 접수, 요청 처리, 응답 HTML 생성의 기능을 분리하여 웹 개발을 하는 방식입니다.

분류 기능 개수
컨트롤러 클래스 ⓵ 요청 접수
⓶ 비즈니스 클래스에 요청 처리 지시
⓹ JSP 페이지명에 해당하는 JSP 페이지 호출하기
1개
비즈니스 클래스 ⓷ 요청 처리 후 응답물 얻기
⓸ 호출할 JSP 페이지명 리턴하기
n개(접속 URL 개수)
JSP 페이지 ⓺ DB 연동 응답물을 HTML 소스에 반영하고 HTML 파일 생성 n개(접속 URL 개수)


2. Model2 방식의 장점

역할에 따라 컨트롤러 클래스, 비즈니스 클래스, JSP로 분리하여 코딩하므로 개발자, 디자이너의 협업이 쉽고, 책임 영역이 확실합니다.
유지 보수가 Model1 방식보다 쉬습니다.

 

3. Model2 방식의 단점

기능에 따라 컨트롤러 클래스, 비즈니스 클래스, JSP로 분리하여 코딩하므로 Model1 방식보다 작업 속도가 느립니다.
1개의 가상주소에 대응하는 1개의 비즈니스 클래스가 있어야 합니다.
비즈니스 클래스 내부에서 기능 구현을 모두 개발자가 주도적으로 일일이 코딩해야 하므로 여전히 유지보수가 어렵습니다.
기능 구현에 필요한 주요 객체의 생성 코딩을 개발자가 해야 합니다.
클라이언트가 보낸 데이터를 일일이 코딩으로 꺼내야 합니다.
DB 연동 시 관련 객체를 일일이 생성하고 메소드를 호출해야 합니다.
트랜잭션 설정을 개발자가 해야 합니다.

 

4. Model1 방식과 Model2 방식의 비교

비교항목
제작 속도 Model1 >> Mode2
규모 큰 프로젝트 경우 유지보수성 Model1 < Mode2
디자이너와 협업과 책임 구분 Model1 < Mode2
보안성 Model1 << Mode2

 



5. HttpServletRequest 객체, HttpServletResponse 객체, HttpSession 객체, Cookies 객체의 역할

객체명 역할
HttpServletRequest 객체 요청 메시지 안의 파라미터값 리턴 클라이언트가 보낸 쿠키값 소유한 Cookies 객체 메모리 위치 주소값을 리턴 HttpSession 객체 메모리 위치 주소값 리턴 타 객체 저장/리턴
HttpServletResponse 객체 클라이언트에게 보낼 쿠키값 저장 클라이언트에게 페이지 이동 명령 전달
HttpSession 객체 재접속 시 사용할 객체 저장하고 리턴
Cookies 객체 웹브라우저가 보내온 쿠키값 저장 또는 웹브라우저에게 전송할 쿠키값을 리턴

 

6. HttpServletRequest 객체, HttpServletResponse 객체, HttpSession 객체의 생성/제거 시점

객체명 객체 생성 시점 객체 제거 시점
HttpServletRequest 객체 URL 주소로 접속 시 매번 새 롭게 생성 doGet | doPost (~) 실행 완료 후 제거
HttpServletResponse 객체
HttpSession 객체 웹브라우저와 웹서버 간에 연결 상태가 없는 상태에서 처음 접 속 시 한번만 생성 웹브라우저와 웹서버 간에 연결 상태가 끊어질 경우에만 제거 예) HttpSession 객체에 설정 된 수명이 다할 때

HttpSession 객체는 생성 직후 해당 웹브라우저와 웹서버의 연결 상태가 유지되는 동안은 계속 살아있고, 웹 브라우저가 재접속 시 모든 비즈니스 클래스나 JSP 페이지에서 호출하여 재사용할 수 있습니다.
HttpSession 객체는 살아있는 동안 해당 웹브라우저 혼자만 독점합니다.
HttpServletRequest 객체, HttpSession 객체의 존재 범위는 ControllerAction 클래스, XxxAction 클래스, ~.jsp입니다.
ControllerAction 클래스는 단 1개만 존재하여 모든 클라이언트 요청을 제일 먼저 맞이합니다.
주로 접속하는 가장 주소 개수만큼 XxxAction 클래스, xxx.jsp도 존재합니다.
http://**/xxx.do는 그 경로에 자원이 실존하지 않는 가상 자원 주소입니다.
가상 주소 xxx.do와 대응하는 XxxAction 클래스의 정보를 ~.properties 파일에 따로 저장하여 관리 할 수도 있습니다.

· ~.properties 파일 특징
2개의 데이터를 =로 매칭해 주는 문자열을 포함하는 텍스트 파일입니다.
예) memRegForm.do=MemRegFormAction

XxxAction 클래스는 경우에 따라서 DAO 클래스와 연동하지 않을 수도 있습니다.
XxxAction 클래스와 DAO 클래스 사이에서 DB 연동 요청, DB 연동 응답 시 주고받는 데이터는 주로 JavaBean에 넣어 주고받습니다.
모든 XxxAction 클래스는 단 1개의 인터페이스를 구현받아 하나의 메소드를 재정의합니다.
Action이란 단어와 do라는 확장자는 프로젝트마다 다른 문자열로 표현될 수 있습니다.
※ DAO 클래스의 메소드 리턴 값은 주로 boolean, int, double, String, HashMap, ArrayList, 배열 객체
※ 결국 개발자가 지속적으로 손대야 할 것은 XxxAction 클래스, JSP, DAO 클래스

728x90
LIST

'Spring' 카테고리의 다른 글

MVC 동작 구조  (0) 2021.05.03
JSP 기술의 종류  (0) 2021.04.30
JSP(Java Server Page) - Spring  (0) 2021.04.24
Cookie 객체 - Spring  (0) 2021.04.22
HttpSession 객체 - Spring  (0) 2021.04.21

관련글 더보기

댓글 영역