개발환경
- MacBook Air (M1, 2020)
- OpenJDK 8
- Eclipse 2021-12
- tomcat 8.5
- MySQL Workbench 8.0.19
기간
주제
- 웹 백엔드 수업 중 중간 과제로 개인 프로젝트를 진행하게 되었다.
- 회원가입/로그인/탈퇴 등 기본적인 회원관리 시스템을 가진 웹 사이트를 만드는 것이다. 주어진 기한은
한 달
- 나는
다음 카페
를 소규모로 만들어 보기로 했다. 평소 자주 이용하기도 했고 과제의 평가 기준에서 요구하는 기능들을 다 담고 있기도 했기 때문에 이번 기회에 구현해 보면 그동안 배운 것들을 활용하기에 좋을 거 같았다.
- 평가 기준에 사이트의 디자인 구현(HTML/CSS 등 프론트엔드)은 포함되지 않기 때문에 본인이 쓰고 싶은 HTML/CSS 템플릿을 구한 뒤 회원 관리 기능을 구현하면 된다.
게시글 답글 작성 알고리즘
re_ref
: 부모글과 그로부터 파생된 자식글들이 같은 값을 가지기 위한 필드
re_lev
: 같은 re_ref
내에서의 들여쓰기 깊이
re_seq
: 같은 re_ref
내에서의 순서
첫 번째 글쓰기 입력
- 처음엔 답글이 아닌 일반 글들이 각자 고유한
re_ref
번호를 가지고 등록된다.
num |
title |
re_ref |
re_lev |
re_seq |
|
1 |
1st |
1 |
0 |
1 |
|
2 |
2nd |
2 |
0 |
1 |
|
3 |
3rd |
3 |
0 |
1 |
|
1번 글에 답변 글 달기
순서1) re_ref
값은 부모글 1st의 re_ref
값을 사용한다.
순서2) re_seq
값은 부모글 1st에서 1 증가 한 값을 사용한다.
순서3) re_lev
값은 부모글 1st에서 1 증가 한 값을 사용한다.
num |
title |
re_ref |
re_lev |
re_seq |
|
1 |
1st |
1 |
0 |
1 |
|
2 |
2nd |
2 |
0 |
1 |
|
3 |
3rd |
3 |
0 |
1 |
|
4 |
1st_re1 |
1 |
1 |
2 |
|
re_seq
값이 1인 글은 부모글, 1보다 크면 자식글이라는 것을 알 수 있다.
1번 글의 답변 글에 또 답변 글 달기
- 1번 글에 답글을 달 때와 같은 순서로 작성하면 아래와 같이 등록될 것이다.
num |
title |
re_ref |
re_lev |
re_seq |
|
1 |
1st |
1 |
0 |
1 |
|
2 |
2nd |
2 |
0 |
1 |
|
3 |
3rd |
3 |
0 |
1 |
|
4 |
1st_re1 |
1 |
1 |
2 |
|
5 |
1st_re1_re1 |
1 |
2 |
3 |
|
1번 글에 답변 글 달기
순서1) re_ref
값은 부모글 1st의 re_ref
값을 사용한다.
순서2) re_seq
값은 부모글 1st에서 1 증가 한 값을 사용한다. 단 부모글을 제외한 값 re_ref
내에서 먼저 입력된 글은 re_seq
값을 1 증가시킨다.
순서3) re_lev
값은 부모글 1st에서 1 증가 한 값을 사용한다.
num |
title |
re_ref |
re_lev |
re_seq |
|
1 |
1st |
1 |
0 |
1 |
|
2 |
2nd |
2 |
0 |
1 |
|
3 |
3rd |
3 |
0 |
1 |
|
4 |
1st_re1 |
1 |
1 |
3 |
|
5 |
1st_re1_re1 |
1 |
2 |
4 |
|
6 |
1st_re2 |
1 |
1 |
2 |
|
- 그러면 위와 같은 값을 가지게 된다.
re_ref
값을 기준으로 먼저 내림차순 정렬을 한 뒤 re_ref
값 내에서 2차로 re_seq
값을 기준으로 오름차순 정렬을 한다.
num |
title |
re_ref |
re_lev |
re_seq |
|
3 |
3rd |
3 |
0 |
1 |
|
2 |
2nd |
2 |
0 |
1 |
|
1 |
1st |
1 |
0 |
1 |
|
6 |
1st_re2 |
1 |
1 |
2 |
|
4 |
1st_re1 |
1 |
1 |
3 |
|
5 |
1st_re1_re1 |
1 |
2 |
4 |
|
- 그러면 이렇게 최신 글이 가장 위로 올라오면서 들여쓰기 레벨에 따라 작성된 글을 볼 수 있다.
마감까지