본문 바로가기
Front-end (국비)/메모

23.07.17 수업 메모

by Hwanii_ 2023. 7. 18.
728x90

1.

V >> V

XXX

 

V >> C >> V

OOO

 

V >> C >> V 일때, 가령 보내야할 데이터가 없다 할때,

Action POJO 클래스를 만들어야 할까 ?

 

실제로는, 보내야할 데이터가 없을 수가 없기에,

(정말 최소한 1개라도 보내야할 데이터가 있다.)

 

Action POJO 클래스를 만들어서 모듈화를 한다.

 

이 Action POJO 클래스는 일반적으로, VO, DAO를 사용 하게 된다.

즉, DAO POJO 클래스의 비즈니스 메서드인, CRUD 메서드를 실행하고,

DB에 데이터를 넣거나, 추출 한다.

 

모듈화의 이유 : 유지보수의 용이함을 위해.

 

2.

필터 클래스를 생성할 때, 매핑 하는 경우,

*.do 로 작성 하는게 일반적인 연습시에 작성하는 방법이지만,

인코딩 필터 클래스 라고 가정 했을 경우에,

인코딩이 필요한 페이지만 설정하는 식으로 작성 해도 괜찮다.

 

3.

1 : N 구조의 POJO 클래스 생성 하기.

 

1 : N 구조는 다음과 같다.

 

글 + 댓글

 

댓글 + 대댓글

 

상품 + 후기

 

공지 + 답변

 

..

..

..

 

즉, 1 : N = 글 : 댓글 

 

"Set" 

 

(집합의 SET 뜻이 아니라, 모음집을 의미하는 Set 이다..)

 

4.

멤버 테이블과 글 테이블과 댓글 테이블이 있다고 가정 해보자.

 

테이블 생성 SQL 예시)

 

-- [ 멤버 테이블 ]

 

CREATE TABLE MEMBER(
MID VARCHAR(10) PRIMARY KEY,
MPW VARCHAR(10) NOT NULL,
NAME VARCHAR(15) NOT NULL
);

 

-- [ 글 테이블 ]


CREATE TABLE BOARD(
BID INT PRIMARY KEY AUTO_INCREMENT,
MID VARCHAR(10) NOT NULL, 
-- FK.
BCONTENT VARCHAR(30) NOT NULL,
FAVCNT INT DEFAULT 0,
 -- 좋아요.
REPLYCNT INT DEFAULT 0,
 -- 댓글 개수.
DATE DATETIME NOT NULL 
-- 글 작성 날짜.
);

 

-- [ 댓글 테이블 ]


CREATE TABLE REPLY(
RID INT PRIMARY KEY AUTO_INCREMENT,
BID INT DEFAULT 0, 
-- FK.
MID VARCHAR(10) NOT NULL, 
-- FK.
DATE DATETIME NOT NULL,
RCONTENT VARCHAR(30) NOT NULL,
FOREIGN KEY (BID) REFERENCES BOARD(BID) ON DELETE CASCADE
);

 

개념 >>

 

회원이 탈퇴해도, 글이 사라지는 개념은 아니다.

그래서 CASCADE 제약 조건을 걸지 않아도 된다.

 

또한, 개념적으로, FK 개념이 맞더라도, 테이블 구조를 작성 할 때,

FK로 사용 된다 정도로만 작성 하고, 실제로는 FK 제약 조건을 잘 걸지 않는다.

 

하지만,

글이 삭제되면, 해당 글에 작성된 댓글은 삭제 되어야 한다.

 

따라서,

BID 에 CASCADE 삭제 조건을 걸어 준다.

 

>>

 

FOREIGN KEY (BID) REFERENCES BOARD(BID) ON DELETE CASCADE

 

5.

C가 V 에게 보내준 데이터가 잘 도착 했는지 확인을 하고 싶을 때 ~

 

확인 하는 방법은 많지만, 그 중 한가지 방법을 메모.

 

만약에,

M이 C에게 회원의 아이디인 mid 데이터를 보내줬고,

C가 다시 V에게 mid를 보내줬다.

 

근데,

확인 하고 싶거나,

무언가 어색 하면 다음과 같은 방법으로 데이터가 잘 왔는지 확인 하면 된다.

 

예를들어,

 

<input type = "hidden" name = "bid" value = "${bid}">

 

라는 태그 언어가 작성 되어 있다고 해보자.

 

사실 저 코드는, hidden 으로 숨겨서, 사용자에게 값이 안보이게 한 상황 인데,

 

이렇게 한 이유는, C에게 bid 라는 데이터를 같이 보내 주기 위해서 작성된 코드 이다.

 

이때,

hidden을 text로 변경 하면 웹 브라우저 에서,

value = "${bid}" 의 데이터를 확인 할 수 있게 된다.

 

만약에, 잘 나와 있다면, C에서 V로 데이터가 잘 전송된 것이지만,

 

확인이 되지 않으면 C에서 V로 데이터가 전송 되지 않은 것을 짐작 해 볼 수 있다.

 

핵심은, 필요한 데이터의 매개변수명과 동일한 변수를,

 

value 값에 부여해서, 웹 브라우저에서 확인을 하는 것이다.

 

 

반응형