티스토리 뷰

반응형

이 좋은 자료를 왜 많은 분들이 찾지 않는지 이해할 수 없군요


그래서 제가 보기 좋게 설명을 하고자 합니다.


Model2로 만드는 게시판


모델 1과 모델 2


JSP―――――――〉Model

                              〈―――――――


  • 모델1은 jsp 페이지에서 화면을 보여주고 요청을 하게 되면 페이지에서 직접 Model에 접근하여 처리를 하게 된다.

  • 데이터베이스 연동하는 jsp페이지를 만들 때 디자인 부분과 데이터베이스와 연동하는 로직 부분이 모두 같은 페이지에 코딩을 하게 되는 방식
  • 모델2는 디자인 부분과 로직 부분을 나누어서 개발하기 때문에, 디자이너는 디자인 부분만 프로그래머는 로직 부분만 담당하므로 개발에 열중할 수 있다.

     코딩도 모두 jsp페이지에서 하는 것이 아닌 각 담당하는 부분의 페이지가 독립적(디자이너는 JSP페이지, 프로그래머는 JAVA클래스)으로 존재하므로 각자 개발을 다 끝낸 후에 합치기만 하면 된다.


MVC Pattern


MVC ( Model,View,Controller)


 - 화면 출력 : View

 - 데이터베이스와 연동하는 부분등의 로직 부분 : Model

 - Controller : 위 두 부분을 적절하게 연결시켜주는 역할


  • 모델2는 Model과 View를 독립적으로 코딩하기 때문에 Controller를 만들어서 Model과 View 사이에 개입하여 서로 연동하는 역할을 해주어야 한다.



MVC Pattern

View ―――〉 Controller―――〉Model
           〈―――               〈―――


Controller (서블릿)


  • Controller는 요청을 받아서 요청을 해당하는 Model과 View를 호출하는 역할만 하기 때문에 View처럼 JSP 페이지로 구현할 수 없다.

  • Controller는 보여지는 페이지가 아닌 연결시켜 주는 통로 역할만 할 뿐이다.

  • Controller는 MVC패턴에서 중심 역할을 한다는 것과 반드시 서블릿으로 이루어져야 한다.



View ( JSP ) 


  • View는 MVC 패턴 중 화면 출력 부분에 해당된다.

  • 화면 출력을 담당하므로 JSP 페이지로 구성

  • View에서는 절대 데이터베이스 연동과 같은 비즈니스로직을 구현하지 않으며, Controller를 통해서 Model에서 처리한 결과를 화면에 출력할 때 사용



Model ( JavaBean )


  • Model은 MVC에서 실제로 비즈니스 로직을 처리하는 부분

  • Model은 비즈니스 로직을 처리하여 결과를 Controller를 통해 View 페이지로 전달

  • 데이터 베이스 부분을 Model에서 구현

  • 예를 들어 게시판을 개발할 경우 게시판에 글을 등록하는 부분, 게시판 글 삭제부분, 게시판 글 수정부분 등의 작업은 모두 Model에서 데이터 베이스 연동되어 처리된다.

  • 처리가 완료되면 그 결과를 Controller를 통해서 View로 전달하여 처리된 내용이 화면에 표시된다.

  • Model은 JavaBean이라고 부르며 이 파일은 클래스 파일로 이루어져 있다.

  • 실제로 Model클래스의 비즈니스 로직을 가져다가 쓰는 곳은 Controller와 Model 사이에 존재하는 Command 클래스이다.



게시판 흐름



요청(Request) ------->FrontController
                                       /             |     ▲
                                /                    |        |                                                                     /                       |        |
                         /                            |       | 
              /                        |      |
           ▼                        ▼      |
View 〈――― Controler(Action class) ――〉Model(DAO)

                                                                        〈――





DB 설계


CREATE TABLE BOARD(

   BOARD_NUM INT,        //글번호

   BOARD_NAME VARCHAR2(20),        //글작성자

   BOARD_PASS VARCHAR2(15),        //글 비밀번호

   BOARD_SUBJECT VARCHAR2(50),    //글 제목

   BOARD_CONTENT VARCHAR2(2000),    //글 내용

   BOARD_FILE VARCHAR2(50),       //글에 첨부파일 이름

   BOARD_RE_REF INT,    //글 답변시 참조되는 글 번호

   BOARD_RE_LEV INT,     //답변 글의 깊이

   BOARD_RE_SEQ INT,    //답변 글의 순서

   BOARD_READCOUNT INT,    //글의 조회수

   BOARD_DATE DATE,    //글 작성날짜

   PRIMARY KEY(BOARD_NUM)

);



게시판 페이지(View)



 페이지  파일

 설명 

 qna_board_list.jsp 

 게시판의 목록을 보여주는 페이지 

 qna_board_view.jsp 

 게시판 글 내용 보여주는 페이지 

 qna_board_write.jsp

 게시판 글 쓰기 폼 페이지 

 qna_board_reply.jsp

 게시판 글 답변 폼 페이지 

 qna_board_modify.jsp

 게시판 글 수정 폼 페이지 

 qna_board_delete.jsp

 게시판 글 삭제 페이지 



Action 클래스


 Class File 

 설명

 BoardAddAction.java

 글 등록할 때 호출되는 Action 클래스 

 BoardDeleteAction.java

 글 삭제할때 호출 

 BoardDetailAction.java 

 글 내용을 확인할 때

 BoardListAction.java 

 글 목록을 확인할 때 

 BoardModifyAction.java

 수정처리를 하는 클래스 

 BoardModifyView.java

 수정 폼을 보여주는 클래스 

 BoardReplyAction.java

 답변 처리를 하는 클래스 

 BoardReplyView.java

 답변 폼을 보여주는 클래스 

 

 net.board.action 


이상으로 글을 마칩니다.


아, 참고로 다음 글에는 코드소개와 코드분석을 할 예정입니다.


감사합니다. 꾸~벅



   

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2026/10   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함