게시판(Board) 프로젝트 명세

종드·2022년 8월 8일
0

게시판_프로젝트

목록 보기
1/4

<목차>

  1. 개요
  2. 요구사항 명세
  3. 사용할 기술
  4. 화면 설계
  5. DB 설계
  6. API 설계

1. 개요

우선 이 프로젝트는 필자의 첫 개인 프로젝트이다. 이번 프로젝트를 진행하면서 얻고자 하는 것 즉, 목표는 3가지가 있다.

  1. 지금까지 학교 수업이나 독학으로 배운 기술들을 익히기
  2. github 익히기
  3. SpringSecurity 배우기 (아직 배우지 않음)

마지막의 SpringSecurity에 대해 배운 내용은 네이버 블로그에서 따로 다룰 것이다.

(velog는 프로젝트 개발 진행 관련 포스트만 작성하고, 문법적인 내용이나 기술적인 내용은 네이버 블로그에서 작성할 예정이다.)

컨테이너 기술(도커)이나 MSA 같은 고급 기술은 아직 배우지 않아 현시점(요구사항 분석과 설계하는 시점)에선 적용하지 못하는 것이 조금 아쉽다.
tomato


2. 요구사항 명세

요구사항은 아래 블로그에서 참고했다.
참고한 블로그 링크

  • 주요 기능 간단 정리:
    • 게시판 - CRUD 기능, 조회수, 페이징 및 검색 처리
    • 사용자 - Security 회원가입 및 로그인, OAuth 2.0 구글, 네이버 로그인, 회원 정보 수정, 유효성 검사 및 중복 검사
    • 댓글 - CRUD 기능 

  1. 회원 가입 페이지

    [유효성 검사]

    • 닉네임은 2~10자이며, 특수문자를 제외한 한글 (ㄱ~ㅎ, 가~힣), 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성
    • 아이디는 이메일 형식으로만 하기
    • 한 개의 칸이라도 공백 혹은 빈칸이 있는지 확인하고 있다면, "OOO는 필수 입력 값입니다."의 메시지 보여주기
    • 비밀번호는 8~16자이며, 영문(대, 소문자는 선택), 숫자, 특수문자를 사용하게 하기

    [중복확인]

    • 데이터베이스에 존재하는 이메일을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 이메일입니다."의 메시지를 보여주기

    • 데이터베이스에 존재하는 닉네임을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 닉네임입니다."의 메시지를 보여주기

    • 모든 검사가 통과되었다면 "회원 가입 완료!" 알림창을 띄우고, 확인 버튼 클릭 시 로그인 페이지로 이동시키기


  2. 로그인

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

    • 회원가입 페이지
    • 로그인 페이지
    • 게시글 목록 조회 페이지
    • 게시글 상세보기 페이지
    • 게시글 검색 페이지
    • 그 외 로그인을 하지 않거나 올바르지 않은 경로로 접속한 사용자가 로그인이 필요한 경로에 접속한 경우 로그인 페이지로 이동

    [로그인 검사]

    • 아이디와 비밀번호가 일치하지 않을 시 "아이디 또는 비밀번호가 일치하지 않습니다. "의 메시지를 보여주기
    • 이외의 다른 에러 메시지 또한 처리하기
    • 모든 검사가 통과되었다면 로그인 후 이전 페이지로 이동시키기

  3. 회원정보 수정
    • 회원정보 수정은 닉네임, 비밀번호만 가능
    • 수정란이 빈칸 혹은 공백으로 된 경우 “공백 또는 입력하지 않은 부분이 있습니다.”의 메시지 보여주기
    • 닉네임이 중복확인을 통해 중복일 경우 “이미 사용중인 닉네임입니다.” 메시지 보여주기
    • 닉네임과 비밀번호 수정 시 회원가입 때 적용한 조건들을 그대로 적용하기 (글자수, 공백여부, 한글 사용 여부 등)
    • 수정 완료 시 수정 날짜 업데이트하기

  4. 소셜 로그인 기능 만들기(OAuth 2.0)

    • 구글, 네이버 로그인이 가능하도록 하기
    • 데이터베이스에 이미 존재하는 이메일이 있을 시 기존 회원 데이터 정보를 유지하기
    • 소셜 로그인 사용자도 닉네임, 비밀번호 설정이 가능하고, 일반 로그인도 가능하게 하기

  5. 게시글 작성 및 수정
    • 게시글 작성, 수정 시 제목과 내용은 공백 혹은 빈칸으로 작성하지 않도록 하기
    • 내가 작성한 글만 수정, 삭제 가능하게 하기
    • 로그인을 하지 않으면 글 작성 버튼이 보이지 않게 하기

  6. 댓글 검사
    • 댓글은 로그인한 사용자만 작성 가능하게 하기
    • 댓글 작성 및 수정 시 빈칸 혹은 공백으로 된 경우 “공백 또는 입력하지 않은 부분이 있습니다”의 메시지 보여주기
    • 댓글 수정 및 삭제는 해당 댓글 작성자만 가능하게 하기
    • 게시글 삭제 시 해당 댓글 데이터도 같이 삭제되게 하기

3. 사용할 기술

  • 개발 언어 : Java 11
  • 백엔드 개발 환경 : SpringBoot 2.7.2, gradle 7.2, mybatis, Spring Security, Oauth 2.0
  • 프론트엔드 : thymleaf, bootstrap
  • 데이터베이스 : MySQL
  • 형상관리 툴 : GitHub

Spring Initializr에서 SpringBoot 프로젝트를 생성했다.
우선 아래와 같은 Dependencies를 사용하고, 프로젝트를 진행하면서 추가되는 의존이 있다면 추가 작성하겠다.
Spring Initializr


4. 화면 설계

초기 화면 설계


5. DB 설계

DB 테이블명 컬럼명 등의 작명 규칙은 아래 블로그를 참고했다.
https://sabarada.tistory.com/49


6. API 설계


profile
반갑습니다~

0개의 댓글