관리 메뉴

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

MVC 패턴(모델 2)을 사용한 게시판 2 - 모델 기반의 간단한 MVC 패턴 구현하기 2 : 프로젝트 전반적인 흐름 및 VO와 리소스 해제 클래스 만들기 본문

웹 · 앱 개발/JSP & Servlet

MVC 패턴(모델 2)을 사용한 게시판 2 - 모델 기반의 간단한 MVC 패턴 구현하기 2 : 프로젝트 전반적인 흐름 및 VO와 리소스 해제 클래스 만들기

huenuri 2024. 12. 16. 11:32

지금까지 게시판을 모델 2 방식으로 작성하기 위한 전반적인 흐름을 파악했다. 이전 장에서와 큰 차이점은 컨트롤러가 비즈니스 로직과 프리젠테이션을 제어한다는 점이다. 이 때문에 이전 작업과 모두 동일하고 컨트롤러만 새롭게 등장하게 된다. 컨트롤러를 위해 새롭게 제공되는 클래스는 BoardServlet.java와 ActionFactory.java와 Action.java이다. BoardServlet.java와 ActionFactory.java는 컨트롤러 역할을 하는 서블릿 클래스이고, Action.java는 모델 역할을 하는 모든 클래스를 컨트롤러가 동일한 방식으로 접근할 수 있도록 하기 위한 모델들의 인터페이스이다. 바로 이들이 모델 2에서 새롭게 등장하는 클래스이다.


 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

프로젝트 실습 전 준비할 것

 

1. 새 프로젝트 만들고 jar 파일 붙여 넣기

 

새 프로젝트를 만들고 이처럼 jar 파일을 붙여 넣는다.


 

 

 

 

2. 프로젝트 실행하기

DBCP를 이용해서 데이터베이스에 연결 가능한 Connection 객체를 얻어오기 위한 server.cml 파일의 <Context> 태그에 <Resource> 태그를 추가하려면 일단 지금 생성한 프로젝트를 실행해야 한다.

JSP 페이지가 없어서 오류가 발생하더라도 실행한다.

 

 

 

이처럼 실행하면 다음과 같은 창이 뜬다.

 

 

 


 

 

 

 

3. Context 태그 살펴보기

책에는 프로젝트를 새로 만들 때마다 Context 태그를 수정하라고 하지만 난 그럴 필요가 없어 그대로 두었다.

 

이제 프로젝트를 만들 준비가 다 되었다. 데이터베이스에 저장된 게시글 정보 한 개를 저장하기 위해서는 VO 클래스가 필요하다. 우선 게시글 정보를 저장하는 VO 클래스를 만들겠다.


 

 

 

 

 

 

[직접 해보기] 이클립스에서 게시글 정보를 저장하는 VO 클래스 만들기

 

1. 패키지와 클래스 만들기


 

 

 

2. 필드 선언하기

 

작성한 날짜를 저장하기 위한 필드인 writedate는 Timestamp 형으로 선언한다. Timestamp는 java.sql 패키지에 존재하기 때문에 import 구문을 추가해야 한다.


 

 

 

 

3. getter, setter 생성하기

 

 

 

 

VO 클래스는 단지 게시글 정보를 한 개 저장하는 클래스이기 때문에 DAO 클래스에서 객체를 생성한 후 사용해야 한다. 여기서는 DAO 클래스에서 사용될 VO 클래스를 미리 만들어만 놓을 뿐 사용하지는 않는다.

이번에는 데이터베이스에 저장된 데이터를 얻어오거나 새로운 게시글의 정보를 데이터베이스에 추가, 수정, 삭제 작업을 하기 이한 DAO 클래스를 만들겠다. 게시글에 관련된 DAO 클래스이기 때문에 클래스 이름은 BoardDAO로 할 것이고 이 클래스에 정의할 메서드는 다음과 같다.

 

 

 

 

간단한 쇼핑몰만 생각하더라도 회원, 게시판 외에도 상품 정보나 주문 처리를 위한 DAO 클래스 등 DAO 클래스의 수가 엄청나게 많아질텍디 DBManager를 만들어 놓으면 DAO 클래스가 많아지더라도 DBManager 클래스를 통해 커넥션을 얻어오고 리소스를 해제하면 되기 때문에 코드를 중복해서 기술할 필요가 없어진다.


 

 

 

 

 

[직접 해보기] Connection 객체 얻기와 사용이 끝난 리소스 해제를 위한 클래스 만들기

 

1. 패키지에 클래스 만들기

 

 

 

2. 클래스에 코드 작성하기

 

이렇게 해서 DBManager까지 만들어보았다.


 

 

 

 

학습을 마치고

다 만들려면 아직 멀었지만 오류없이 파일이 만들어지니 정말 좋았다. 다음 포스트에 계속해서 MVC 패턴을 사용해 프로젝트를 만들어보겠다. 한 시간만 더 공부하고 쉬어야겠다.