게시판 시스템을 만들어보았다.
기능
관리자 모드와 비로그인 일반 로그인 모드로 메뉴를 다르게 나누어 받았다.
1. 메뉴
회원 가입, 로그인, 아이디 찾기 , 비밀번호 찾기 , 비로그인 모드로 로그인, 관리자 모드, 프로그램 종료가 있다.
회원가입 때 Util 으로 중복체크 기능을 만들어서 아이디와 닉네임은 중복체크기능을 적용하였다.
모두 입력받으면 객체에 정보를 모두 담아서 uMap에 데이터를 저장했다.
로그인 때는 uMap의 객체정보와 아이디 , 비밀번호가 일치하면 객체정보를 불러오고 로그인 Boolean을 true로 바꾸어서
로그인 메뉴를 출력하도록 했다.
아이디 찾기는 스캐너로 입력받아서 이름을 입력하면 그 값에 맞는 아이디를 불러와서 리턴해준다.
비밀번호는 스캐너로 아이디와 이름을 입력하면 그 값에 맞는 비밀번호를 다시 재설정하도록 기능을 추가했다.
1 - 1 관리자 모드
메뉴에서 관리자 모드를 입력받았을 때 , 정해진 id와 pw를 입력했을 때 boolean 값을 true로 바꾸어서
공지작성, 글 목록, 글 상세 보기 , 글 수정, 유저리스트, 유저삭제, 글 삭제, 로그아웃 메뉴를 구현했다.
공지작성은 adminMap에 글 객체를 넣었다.
글 목록은 adminMap과 bMap을 모두 리턴받아 출력해서 목록을 만들었다.
유저리스트는 유저 객체가 들어있는 uMap을 리턴받아 출력했다.
유저 삭제는 uMap의 객체를 bno의 변수로 비교해 그 객체를 삭제하도록 구현했다.
글 삭제는 마찬가지로 adminMap과 bMap의 글번호 ( bno )의 변수비교로 객체삭제하도록 했다.
로그아웃은 boolean값을 false로 돌려서 다시 되돌아가도록 만들었다.
2 - 2 로그인 모드
메뉴에서 비로그인 모드를 선택하면 be login이라는 정보를 담은 객체로 로그인한다.
기능은 글쓰기 , 글 보기만 할 수 있고 글을 쓰면 닉네임은 따로 받지 않으므로 trave ( 랜덤숫자 )로 뜨도록 했다.
2 - 3 일반 유저
일반 유저는 회원가입 후 로그인 하면 boolean 값이 true로 다른 메뉴를 띄웠다.
일반 유저의 DTO를 전역객체에 담아서 활용하도록 했다.
글 작성은 save 메소드를 이용해서 bMap에 담고 , 일반 유저이므로 관리자 모드의 공지글은 접근 못하도록 하였다.
글 작성이 성공하면 5포인트가 쌓이도록 기능을 추가했다.
글 목록은 adminMap과 bMap을 모두 불러와서 Collections.sort로 정렬되어 출력되도록 했다.
글 상세보기는 공지글과 일반글을 따로 목록을 만들었기 때문에 메뉴로 한번 입력받고 , 그에 맞는 글 목록에 있는
bno 번호로 그 객체를 불러와서 출력했다.
출력 후 객체 안에 있는 like , unlike를 이용해 좋아요 , 싫어요 변수를 만들어서 만약 선택한다면 ,
그 객체의 좋아요 , 싫어요 수치가 올라가서 후에 글 목록에 좋아요 수치로 정렬 기능을 추가했다.
만약 싫어요 횟수가 3회가 넘는다면 자동 삭제되도록 기능추가를 구현했다.
이미 로그인때 그에 맞는 객체를 전역변수로 받았기 때문에 아이디, 패스워드, 이름 수정은 조건 없이 수정되도록 하였다.
만약 50포인트를 모았다면 닉네임변경을 하여 변경할 수 있는데 중복체크 메소드를
닉네임에 적용시켜 중복이 없도록 만들었다.
글을 신고할 수도 있도록 글 DTO에 신고변수를 만들어서 글 bno 변수를 선택하면 그에 맞는 글 DTO의 신고변수가
증가하여 만약 2회 신고되었다면 그 글은 자동삭제 되고 그 유저는 더이상 신고할 수 없도록 기능을 추가했다
* 설계 *
'Java Project > Java 3일 프로젝트' 카테고리의 다른 글
프로젝트 게시판 기능들 구현하기 기간 - 2/3일 (0) | 2023.03.22 |
---|---|
프로젝트 할것 정하기 기간 - 1/3일 (0) | 2023.03.20 |