로그인을 해야 글을 쓸 수 있는 게시판 웹 어플리케이션을 만드려고한다.

급하게 메모장으로 정한 순서는 다음과 같다.

- 게시판 -

index -> list -> control -> view   -> control -> list
                  -> (login)  -> post   -> control -> list
                                 -> edit    -> control -> list
                                 -> delete -> control -> list

- 로그인 -

login  -> joinUs  -> control -> index
         -> control -> mypage -> control -> index

                       -> index

 

각 단계별로 분기점이 생길때 아래로 내려 분기점을 설명했다.

MVC 패턴을 이용하여 DB에 접근할 때는 Controller를 사용하고, 입력받아야할 정보가 있는 경우에 View에서(bold표기) 정보를 받아서 사용한다.

로그인 정보는 Session단위로 저장하여 DB에 접근하는 빈도수를 줄였다.

 

각 데이터베이스의 데이터 테이블은 아래와 같이 설정하였다.
user table
id varchar PK FK
pw varchar
admin boolean default false


post table
postnum int PK
id varchar FK
title varchar
pdate date default sysdate
content varchar


user table에서는 ID를 Primary key로 주어서 겹치지 않는 유일성을 만족시켜서, ID로 식별할수 있게 설정하였다. boolean 변수를 넣어서 게시판 관리자인지 아닌지 확인하는 변수를 추가했지만.... 아래를 보면 알 수 있다.

또한, post table에서 ID는 user table 의 ID를 FK로 받아와서 글을 작성할때 작성자를 자동으로 입력할 수 있게 설계하였다.

 

데이터베이스 설계에 이어서 테이블을 직접 만들어 보았다.

create table userInfo(
	id varchar(20) primary key,
	pw varchar(40) not null,
	admin char(1) default '0'
	constraint userinfo_admin_CK
	CHECK(admin in('0','1')) --0이면 false 1이면 true
);


create table post(
	postNum	int primary key,
	id varchar(20),
	title varchar(100),
	content varchar(1000),
	postDate date default sysdate,
	foreign key (id) references userInfo(id) on delete cascade
);

설계단계와 달라진 점은 table 명이 user에서 userInfo로 바뀌였다. user는 orcle의 예약어라서 지정이 안되어서 바뀌었고, 또한 MySQL과 다르게 Oracle은 boolean타입이 없어서 char 타입에 0과 1만 넣을수 있게 하여 true false를 저장할 수 있게 하였고, 기본 상태를 false로 해서 회원가입을 통해 가입하는 사람들이 관리자가 될 수 없게 하였다.

'Project' 카테고리의 다른 글

웹 크롤링 정리  (0) 2021.07.30
Model 정리  (0) 2021.07.29

[ 크롤링 ]

인터넷에 존재하는 데이터를 컴퓨터 프로그램을 통해서 자동화된 방법을 사용해 수집하는 작업 // 스크랩핑
+
"분류"

= "크롤링"

웹 데이터를 자동으로 수집, 분류, 저장
프로그램 언어를 문법에 맞게 분석하는 것 == 웹페이지의 코드를 사용자가 원하는 형식으로 추출하여 정보를 생성 == "가공"
 = [ 파싱 ] -> 파서가 수행

[ Jsoup ]
자바로 만들어진 HTML Parser
HTML(마크업 요소)을 분석할수 있음
크롤링 가능여부, 설정사항을 ~~~(페이지주소)/robots.txt 로 볼 수 있음


[ HTML ]
~ML : 마크업 언어 -> <> 사용한다!
<>여는태그 </>닫는태그 쌍을이룸
<> 요소 element

'Project' 카테고리의 다른 글

설계 예시  (0) 2021.09.01
Model 정리  (0) 2021.07.29

Model에 해당하는 객체
1. JDBC
   Driver load
   Connection 생성
   close

2. DAO
   Data Access Object
   DB에 접근하는 객체
   pstmt로 data read, write

3. VO
   Value Object
   DB 테이블을 객체화시킨 객체

개발
Data <-> View <-> 서비스(서버)
M V C
DB
->VO
-->DAO
--->JDBC

'Project' 카테고리의 다른 글

설계 예시  (0) 2021.09.01
웹 크롤링 정리  (0) 2021.07.30

+ Recent posts