본문 바로가기
JSP/성낙현의 JSP 자바 웹 프로그래밍

JSP, Oracle을 사용한 회원제 게시판(페이징 X)

by k-mozzi 2023. 6. 16.
반응형
Preface

 

이번 장에선 JSP, Tomcat, Oracle, OracleDeveloper를 사용해 간단한 회원제 게시판을 구현해봤다.

(Docker를 통해 다운로드한 oracle-xe-11g image를 터미널에서 사용하자 한글 인코딩 문제가 계속해서 발생하여

결국 OracleDeveloper를 사용했는데, UI가 구려도 너무 구리다.

최신 버전을 다운로드한 것 같은데 어쩜 이리 촌스러운지...)

 

구현 내용은 이전에 제작했던 php, MySQL을 사용한 게시판과 완전히 동일하여 다시 언급하지 않겠다.

(php와 MySQL을 연동하는 방법이 JSP와 Oracle을 연동하는 방법보다 간단한 듯?

또, MySQL 책만 공부한 탓인지 두 RDBMS를 사용해본 결과 개인적으로 Oracle보단 MySQL이 사용하기 편했다.)

 

세부적인 디테일, CSS 등을 제외하면 같은 내용을 두 번 반복한 것이지만,

 

지난번과 달리 이번 구현에선 DB를 연결하고 서버에 접속하는 등의 코드를 전부 이해하고 직접 작성했다.

 

뒷 장의 페이징, 모델 2 방식의 게시판 등을 전부 제작한 후 다른 부가적인 기능들도 추가해볼 생각이다.

 

전체 코드는 깃허브 리파지토리에 저장되어 있다.


- MVC: Model, View, Controller의 약자로, 소프트웨어 개발 방법론의 일종
1) Model: 업무 처리 로직 및 DB 관련 작업 담당
2) View: JSP 페이지와 같이 사용자에게 보여지는 부분을 담당
3) Controller: 모델과 뷰의 제어를 담당
→ 사용자의 요청을 받아 분석한 후 필요한 업무 처리 로직(모델)을 호출하여, 모델로부터 반환된 결괏값을 출력할 뷰를 선택한 후 전달한다.


- 모델 1 방식: 사용자의 요청을 JSP가 받아 모델을 호출한 후 반환된 결과를 JSP를 통해 응답한다.
1) JSP에 뷰와 컨트롤러가 혼재되어 있다.
2) 개발 속도가 빠르고 배우기 쉽다.
3) 코드가 복잡해져 유지보수가 어렵다.


- 모델 2 방식: MVC 패턴을 사용한다.
1) JSP는 뷰로 사용하고, 서블릿은 컨트롤러로 사용한다.
2) 구조가 복잡하여 개발 기간이 길어질 수도 있다.
3) 코드가 간결해져 유지보수가 쉽다.


- 테이블에서 레코드(행)를 가져올 때는 항상 List 계열의 컬렉션에 저장한다.

 

1. 테이블 및 시퀀스 생성

 

 

- member table

create table member (
    id varchar2(10) not null,
    pass varchar2(10) not null,
    name varchar2(30) not null,
    regidate date default sysdate not null,
    primary key (id)
);

 

 

- board table

create table board (
    num number primary key,
    title varchar2(200) not null,
    content varchar2(2000) not null,
    id varchar2(10) not null,
    postdate date default sysdate not null,
    visitcount number(6)
);

alter table board
    add constraint board_mem_fk foreign key (id)
    references member (id);

 

 

- seq_board_num sequence

create sequence seq_board_num 
    increment by 1
    start with 1
    minvalue 1
    nomaxvalue
    nocycle
    nocache;

 


 

2. 구현 예시

 

 

- 메인 화면

 

 

※ 전체 코드는 깃허브의 java 디렉토리와 ch8 디렉토리에 업로드되어 있다.

→ 링크: https://github.com/k-mozzi/JSP-WEB-Programming

 

GitHub - k-mozzi/JSP-WEB-Programming

Contribute to k-mozzi/JSP-WEB-Programming development by creating an account on GitHub.

github.com

 

728x90
반응형

댓글