본문 바로가기
JAVA/Java

[Servlet & JSP] 게시판 요구사항 작성

by sihyeong 2023. 8. 27.

Servlet / JSP로 간단한 게시판을 만들어보며 웹 프로젝트 개발 과정의 이해도 향상을 목적으로 해당 프로젝트를 진행하기 때문에 게시판 프로젝트의 심화된 기능들은 Spring 프로젝트에서 진행한다.

 

제작 페이지

    - 회원가입 페이지

    - 로그인 페이지

    - 마이 페이지

    - 게시글 작성 / 수정 페이지

    - 댓글, 대댓글 작성

    - 게시글 목록 조회 페이지 ( 메인 페이지 )


요구사항


1. 모든 페이지 공통

    - 메인 페이지로 이동할 수 있는 배너 왼쪽 상단 배치

    - xss방지를 위해 jstl <c:out > 활용


2. 회원 가입 페이지

    - 아이디, 비밀번호, 비밀번호 확인, 닉네임 입력창 및 회원가입 버튼 제공

    - 아이디, 닉네임 중복여부는 별도의 버튼으로 중복 확인

    - 모든 검사를 통과한 경우, 로그인 페이지로 이동

 

유효성 검사

    - 아이디는 2~12자, 영문 대소문자, 숫자로 구성됨

조건 미 충족이거나 공백, 빈칸인 경우 "아이디는 2~12자, 영문 대소문자, 숫자만 사용 가능합니다." 텍스트 출력

 

    - 닉네임은 2 ~ 10자, 특수문자를 제외한 한글,영문 대소문자, 숫자로 구성

조건 미 충족이거나 공백, 빈칸인 경우 "닉네임은 2 ~10자, 특수문자를 제외한 한글,영문 대소문자, 숫자만 사용 가능합니다." 텍스트 출력

 

    -  비밀번호는 8~16자, 영문 대소문자, 숫자, 특수문자로 구성

조건 미 충족이거나 공백, 빈칸인 경우 "비밀번호는 8~16자, 영문 대소문자, 숫자, 특수문자만 사용 가능합니다." 텍스트 출력

 

    - 비밀번호와 비밀번호 확인의 값이 다르면 "비밀번호가 일치하지 않습니다." 텍스트 출력

 

 

중복 검사

    - 데이터베이스에 존재하는 아이디 제출 시 "이미 존재하는 아이디입니다." 메시지 출력

    - 중복되는 닉네임 입력 후 닉네임 중복 확인 버튼을 누른 경우,  "이미 존재하는 닉네임입니다." 메시지 출력


3. 로그인 페이지

    - 아이디, 비밀번호 입력창 및 로그인 버튼 제공

    - 로그인 성공 시 메인페이지로 이동

    - 로그인 성공 시 세션으로 로그인 여부 판별

 

유효성 검사

    - 아이디와 비밀번호가 일치하지 않다면 "아이디 또는 비밀번호가 일치하지 않습니다." 메시지 출력

 

로그인 하지 않은 경우 아래 페이지만 이용 가능

    - 회원가입 페이지

    - 로그인 페이지

    - 게시글 목록 조회 페이지 ( 메인 페이지 )

    - 위 페이지가 아닌 곳에 접근 시 ''로그인이 필요합니다." 메시지 출력하고 로그인 페이지로 이동


4. 마이 페이지

    - 회원 탈퇴 버튼 제공

    - 탈퇴 버튼 동작 시  "회원을 탈퇴하시겠습니까?" 메시지 제공, 확인/취소 버튼 중 "확인"을 누르면 탈퇴 처리

    - 회원 탈퇴 시 해당 유저 계정 정보와  댓글 삭제


5. 게시글 목록 조회 페이지

    - 페이지네이션을 적용해 한 페이지에 5개의 글만 보이도록 구성

    - 번호, 제목, 작성자, 작성일, 조회수를 테이블 헤더로 게시글 출력

    - 오늘 작성한 게시글의 작성일은 시간:분 으로 출력되고 다른날 작성된 게시글의 작성일은 년-월-일으로 출력

6. 게시글 상세 조회 페이지

    - 게시글의 컨텐츠 출력

    - 작성자가 게시글을 상세 조회한 경우 수정, 삭제 버튼 제공

    - 삭제 버튼 동작 시 "정말로 삭제하시겠습니까?" 메시지 제공, 확인/취소 버튼 중 "확인" 누르면 게시글 삭제

    - 게시글을 조회마다 조회수 1씩 증가


7. 게시글 작성 / 수정 페이지

    - 제목, 컨텐츠 입력창 제공

 

유효성 검사

    - 하나의 칸이라도 공백만 있거나 빈칸이 있다면 "게시글 작성 / 수정 실패" 메시지 출력

    - DB의 크기를 벗어난 크기를 입력한 경우 "최대 XXByte까지만 입력가능합니다." 메시지 출력


8. 게시글 검색

    - 제목, 컨텐츠, 작성자를 기준으로 게시글 검색

    - 검색 후에도 입력창에 검색 정보 유지


9. 댓글 및 대댓글

    - 댓글 입력창 제공

    - 로그인 세션을 가지고 있는 유저만이 댓글,대댓글을 작성할 수 있도록 구성

    - 댓글 작성자만이 댓글을 삭제, 수정 가능하도록 구성

    - 작성자명, 작성일, 댓글내용 출력되도록 구성