Model: 애플리케이션의 데이터와 비즈니스 로직을 담는 객체(DTO)
View: 사용자에게 모델의 정보(데이터)를 보여주는 역할을 함. 비즈니스 로직을 포함하지 않으며, 하나의 모델을 다양한 뷰에서 사용할 수 있음. ( .JSP )
Controller: 모델과 뷰 사이에 어떤 동작이 있을 때 조정하는 역할을 함. 웹으로부터 받은 요청에 가장 적합한 모델을 생성하는 것을 처리하는 역할과 사용자에게 응답하는 적절한 뷰를 선택하여 해당 모델을 전달하는 역할을 함.
웹 애플리케이션에 MVC 패턴을 사용하면 유지 보수가 용이하고 쉽게 확장 및 테스트할 수 있으며, 또한 내비게이션 컨트롤이 중앙 집중화되어 있음.
| 모델 | 장점 | 단점 |
| 모델1 | 구조가 단순하여 개발자의 수준이 낮아도 쉽게 익힐 수 있어 구현이 용이하다. 개발 초기에 복잡한 설정이 필요 없어 빠른 개발이 가능하다. 개발 속도가 빠르다 | 출력을 위한 뷰 코드와 로직 처리를 위한 자바 코드(컨트롤러)가 섞여 있어 분업이 용이하지 않다. 코드가 복합하여 유지보수가 어렵다. 자바 코드와 JSP, HTML이 섞이기 때문에 코드가 복잡하다. |
| 모델2 | 출력을 위한 뷰 코드와 로직 처리를 위한 자바 코드를 분리하기 떄문에 모델1 보다 코드가 간결하다. 뷰와 로직 처리에 대한 분업이 용이하다. 기능에 따라 분리되어 있기 때문에 유지 보수가 용이하다. 확장이 용이하다. | 구조가 복잡하여 습득하기 어렵고 작업량이 많다. 개발 초기에 설정이 필요한 부분이 모델 1보다 많기 때문에 실질적인 작업을 시작하기까지 시간이 걸린다. 코드가 분리됨으로써 관리해야 할 파일이 많아진다. |
PreparedStatement - 자바에서 SQL문을 실행하기 위한 인터페이스
ResultSet - select작업 할 떄만 사용. (insert,delete,update할땐 ResultSet없음)
<%
// Java에서 SQL문을 실행하기 위한 인터페이스
PreparedStatement pstmt = null;
// DB에서 Select된 결과를 자바에서 저장하기 위한 자바 인터페이스
ResultSet rs = null;
String sql = "SELECT * FROM book";
// sql문장과 DB의 연결
pstmt=conn.prepareStatement(sql);
// oracle에서 ctrl+enter와 같은 기능
// sql의 대한 결과를 ResultSet에 저장
rs=pstmt.executeQuery();
while (rs.next()) {
%>
차이점
rs = pstmt.executeQuery();
pstmt.executeUpdate();
| 메소드 | 반환유형 | 설명 |
| excuteQuery(String sql) | ResultSet | SELECT 문을 실행할 떄 사용(ResultSet 객체 반환) 이 메소드는 ResultSet에 저장되므로, SELECT 작업시 사용. rs = pstmt.executeQuery(); |
| excuteUpdate(String sql) | int | 삽입, 수정, 삭제와 관련된 SQL문 실행에 사용 int cnt = pstmt.executeUpdate(); 몇 건을 처리했는지에 대한 값을 저장되므로, INSERT, UPDATE, DELETE 작업시 사용. |
| close( ) | void | Statement 객체를 반환할 떄 사용. |
'JSP' 카테고리의 다른 글
| [JSP] 쿠키 (0) | 2025.12.05 |
|---|---|
| [JSP] 세션 (0) | 2025.12.05 |
| [JSP] 필터 (1) | 2025.12.05 |
| [JSP] 예외처리 (0) | 2025.12.04 |
| [JSP] 시큐리티 (0) | 2025.12.04 |