관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

MVC 패턴(모델 2)을 사용한 게시판 1 - 모델 기반의 MVC 패턴의 개요 및 모델 기반의 간단한 MVC 패턴 구현하기 본문

웹 · 앱 개발/JSP & Servlet

MVC 패턴(모델 2)을 사용한 게시판 1 - 모델 기반의 MVC 패턴의 개요 및 모델 기반의 간단한 MVC 패턴 구현하기

huenuri 2024. 12. 16. 10:40

조금 전에 몇 시간 동안 파일을 다운받을 수 있는 업로드 시스템에 대해서 공부했지만 이 부분은 JSP로 도저히 해결될 기미가 보이지 않았다. 코드 문제면 어떻게든 해결을 보았을 텐데 JAR 파일이 너무 오래된 것이라 다운 받을 수도 없고 다른 해결책으로 추가했으나 이 또한 오류가 많아 도저히 되지 않았다.

그리고 파일 시스템은 JSP보다 Spring으로 하는 것이 더 좋다고 하니 JSP에서 특별히 공부할 필요는 없을 것 같다. 아무튼 난 마지막 장인 11장 학습을 시작하기로 했다.

 

오늘 아침까지 해서 이 단원 학습을 마쳤으면 한다.


 

 

 

 

 

모델 2 기반의 MVC 패턴의 개요

지금까지 우리가 배운 JSP와 서블릿을 이용한 웹 프로그래밍 방식을 정리해보자. 예를 들어 웹사이트에서 회원 관리라는 기능을 개발하려 할 때, 회원가입 페이지가 있다. 사용자에게 보이는 페이지는 JSP로 만들고, 그 뒤에 회원 가입을 위한 로직과 이를 위한 페이지를 연결해 주는 기능은 서블릿으로 만들었다.

회원 관리를 위해서는 회원 정보를 저장할 데이터베이스가 필수적인데 이를 위해서 VO 객체레를 이용해 DAO를 통해 데이터베이스와 데이터를 주고 받았다. 이러한 방식은 실제 현업에서 웹 애플리케이션 개발 시 사용하는 Model 2 방식과 유사하다. 이 방식은 MVC 패턴이라고도 부른다. 

 

Model 1 방식은 프로그램이 조금만 복잡해지면 비즈니스 로직과 프리젠테이션 영역의 구분이 없어서 개발자와 디자이너가 협업을 하는데 혼란을 초래할 수 있다. 비즈니즈 로직을 중심으로 한 모델 영역과 디자인을 중심으로 한 뷰 영역이 나왔다. 그리고 둘을 제어하기 위한 컨트롤러가 필요하다 보니 MVC 패턴이 나오게 되었다.

 

 

 

 

 

 

 

 


 

 

 

 

 

MVC 패턴의 컨트롤러 : 서블릿

 

 

 

비즈니스 로직은 모델에서 처리하므로 서블릿은 모델이 내부적으로 어떻게 비즈니스 로직을 처리하는지 알 필요가 억다. 웹 브라우저의 요청에 맞는 모델을 사용하여 요청한 기능을 수행하고 그 결과를 뷰인 JSP에 전달해 주기만 한다. 요청 처리 결과는 request나 session 객체에 저장되어 뷰 역할을 하는 JSP 페이지로 전달된다.


 

 

 

 

MVC 패턴의 뷰 : JSP

모델 2 구조에서 뷰의 역할은 JSP로 구현한다. MVC 패턴에서 뷰의 역할을 하는 JSP는 비즈니스 로직과 관련된 코드가 없다는 점을 제외하고는 일반 JSP 페이지와 거의 동일하다. 다만 컨트롤러인 서블릿에서 request나 session 기본객체에 저장한 데이터를 사용해서 알맞은 결과를 출력해 준다는 점이 특징이다.

 

 

 

MVC 패턴의 모델

 

 

여기서는 개념 정도만 이해하도록 하고, 뒤이어 간단한 게시판을 작성해 가면서 MVC 패턴에 대해 차근차근 완벽하게 이해하도록 하자.


 

 

 

 

 

게시판 - 모델 2 기반의 간단한 MVC 패턴 구현하기

이번에는 웹사이트에서 흔히 볼 수 있는 게시판을 작성해보겠다. 게시글 정보를 저장하는 데이터베이스를 구축하고 작성자가 입력한 게시글 정보를 데이터베이스에 저장한 후에 이 정보를 볼 수 있도록 게시글 정보를 얻어온다. 그리고 이전에 올렸던 게시글을 수정, 삭제하는 웹 애플리케이션을 작성해 보도록 하겠다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

학습을 마치고

앞으로 만들 프로젝트에 대한 설명이었다. MVC 패턴은 자바 수업 때 공부해서 어느 정도 잘 알고 있다. 요즘에는 기록하기 귀찮으면 이렇게 책을 스캔하니 훨씬 더 정리하기가 편해졌다. 그래도 스캔하는 것도 쉬운 일이 아니다. 한 번은 거의 다 스캔했는데 자료가 다 날아가서 다시 스캔을 해야 했다.

이제 다음 포스트에서는 본격적으로 실습을 진행하게 될테니 좀 더 재미있어질 것 같다.