반응형
프로젝트 구상
1. 회원제 게시판 구조
- 비회원(로그아웃) 상태: 목록 보기, 상세 보기
- 회원(로그인) 상태: 글쓰기, 수정하기, 삭제하기
- 글쓰기 후: 목록으로 이동
- 수정 후: 상세 보기로 이동
- 삭제 후: 목록으로 이동
2. 테이블 및 시퀀스 생성
- 작성한 게시물을 DB에 저장한 후 관리해야 하므로, JDBC 프로그래밍 필수
- DB에는 회원정보를 저장할 테이블 & 게시물을 저장할 테이블 생성
1) 회원관리: member 테이블 정의
- 회원정보를 저장할 테이블: 게시판에 글을 쓰거나 수정, 삭제를 하기 전 회원인증을 하기 위해 사용
→ 회원가입은 게시판의 글쓰기와 기능적으로 동일하므로, 앞서 삽입했던 더미 데이터 사용
컬럼명 | 데이터 타입 | null 허용 | 키 | 기본값 | 설명 |
id | varchar2(10) | N | 기본키 | 아이디 | |
pass | varchar2(10) | N | 패스워드 | ||
name | varchar2(30) | N | 이름 | ||
regidate | date | N | sysdate | 가입날짜 |
2) 게시물 관리: board 테이블 정의
- 사용자가 입력한 게시물을 저장하는 테이블
- 기본키로 사용되는 일련번호 컬럼: 시퀀스(순차적으로 증가하는 순번을 생성해, 중복되지 않는 정숫값을 반환하는 DB 객체, 만들었던 것 재활용)가 부여하는 순번 입력
- member 테이블에 없는 아이디로 게시물을 작성하려 하면, 제약조건 위배로 에러 발생
- 회원으로 가입된 사람만 글을 쓸 수 있음
컬럼명 | 데이터 타입 | null 허용 | 키 | 기본값 | 설명 |
num | number | N | 기본키 | 일련번호, 기본키 | |
title | varchar2(200) | N | 게시물의 제목 | ||
content | varchar2(2000) | N | 내용 | ||
id | varchar2(10) | N | 외래키 | ||
(member 테이블의 id를 참조) | 작성자의 아이디 | ||||
postdate | date | N | sysdate | 작성일 | |
visitcount | number(6) | 조회수 |
모델1 구조와 모델2 구조(MVC 패턴)
1. MVC 패턴
1) MVC 패턴의 절차
- 모델(Model), 뷰(View), 컨트롤러(Controller)의 약자로, 소프트웨어를 개발하는 방법론의 일종
- 모델, 뷰, 컨트롤러가 역할을 분담하여 사용자의 요청을 처리한 후 결과를 웹 브라우저에 출력하며 응답함 (웹 애플리케이션: 사용자의 요청을 받아 처리한 후 응답하는 구조)
(1) 모델
- 업무 처리 로직(비즈니스 로직) 혹은 데이터베이스와 관련된 작업 담당
(2) 뷰
- JSP 페이지와 같이 사용자에게 보여지는 부분 담당
(3) 컨트롤러
- 모델과 뷰를 제어함
- 사용자의 요청을 받아서 분석하고, 필요한 업무 처리 로직(모델)을 호출함
- 모델이 결괏값을 반환하면 출력할 뷰(JSP 페이지) 선택 후 전달
2) 모델1 구조와 모델2 구조
(1) 모델1의 구조
- 사용자의 요청을 JSP가 받아 모델을 호출: 모델이 요청을 처리한 후 결과를 반환하면 JSP를 통해 응답하게 됨
→ JSP에 뷰와 컨트롤러가 혼재되어 있음 - 구조상, 개발 속도가 빠르고 배우기 쉬움
- 뷰와 컨트롤러 기능 모두 JSP에서 구현해야 하므로, 코드가 복잡해지고 유지보수가 어려움
(2) 모델2의 구조
- MVC 패턴 그대로 사용: JSP와 서블릿의 장점을 모두 취합하여, JSP는 뷰로 사용하고 서블릿은 컨트롤러로 사용
- 사용자의 요청을 컨트롤러인 서블릿이 받음: 서블릿은 사용자의 요청을 분석한 후 모델을 호출
→ 모델로부터 데이터를 받아 뷰로 전달하면, 사용자는 요청에 대한 응답을 받을 수 있음 - 모델/뷰/컨트롤러가 각자의 역할을 수행하므로, 명확한 업무 분담 & 간결한 코드 & 쉬운 유지보수
- 구조가 복잡하여, 익숙하지 않다면 개발 기간이 길어질 수 있음
→ 규모가 작은 프로젝트에서는 적합하지 않을 수 있음
반응형
'자바(JAVA) > JSP 웹 프로그래밍 공부 (성낙현의 JSP 자바 웹 프로그래밍 참고)' 카테고리의 다른 글
JAVA/JSP 24. 모델1 방식의 회원제 게시판 만들기 - 게시판 게시글 쓰기 (1) | 2023.12.31 |
---|---|
JAVA/JSP 23. 모델1 방식의 회원제 게시판 만들기 - 게시판 목록 페이지 (1) | 2023.12.30 |
JAVA/JSP 21. 액션 태그(Action Tag) - <jsp:param> (1) | 2023.12.23 |
JAVA/JSP 20. 액션 태그(Action Tag) - <jsp:forward>, <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty> (0) | 2023.12.07 |
JAVA/JSP 19. 액션 태그(Action Tag) - 액션 태그의 개념, <jsp:include> (2) | 2023.12.06 |