본문 바로가기
JSP

[JSP] MVC (Model, View, Controller)

by lmyourpearl 2025. 12. 5.

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